From ef4616d290cc8e8e42ae490b61ff3e3c7e85e30a Mon Sep 17 00:00:00 2001 From: ymq Date: Fri, 4 Sep 2026 19:30:35 +0800 Subject: [PATCH] =?UTF-8?q?fix(search):=20VDB=E8=B0=83=E7=94=A8=E9=94=AE?= =?UTF-8?q?=E5=90=8D=E5=AF=B9=E9=BD=90uapi=E6=A8=A1=E6=9D=BF(colname/top?= =?UTF-8?q?=5Fk)=E2=80=94=E2=80=94collection/topK=E5=8D=A0=E4=BD=8D?= =?UTF-8?q?=E7=AC=A6=E4=B8=8D=E6=9B=BF=E6=8D=A2=E8=87=B4=E9=9D=99=E9=BB=98?= =?UTF-8?q?0=E5=8F=AC=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rag/api_core.py | 2 +- rag/init.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/rag/api_core.py b/rag/api_core.py index f7c6181..fa162af 100644 --- a/rag/api_core.py +++ b/rag/api_core.py @@ -474,7 +474,7 @@ async def search(env, ns): for kid in kb_ids: try: vdb_resp = await _call_uapi("rag-vdb", "search", { - "collection": kid, "vector": query_vec, "topK": recall_k}) + "colname": kid, "vector": query_vec, "top_k": recall_k}) all_hits.extend(_parse_vdb_hits(vdb_resp, kid)) except Exception: pass diff --git a/rag/init.py b/rag/init.py index f9a263f..7e2f462 100644 --- a/rag/init.py +++ b/rag/init.py @@ -124,10 +124,12 @@ async def search_handler(request, params_kw, *args, **kwargs): all_hits = [] for kid in kb_ids: try: + # 键名必须与 uapi 的 vdb-search 模板占位符一致(colname/top_k), + # 传 collection/topK 模板不替换 → VDB 报错 → 静默 0 召回(2026-09-04 实测根因) vdb_resp = await _call_uapi("rag-vdb", "search", { - "collection": kid, + "colname": kid, "vector": query_vec, - "topK": recall_k + "top_k": recall_k }) hits = _parse_vdb_hits(vdb_resp, kid) all_hits.extend(hits) @@ -766,7 +768,7 @@ async def _rag_ingest_async(env, text, kb_id, doc_id): embeddings = embeddings[:len(chunks)] try: vdb_data = { - "collection": kb_id, + "colname": kb_id, "data": [{"id": f"{doc_id}_{i}", "vector": emb, "text": chunks[i]} for i, emb in enumerate(embeddings)] }