Chat Completions
使用 POST /v1/chat/completions 调用 OpenAI 兼容的对话、工具调用、JSON 输出和流式生成。InOneAPI 保持公开请求形态稳定,并根据 model 路由到已启用的供应商映射。
接口地址
https://api.inoneapi.com/v1/chat/completions
curl https://api.inoneapi.com/v1/chat/completions \
-H "Authorization: Bearer $INONEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4.1-mini",
"messages": [
{ "role": "system", "content": "回答要简洁。" },
{ "role": "user", "content": "用一句话解释 TTFT。" }
],
"temperature": 0.2,
"stream": false
}'
参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | InOneAPI 公共模型 ID,网关会映射到已启用的上游模型。 |
| messages | array | 是 | 有序消息数组,常用角色包括 system、user、assistant、tool。 |
| temperature | number | 否 | 采样随机性。供应商范围不同,通常使用 0-2。 |
| top_p | number | 否 | 核采样。通常和 temperature 二选一调整。 |
| max_tokens | number | 否 | 生成上限。部分供应商使用 max_completion_tokens,映射会在支持时转换。 |
| stream | boolean | 否 | 为 true 时返回 SSE 格式的 chat completion chunks。 |
| tools | array | 否 | OpenAI 兼容工具定义。是否可用取决于模型和映射。 |
| tool_choice | string/object | 否 | 控制自动、强制或指定工具调用。 |
| response_format | object | 否 | 支持模型可用于 JSON object 或 JSON schema 输出。 |
| stop | string/array | 否 | 停止序列,支持数量由供应商决定。 |
| user | string | 否 | 终端用户标识,用于滥用追踪。不要放密钥或个人敏感信息。 |
消息内容
纯文本消息可以直接使用字符串 content。多模态模型可以使用 content parts,例如 text 和 image_url;不支持的类型会按映射能力拒绝或转换。
{
"role": "user",
"content": [
{ "type": "text", "text": "描述这张图片。" },
{ "type": "image_url", "image_url": { "url": "https://example.com/image.png" } }
]
}
响应
非流式响应遵循 OpenAI chat completion 结构。Token 用量会在可行时本地计算,并按模型配置对齐官方供应商算法。
{
"id": "chatcmpl_...",
"object": "chat.completion",
"created": 1760000000,
"model": "openai/gpt-4.1-mini",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "TTFT 是从请求开始到收到首个 token 的时间。" },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 13,
"total_tokens": 31
}
}
流式响应
设置 stream: true 后,逐行解析每个 data: JSON chunk,直到 data: [DONE]。首个 chunk 是客户端侧 TTFT 的主要信号;响应头 X-Gateway-Trace-ID 可关联网关诊断。
错误处理
400 通常表示 JSON、参数或映射错误;401/403 表示密钥或权限问题;429 应遵循 Retry-After 并检查预算或速率;5xx 排查时保留 Trace ID。
- 不要在已经收到部分流式输出后盲目重试。
- API Key 只放服务端。
- 日志记录
X-Gateway-Trace-ID、状态、模型和耗时,不记录完整提示词或输出。