Files
kefu/deploy/knowledge-v3/probe.sh
T
2026-09-21 10:34:06 +08:00

25 lines
1.5 KiB
Bash

docker exec -i im-admin-knowledge-worker-1 python - <<'PY'
import asyncio,json,time,httpx
from pathlib import Path
from model_gateway import Catalog,call_outlet
c=Catalog(Path('/data/backend.db')); c.refresh(); outlets,*_=c.plan()
async def main():
if not outlets:
print('no configured outlet'); return
outlet=outlets[0]
for deadline in (12,60):
started=time.monotonic()
try:
async with httpx.AsyncClient() as client:
result=await call_outlet(client,outlet,[{'role':'user','content':'请把以下虚构客服问答整理为 JSON,仅含 title、question、answer、conditions、category、kind 六个字符串字段,kind 为 qa。问题:测试门店周日营业吗?答:测试门店周日 9 点到 17 点营业,仅供测试。'}],deadline=deadline,max_tokens=2048)
error=result.get('error',''); text=result.get('text','').strip(); valid=False
try:
raw=text.split('\n',1)[-1].rsplit('```',1)[0] if text.startswith('```') else text
valid=isinstance(json.loads(raw),dict)
except ValueError: pass
print(json.dumps({'model':outlet.id,'deadline':deadline,'seconds':round(time.monotonic()-started,2),'error_type':('timeout' if any(x in error.lower() for x in ('时限','timeout','超时')) else 'upstream_error' if error else ''),'output_chars':len(text),'json_valid':valid},ensure_ascii=False),flush=True)
except Exception as e:
print(json.dumps({'deadline':deadline,'seconds':round(time.monotonic()-started,2),'exception_type':type(e).__name__}),flush=True)
asyncio.run(main())
PY