核心 API
文字 API
下文列出 OpenAI Responses、Chat Completions 和 Claude Anthropic Messages 的请求地址、认证方式与最小示例;Grok 与 Gemini 暂未上线。
协议与地址
三种协议的请求体、响应结构和流式事件并不相同。SDK 配置填写 Base URL,直接发送 HTTP 请求则使用表中的完整 endpoint。
| API / 协议 | 完整 endpoint | 认证 | 读取文字 |
|---|---|---|---|
| OpenAI · Responses | POST https://api.khaix.net/v1/responses | Authorization: Bearer | output[].content[].text |
| OpenAI · Chat Completions | POST https://api.khaix.net/v1/chat/completions | Authorization: Bearer | choices[0].message.content |
| Claude · Anthropic Messages | POST https://api.khaix.net/v1/messages | x-api-key | content[].text |
| Grok | 暂未上线 | 不适用 | 不适用 |
| Gemini | 暂未上线 | 不适用 | 不适用 |
OpenAI 与 Claude 的模型 ID、价格和可用状态以控制台为准。
Responses API
Responses 通过 input 提交文字,并提供流式事件、函数工具和结构化输出。Codex 等编码 Agent 也会使用该协议。
curl https://api.khaix.net/v1/responses \
-H "Authorization: Bearer sk-请替换为你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"input": "用一句话说明 API 连接成功。"
}'请求完成后会返回 status: "completed",文字位于类型为 message 的输出项中。SDK 的 output_text 是便捷属性,REST 响应顶层不一定包含这个字段。
Chat Completions
多数 OpenAI Compatible 客户端通过 Chat Completions 接入。角色和对话内容放在 messages 数组中。
curl https://api.khaix.net/v1/chat/completions \
-H "Authorization: Bearer sk-请替换为你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"messages": [
{"role": "user", "content": "用一句话说明 API 连接成功。"}
]
}'响应文字通常位于 choices[0].message.content。Responses 使用的 input、text.format 和流式事件处理器不适用于本协议。
Anthropic Messages
Messages 采用 Anthropic 请求结构,其中 max_tokens 必填,API 版本通过请求头传递。
curl https://api.khaix.net/v1/messages \
-H "x-api-key: sk-请替换为你的密钥" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 128,
"messages": [
{"role": "user", "content": "用一句话说明 API 连接成功。"}
]
}'从响应的 content 数组读取文字。Claude Code 通过 ANTHROPIC_AUTH_TOKEN 连接网关时会发送授权头,配置方法见客户端文档。
Grok 与 Gemini
Grok 和 Gemini 文字 API 均暂未上线,当前没有 endpoint、专用密钥配置或请求示例。其他平台的地址和兼容配置不能直接用于 KHaiXAPI。
流式文字输出
在 Responses、Chat Completions 或 Messages 的请求体中加入 "stream": true 即可启用流式输出。下面是 Responses 的最小 SSE 请求:
curl -N https://api.khaix.net/v1/responses \
-H "Authorization: Bearer sk-请替换为你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"input": "分三行输出一段简短文字。",
"stream": true
}'| 协议 | 关键事件或结束方式 |
|---|---|
| Responses | 处理 response.output_text.delta、response.completed 与 error |
| Chat Completions | 累加 choices[].delta.content,直到结束标记 |
| Messages | 按 content_block_delta 等 Anthropic 事件类型处理 |
| Grok 与 Gemini | 暂未上线,当前不提供流式调用方式 |
接入时分别处理 HTTP 错误、SSE 错误事件、客户端断开和整体超时。三种协议的分块结构不同,需要使用各自的解析逻辑。
标准函数工具
模型只会返回函数名称和参数,实际执行仍由应用负责。校验参数并执行受控函数后,把结果连同原始 call_id 返回模型。
curl https://api.khaix.net/v1/responses \
-H "Authorization: Bearer sk-请替换为你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"input": "查询上海现在的时间。",
"tools": [{
"type": "function",
"name": "get_city_time",
"description": "返回指定城市的当地时间",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
"additionalProperties": false
},
"strict": true
}]
}'响应的 output 中会出现 type: "function_call"、name、arguments 和 call_id。执行函数后发送第二次请求:
curl https://api.khaix.net/v1/responses \
-H "Authorization: Bearer sk-请替换为你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"previous_response_id": "请替换为上一响应ID",
"input": [{
"type": "function_call_output",
"call_id": "请替换为函数调用ID",
"output": "{\"city\":\"上海\",\"time\":\"10:30\"}"
}]
}'结构化文字输出
需要固定 JSON 结构时可使用 JSON Schema。返回结果仍要经过解析、类型和业务规则校验;完整 Schema 的支持范围取决于模型。
curl https://api.khaix.net/v1/responses \
-H "Authorization: Bearer sk-请替换为你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"input": "把这句话分类:服务器已恢复,问题解决。",
"text": {
"format": {
"type": "json_schema",
"name": "ticket_result",
"strict": true,
"schema": {
"type": "object",
"properties": {
"status": {"type": "string", "enum": ["open", "resolved"]},
"summary": {"type": "string"}
},
"required": ["status", "summary"],
"additionalProperties": false
}
}
}
}'| 协议 | Schema 配置位置 | 注意事项 |
|---|---|---|
| Responses | text.format | 字段名与 Chat Completions 不同 |
| Chat Completions | response_format.json_schema | Schema 外层还需包含名称与严格模式 |
结构化结果仍通过文字内容返回。只有内容通过解析和业务校验后才算成功;拒答、输出中断、Schema 不受支持或 JSON 解析失败都需要单独处理。