跳转到内容

Responses API ​

适合新应用的文本生成、携带历史的多轮对话与函数调用。请求地址为 POST https://api.avanovo.com/v1/responses,使用 Authorization: Bearer <本站 API Key>。

先按快速开始准备环境变量、权限及余额。下文以 gpt-6-astra 为例。

最小非流式请求 ​

sh
curl --fail-with-body -sS -i https://api.avanovo.com/v1/responses \
  -H "Authorization: Bearer ${TOKEN_RELAY_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{"model":"gpt-6-astra","stream":false,"max_output_tokens":256,"input":[{"role":"user","content":"请用一句话介绍你自己。"}]}'

model 是精确模型 ID,input 提供用户消息,max_output_tokens 限制输出预算。预算过小可能得到 incomplete;该参数不等于总费用上限,也不限制输入用量。

原始响应从 output 数组中读取 type: "message" 的内容,再提取 type: "output_text" 的文本。不要假定数组第一项一定是文本:还可能出现推理或工具项。同时检查 status 和 usage,保留响应头 X-Oneapi-Request-Id。

流式输出(SSE) ​

将 stream 改为 true,curl 加 -N 禁用输出缓冲:

bash
curl --fail-with-body -sS -i -N https://api.avanovo.com/v1/responses \
  -H "Authorization: Bearer ${TOKEN_RELAY_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{"model":"gpt-6-astra","stream":true,"max_output_tokens":256,"input":[{"role":"user","content":"请用一句话介绍你自己。"}]}'

客户端需按 SSE 事件解析,不能把整个响应当作一段 JSON:

  • response.output_text.delta:增量文本。
  • response.completed:响应完整结束,继续读取最终状态与用量。
  • response.incomplete、response.failed 或错误事件:未完整完成,需要记录原因。
  • 连接关闭但没有完成事件:视为中断,不能仅凭已收到文本认定成功。

HTTP 200 也可能在后续流中发生错误。自动重试可能产生新的请求与费用,先查日志再决定。

多轮对话:显式携带历史 ​

将上一轮输入与返回的 output 项保留,再追加新消息。下面是构造下一次请求的 Python 片段,client 的初始化见 SDK:

python
history = [{"role": "user", "content": "请推荐一种学习 Python 的方法。"}]
first = client.responses.create(
    model="gpt-6-astra", input=history, max_output_tokens=256
)
# 确认 first.status 为 completed 后再继续。
history.extend(first.output)
history.append({"role": "user", "content": "把它拆成三步。"})
second = client.responses.create(
    model="gpt-6-astra", input=history, max_output_tokens=256
)
print(second.output_text)

每轮重发的历史会计入输入;对话越长,用量可能越大。当前教程采用携带历史的方式,不依赖跨请求 previous_response_id 存储。

函数调用的责任边界 ​

在 tools 中定义函数名、说明及 JSON Schema 参数。模型返回 type: "function_call" 后:

  1. 客户端读取 name、arguments 与 call_id,校验参数和执行权限。
  2. 由你自己的程序执行工具;模型接口不会替你访问业务数据库或完成支付。
  3. 将返回的输出项与原历史保留,并追加 {"type":"function_call_output","call_id":"原 call_id","output":"工具结果字符串"}。
  4. 发起下一次请求取得回答;它是另一条可能计费的请求。

不要直接执行模型提供的任意命令。完整工具定义与事件格式可查 OpenAI Responses 参考,官方全量功能不等于本站所有型号均支持。

范围与排障 ​

已有接入依据覆盖上述 HTTP 文本、SSE、携带历史与基本工具调用。WebSocket 和服务端跨请求存储不在当前教程支持范围。遇到异常查看常见错误,核对使用日志。

Frontend design and development by New API contributors. New API 原项目