Something went wrong. Try again.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829"""Text embeddings via DeepInfra (BAAI/bge-base-en-v1.5, 768-dim).
BGE retrieval works best when *queries* carry a short instruction prefix while*documents* are embedded as-is. We mirror that split with embed_query /embed_documents so stored vectors and query vectors line up."""
import configfrom llm import client
# Recommended retrieval instruction for bge-*-en-v1.5 queries.QUERY_INSTRUCTION = "Represent this sentence for searching relevant passages: "
def _embed(inputs: list[str]) -> list[list[float]]: resp = client.embeddings.create(model=config.EMBED_MODEL, input=inputs) # Preserve input order (the API returns items with an `index`). return [d.embedding for d in sorted(resp.data, key=lambda d: d.index)]
def embed_documents(texts: list[str]) -> list[list[float]]: """Embed passages for storage.""" return _embed(texts)
def embed_query(text: str) -> list[float]: """Embed a search query (with the BGE retrieval instruction).""" return _embed([QUERY_INSTRUCTION + text])[0]