auto ontology 的问答 api 位于 web 应用的 post /api/chat/completions。从用户菜单创建 api token,将它放在 x-api-key 请求头里,按 sse 流读取 result,直到收到 [done]。
API Token 在哪里创建?
登录 Web 应用,点开用户菜单进入 API Tokens 页面就能生成访问令牌。生成完建议把令牌存到运行脚本的环境变量里。注意部署时配置的 NVIDIA 模型密钥是用来调用模型服务的,这里要用你在 Auto Ontology 账号下单独创建的 API Token,别搞混。
export AUTO_ONTOLOGY_API_TOKEN=""
用 curl 观察问答接口的流式返回
直接往你的 Web 应用地址发请求就行。-N 参数是让 curl 收到内容就立刻打印,不用等缓存攒满,方便实时看接口返回进度,区分过程返回和最终结果。
curl -N -sS --fail-with-body http://localhost:3000/api/chat/completions -H "x-api-key: $AUTO_ONTOLOGY_API_TOKEN" -H "Content-Type: application/json" -d '{"question": "How many orders shipped last week?"}'
返回内容里 step 是当前处理进度,sql 是校验通过后待执行的查询语句,只有 result 事件包含最终答案和查询返回的数据。你可以先做本地模拟校验,确认解析器能正常取出答案和 SQL 内容。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Python 怎么取出最终答案和 SQL?
下面的代码只用 Python 标准库就能请求 SSE 接口。把代码存为 query.py,在已经配置好令牌的终端运行 python3 query.py 就行。远程部署环境可以通过 AUTO_ONTOLOGY_URL 指定 Web 服务的访问地址。
import json
import os
from urllib.error import HTTPError, URLError
from urllib.request import Request, urlopen
base = os.getenv("AUTO_ONTOLOGY_URL", "http://localhost:3000")
request = Request(
base.rstrip("/") + "/api/chat/completions",
data=json.dumps({"question": "How many orders shipped last week?"}).encode(),
headers={
"x-api-key": os.environ["AUTO_ONTOLOGY_API_TOKEN"],
"Content-Type": "application/json",
},
method="POST",
)
finished = False
received = False
try:
with urlopen(request, timeout=900) as stream:
for raw in stream:
line = raw.decode("utf-8").strip()
if not line.startswith("data:"):
continue
payload = line[5:].strip()
if payload == "[DONE]":
finished = True
break
event = json.loads(payload)
if event["type"] == "result":
answer = event["answer"]
print(answer["response"])
print(answer["sql_code"])
received = True
elif event["type"] == "error":
raise SystemExit(event["message"])
except HTTPError as exc:
raise SystemExit(f"HTTP {exc.code}")
except (URLError, TimeoutError) as exc:
raise SystemExit(f"Network error: {exc}")
if not (finished and received):
raise SystemExit("Stream ended without a complete result")
如果接口返回 401,先核对你用的令牌和当前访问的站点是不是匹配。如果 HTTP 连接成功但流返回里出现 error 字段,把事件里的错误消息记下来,排查数据库或者模型服务的问题。遇到结果需要人工复核的情况,可以直接去 Web Chat 里搜同一个问题,对照生成的 SQL 和图表核对。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











