跳转到内容

OpenAI 兼容

Responses

用 OpenAI Responses 格式调用 NoviaHub 上的模型,以及 Responses Compact 和 /v1/alpha/search 两个相关接口。

与 OpenAI 的 Create a model response 接口兼容。Codex 等工具使用的就是这个接口。

POST https://noviahub.com/v1/responses
请求头 必填 说明
Authorization 是 Bearer <你的 API 密钥>
Content-Type 是 application/json

下表列出 NoviaHub 能识别并转发的参数。参数最终是否生效,取决于模型本身是否支持。

参数 类型 必填 说明
model string 是 模型 ID,例如 gpt-6-sol。
input string / array 否 输入内容:一段文字,或按 OpenAI 规范组织的消息/内容数组。
instructions string 否 系统级指令。
max_output_tokens integer 否 最多生成多少 token。
temperature number 否 采样温度。
top_p number 否 核采样。
stream boolean 否 true 时以流式(SSE)返回。
stream_options object 否 流式选项。
tools array 否 可用工具。
tool_choice string / object 否 工具选择方式。
parallel_tool_calls boolean 否 是否允许一次调用多个工具。
max_tool_calls integer 否 最多调用多少次工具。
reasoning object 否 思考设置,如 {"effort": "medium", "summary": "auto"}。
text object 否 文本输出设置(格式等)。
previous_response_id string 否 接着上一次回复继续对话。
include array 否 需要额外返回的内容。
store boolean 否 是否让上游保存本次回复。
truncation string 否 上下文过长时的截断策略。
prompt_cache_key string 否 提示缓存的键。
top_logprobs integer 否 返回候选 token 的概率数量。
metadata、user — 否 附加信息和用户标识,原样转发。

除上表外,NoviaHub 还能识别 conversation、context_management、prompt、prompt_cache_options、prompt_cache_retention、frequency_penalty、presence_penalty、moderation、client_metadata,以及 enable_thinking、thinking_budget、chat_template_kwargs、top_k、min_p、repetition_penalty、stop 等扩展字段。

终端窗口
curl https://noviahub.com/v1/responses \
-H "Authorization: Bearer $NOVIAHUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-sol",
"input": "用一句话解释什么是 API。"
}'
字段 说明
id 本次回复的 ID。
object 固定为 response。
created_at 创建时间(Unix 秒)。
status 状态,正常完成为 completed。
model 模型 ID。
output 输出项数组。文字回答在 type 为 message 的项里,content[].type 为 output_text,文字在 text 字段。
usage.input_tokens / output_tokens / total_tokens 输入、输出、合计 token 数。
usage.input_tokens_details.cached_tokens 命中缓存的输入 token 数。
usage.output_tokens_details.reasoning_tokens 思考部分的 token 数。
示例响应(本地测试环境,内容由模拟上游生成)
{
"id": "resp_mock123",
"object": "response",
"created_at": 1790609867,
"status": "completed",
"model": "gpt-6-sol",
"output": [
{
"type": "message",
"id": "msg_mock123",
"status": "completed",
"role": "assistant",
"content": [{ "type": "output_text", "text": "Hello from the mock upstream.", "annotations": [] }]
}
],
"usage": {
"input_tokens": 12,
"output_tokens": 7,
"total_tokens": 19,
"input_tokens_details": { "cached_tokens": 0 },
"output_tokens_details": { "reasoning_tokens": 0 }
}
}

加 "stream": true 后,响应以 SSE 事件返回。每个事件有 event: 和 data: 两行,常见事件有:

  • response.created:开始生成。
  • response.output_text.delta:新生成的一段文字,在 delta 字段。
  • response.completed:生成结束,response 字段里是完整结果,包括 usage。
示例流式响应(本地测试环境)
event: response.created
data: {"type":"response.created","sequence_number":0,"response":{"id":"resp_mock123","object":"response","created_at":1790609867,"status":"in_progress","model":"gpt-6-sol","output":[],"usage":null}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","sequence_number":1,"item_id":"msg_mock123","output_index":0,"content_index":0,"delta":"Hello"}
event: response.output_text.delta
data: {"type":"response.output_text.delta","sequence_number":2,"item_id":"msg_mock123","output_index":0,"content_index":0,"delta":" from the mock upstream."}
event: response.completed
data: {"type":"response.completed","sequence_number":3,"response":{"id":"resp_mock123","object":"response","created_at":1790609867,"status":"completed","model":"gpt-6-sol","output":[{"type":"message","id":"msg_mock123","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Hello from the mock upstream.","annotations":[]}]}],"usage":{"input_tokens":12,"output_tokens":7,"total_tokens":19,"input_tokens_details":{"cached_tokens":0},"output_tokens_details":{"reasoning_tokens":0}}}}
POST https://noviahub.com/v1/responses/compact

对应 OpenAI 的对话压缩(compaction)接口,用来把很长的对话历史压缩成更短的内容,以便继续对话。只对端点标签里有 openai-response-compact 的模型可用。

  • 必填 model。会转发给上游的字段只有:model、input、instructions、previous_response_id、parallel_tool_calls、prompt_cache_key、prompt_cache_options、prompt_cache_retention。
  • tools、reasoning、text 虽然能识别,但不会转发;service_tier 默认会被移除。
  • 不支持流式,总是一次性返回。
  • 响应体由上游原样返回,结构为 id、object、created_at、output、usage(以及出错时的 error)。
  • 按 token 计费,与普通对话相同。
POST https://noviahub.com/v1/alpha/search

这是 Codex 命令行工具使用的独立网页搜索接口,普通开发一般用不到。只对端点标签里有 openai-alpha-search 的模型可用。

  • 只有 model 必填。请求体会原样转发给上游,响应也原样返回。
  • 不支持流式。
  • 计费方式特殊:上游不返回 token 用量,NoviaHub 按「一次网页搜索工具调用」收费,token 部分为 0。单价由平台设置。
  • 对不支持的模型调用会报错,例如 channel does not support /v1/alpha/search。
HTTP 状态码 原因
400 缺少 model,或请求体不是合法 JSON。
401 密钥无效、已禁用、已过期或额度已用完。
403 密钥不允许使用这个模型、IP 不在白名单,或账户余额不足。
503 模型 ID 写错,或该模型当前没有可用线路。

完整说明见错误码与排查。