pipeline-sdlc/wwwroot/api/kb_diag.dspy

35 lines
1.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)