feat: port template upgrades (citations, eval, chunking, nomic prefixes)

mcp 2.x already on origin/main (#10). Does not change BM25-first
search_docs — n=6 is too small to flip the default.

- Numbered [1] citations via docs_mcp/format.py
- Eval P@1 + JSONL sidecar + eval.pvalue + eval.trace
- Heading-recursive chunker, keep chunk-0 and MAX_CHARS=4000
- Nomic prefixes at embed time only; stored text unprefixed

Closes #12
This commit is contained in:
claude committed 2026-09-30 08:33:12 -04:00
1 parent 6897fbb19a
commit fda572f59e
13 files changed
+812 -77

No files matched your search

+3 -1
View File
@@ -51,7 +51,9 @@ class DenseRetriever:
self.pool = pool
def retrieve(self, query: str, k: int = 10) -> list[tuple[str, str]]:
res = self.col.query(query_texts=[query], n_results=self.pool)
from rag.embeddings import EMBED_QUERY_PREFIX, embed_texts
qvec = embed_texts([query], prefix=EMBED_QUERY_PREFIX)[0]
res = self.col.query(query_embeddings=[qvec], n_results=self.pool)
ids = (res.get("ids") or [[]])[0]
return _collapse_to_pages(ids, k)