Ori联系我们

文档OriHub

OpenAI Responses API

平台直接兼容 OpenAI 的 Responses API —— POST /v1/responses,比 Chat Completions 简洁:input 可以直接传一段字符串。官方 SDK 只是把它包了一层。

用 SDK 就看OpenAI SDK,自己发 HTTP 请求就看这页。

对话生成

POST /v1/responses —— 生成一次对话响应。

鉴权是 Authorization: Bearer {API_KEY}。

curl https://api.lk888.ai/v1/responses \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tt-4o",
    "input": "你好"
  }'

请求参数

  • model —— 模型名(必填)
  • input —— 输入内容,一段字符串或者消息数组(必填)
  • stream —— 是否流式输出(可选)

响应

{
  "id": "resp-xxx",
  "object": "response",
  "model": "tt-4o",
  "output": [
    {
      "type": "message",
      "content": [{ "type": "output_text", "text": "你好!" }]
    }
  ],
  "usage": { "input_tokens": 5, "output_tokens": 8 }
}
  • output[0].content[0].text —— 回复正文
  • usage.input_tokens / usage.output_tokens —— token 用量

流式

加 stream: true 返回 SSE。事件跟 Chat Completions 不一样 —— Responses 是语义事件(response.created → response.output_text.delta → response.completed),不是一个 chunk 一个 chunk 往外吐。

特别注意

  • 这个端点是无状态透传。平台每次请求独立调度线路,同一段对话可能落到不同上游。所以 previous_response_id 不保证能用(跨线路会返回 previous_response_not_found),store=true 也不跨线路生效
  • 多轮要自己重放:把上一轮完整的 output 项(reasoning / message / function_call 原样带上)追加到本轮 input 数组,再加 function_call_output,全量重放上下文。别指望服务端替你记着
  • 错误格式和状态码跟 Chat Completions 一样:401 密钥无效、402 余额不足、429 请求过多
  • 这个端点跟 Chat Completions 是同一批模型 —— GPT 全系都能走,两个端点二选一(Chat Completions 那边优先)
  • 分组路由由密钥的调度策略决定,请求体里的 channel_group 和请求头 X-Channel-Group 都不改路由
  • 这次调用花了多少:响应头 X-Task-Id 是本平台的任务号(流式非流式都带,响应体里的 id 是上游生成的、不能用来查),拿它调 GET /v1/skills/task-status?task_id={X-Task-Id},is_final = true 时的 cost 就是结算金额