Chat Completions
OpenAI-compatible Chat Completions 接口。
OpenAI-compatible 入口
Chat Completions 适合存量 OpenAI-compatible 客户端。它使用 Bearer 用户 API Key,并按 OpenAI usage 字段结算。
路径
| 用途 | 方法与路径 |
|---|---|
| 模型调用 | POST /v1/chat/completions |
| 兼容路径 | POST /chat/completions |
| 模型列表 | GET /v1/models、GET /v1/models/、GET /models、GET /models/ |
请求示例
curl https://dingjiai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_USER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "从 OpenAI Chat 模型列表复制的模型名",
"messages": [
{ "role": "user", "content": "用一句话介绍你自己" }
]
}'流式请求
curl -N https://dingjiai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_USER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "从 OpenAI Chat 模型列表复制的模型名",
"stream": true,
"messages": [
{ "role": "user", "content": "分三点说明接入流程" }
]
}'网关优先从流式响应里读取上游 usage。若已向客户端交付至少一个上游/model chunk,但最终 usage 缺失或无效,按 token 计费的商品可能使用保守下界估算完成结算;已交付后断流或客户端取消也遵循 partial usage / 输出下限口径。真正空白或畸形的非流式响应尚未提交给客户端,会按 usage_missing / usage_invalid 对客失败、释放预留且零扣费。
流式响应在上游返回 2xx 后会先提交响应头。若随后没有交付任何上游/model chunk 就结束,客户端仍收到 2xx;body 可能为空,也可能只包含网关生成的 SSE keepalive。网关不能再改写成错误,会释放预留、零扣费,并记录 usage 结算失败和调用观测。该情况与非流式空白/畸形响应不是同一个对客结果。
请求字段
Prop
Type
usage 与计费
结算读取响应体里的 usage.prompt_tokens、usage.completion_tokens,以及可选的 usage.prompt_tokens_details.cached_tokens。
真实 usage 优先
服务端不会采用客户端自行上报或估算的 token 数。按 token 计费的合法 JSON 对象或已交付至少一个上游/model chunk 的 stream 在上游 usage 缺失/无效时可能使用保守下界估算;真正空白/畸形 non-stream body 会按 usage_missing / usage_invalid 对客失败并零扣费。上游/model 零 chunk 流已经提交 2xx,body 可能为空或只含网关生成的 SSE keepalive;网关只记录失败、释放预留并零扣费,不能再返回这两个错误体。
最后更新于