fix(search): VDB调用键名对齐uapi模板(colname/top_k)——collection/topK占位符不替换致静默0召回

This commit is contained in:
ymq 2026-09-04 19:30:35 +08:00
parent 2113066631
commit ef4616d290
2 changed files with 6 additions and 4 deletions

View File

@ -474,7 +474,7 @@ async def search(env, ns):
for kid in kb_ids: for kid in kb_ids:
try: try:
vdb_resp = await _call_uapi("rag-vdb", "search", { 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)) all_hits.extend(_parse_vdb_hits(vdb_resp, kid))
except Exception: except Exception:
pass pass

View File

@ -124,10 +124,12 @@ async def search_handler(request, params_kw, *args, **kwargs):
all_hits = [] all_hits = []
for kid in kb_ids: for kid in kb_ids:
try: try:
# 键名必须与 uapi 的 vdb-search 模板占位符一致(colname/top_k),
# 传 collection/topK 模板不替换 → VDB 报错 → 静默 0 召回(2026-09-04 实测根因)
vdb_resp = await _call_uapi("rag-vdb", "search", { vdb_resp = await _call_uapi("rag-vdb", "search", {
"collection": kid, "colname": kid,
"vector": query_vec, "vector": query_vec,
"topK": recall_k "top_k": recall_k
}) })
hits = _parse_vdb_hits(vdb_resp, kid) hits = _parse_vdb_hits(vdb_resp, kid)
all_hits.extend(hits) all_hits.extend(hits)
@ -766,7 +768,7 @@ async def _rag_ingest_async(env, text, kb_id, doc_id):
embeddings = embeddings[:len(chunks)] embeddings = embeddings[:len(chunks)]
try: try:
vdb_data = { vdb_data = {
"collection": kb_id, "colname": kb_id,
"data": [{"id": f"{doc_id}_{i}", "vector": emb, "text": chunks[i]} "data": [{"id": f"{doc_id}_{i}", "vector": emb, "text": chunks[i]}
for i, emb in enumerate(embeddings)] for i, emb in enumerate(embeddings)]
} }