35 lines
1.5 KiB
Plaintext
35 lines
1.5 KiB
Plaintext
# kb_diag.dspy - 临时诊断端点:真实请求上下文验证 rag_client 全链路
|
||
# 用后即删(不留生产痕迹)。验证点:owner解析→dapi发key→HTTP检索
|
||
import json as _j
|
||
|
||
uid = await get_user()
|
||
if not uid:
|
||
return _j.dumps({"ok": False, "error": "未登录"}, ensure_ascii=False)
|
||
|
||
project_id = (params_kw or {}).get('project_id', '').strip()
|
||
query = (params_kw or {}).get('query', '').strip() or '测试入库闭环'
|
||
if not project_id:
|
||
return _j.dumps({"ok": False, "error": "缺少 project_id"}, ensure_ascii=False)
|
||
|
||
out = {"steps": []}
|
||
try:
|
||
from pipeline_service.rag_client import (resolve_project_owner, get_owner_apikey,
|
||
tool_rag_kb_list, tool_rag_search)
|
||
owner, err = await resolve_project_owner(project_id)
|
||
out["steps"].append({"step": "resolve_owner", "owner": owner, "err": err})
|
||
if err:
|
||
return _j.dumps({"ok": False, "out": out}, ensure_ascii=False, default=str)
|
||
key, err = await get_owner_apikey(owner)
|
||
out["steps"].append({"step": "get_key", "key_prefix": (key or "")[:8],
|
||
"key_len": len(key or ""), "err": err})
|
||
if err:
|
||
return _j.dumps({"ok": False, "out": out}, ensure_ascii=False, default=str)
|
||
out["kb_list"] = await tool_rag_kb_list(project_id)
|
||
out["search"] = (await tool_rag_search(project_id, query))[:600]
|
||
out["ok"] = True
|
||
except Exception as e:
|
||
import traceback
|
||
out["ok"] = False
|
||
out["traceback"] = traceback.format_exc()[-800:]
|
||
return _j.dumps(out, ensure_ascii=False, default=str)
|