INNER CODE UNIT · Python
cmd_ask
Laurent00TT/PharosRAG · src/pharos/cli.py:67
def cmd_ask(args) -> None:
with _client(args.url) as c:
try:
r = c.post("/v1/ask", json={"query": args.query, "top_k": args.top_k,
"rerank": args.rerank, "include_contexts": args.contexts,
"doc_ids": args.doc_id or None, "doc_type": args.doc_type,
"kind": args.kind, "strategy": args.strategy})
except Exception as e:
raise SystemExit(f"连不上 Pharos 守护进程({c.base_url}):{type(e).__name__}。先跑 pharos serve。")
try:
data = r.json()
except ValueError: # 评审修:5xx/非 JSON 不裸抛 traceback
raise SystemExit(f"守护进程返回异常(HTTP {r.status_code},非 JSON),详见服务端日志。")
if args.json:
print(json.dumps(data, ensure_ascii=False, indent=2))
return
if data.get("status") != "ok":
raise SystemExit(f"[{data.get('status')}] {data.get('hint', '')}")