Port docs-mcp-template upgrades (eval, citations, chunking, prefixes) (#16)

Co-authored-by: claude <[email protected]>
This commit was merged in pull request #16.
This commit is contained in:
2026-09-29 22:27:16 -04:00
committed by claude
parent 1a3963f306
commit 92219878d9
13 changed files with 803 additions and 74 deletions
+15
View File
@@ -41,6 +41,21 @@ def _resolve_urls() -> list[str]:
OLLAMA_URLS = _resolve_urls()
EMBED_MODEL = os.environ.get("EMBED_MODEL", "nomic-embed-text")
EMBED_DIM = int(os.environ.get("EMBED_DIM", "768"))
# nomic asymmetric prefixes — embed time only. Empty string disables.
EMBED_QUERY_PREFIX = os.environ.get("EMBED_QUERY_PREFIX", "search_query: ")
EMBED_DOC_PREFIX = os.environ.get("EMBED_DOC_PREFIX", "search_document: ")
def apply_prefix(text: str, prefix: str) -> str:
if not prefix:
return text
return prefix + text
def embed_texts(texts: list[str], *, prefix: str, ef: Any | None = None) -> list[list[float]]:
"""Embed texts after applying prefix. Callers store the original strings."""
fn = ef if ef is not None else embedding_function()
return list(fn([apply_prefix(t, prefix) for t in texts]))
class OllamaEmbeddings(EmbeddingFunction):