Files
ttstd-infinite-canvas/backend/internal/protocol/docs/openai-response.md

2.6 KiB
Raw Blame History

OpenAI Responses API

Responses API 是 OpenAI 当前统一的文本与工具调用接口,输入使用 input,可同时承载简单字符串、结构化消息和工具回合。宿主默认发送字符串提示词,并从同步响应的 output_text 或 output[] 中提取文本。

接口、鉴权与请求模式

{{OPERATIONS}}

POST {channel_base_url}/v1/responses
Authorization: Bearer <API_KEY>
Content-Type: application/json

模型与能力发现

插件不硬编码模型表。请使用渠道模型管理中已验证支持 Responses API 的模型 ID。兼容服务即使实现 /v1/responses,也可能不支持内置工具、状态延续、结构化输出或多模态输入,能力必须以该服务文档和实际探测为准。

参数与字段映射

{{PARAMETERS}}

extra 可透传 input、instructions、temperature、top_p、max_output_tokens、stream、tools 和 text。extra.input 会替换默认字符串;复杂输入必须使用上游规定的 item 结构,不应把 Chat Completions 的 messages 原样塞进来。

请求示例

curl "{channel_base_url}/v1/responses" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL",
    "instructions": "输出可直接拍摄的镜头清单。",
    "input": "一名女孩在停电的商场里寻找出口。",
    "max_output_tokens": 1200
  }'
{
  "id": "resp_xxx",
  "status": "completed",
  "output_text": "镜头 1……",
  "usage": {"input_tokens":28,"output_tokens":174,"total_tokens":202}
}

结构化输入示例

{
  "model": "YOUR_MODEL",
  "input": [{
    "role": "user",
    "content": [{"type":"input_text","text":"分析这段剧情的节奏问题"}]
  }]
}

响应解析与限制

解析器优先读取顶层 output_text;缺失时遍历 output,尝试读取 item 的 text 或 content,并保留 usage。当前实现没有完整执行 function call、computer use、file search 等输出 item,也不通过 previous_response_id 自动续接状态。需要这些能力时必须在 Agent 调用链中显式实现,不能只靠文档声称支持。

流式响应由文本事件链路处理。上游拒绝、模型不支持、输入结构错误、输出 token 超限和工具参数校验失败均应作为失败返回。

官方资料

{{CONTRACT}}