外观
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" 后:
- 客户端读取
name、arguments与call_id,校验参数和执行权限。 - 由你自己的程序执行工具;模型接口不会替你访问业务数据库或完成支付。
- 将返回的输出项与原历史保留,并追加
{"type":"function_call_output","call_id":"原 call_id","output":"工具结果字符串"}。 - 发起下一次请求取得回答;它是另一条可能计费的请求。
不要直接执行模型提供的任意命令。完整工具定义与事件格式可查 OpenAI Responses 参考,官方全量功能不等于本站所有型号均支持。
范围与排障
已有接入依据覆盖上述 HTTP 文本、SSE、携带历史与基本工具调用。WebSocket 和服务端跨请求存储不在当前教程支持范围。遇到异常查看常见错误,核对使用日志。