Chat Completions
POST
/v1/chat/completions使用 OpenAI Chat Completions 兼容结构进行文本、多模态和工具调用。
这是最适合作为首次联调的文本接口。模型能力和可用字段取决于所选模型及其 Provider 路由。
核心请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 从 /v1/models 获取的模型 ID。 |
messages | array | 是 | 对话消息,content 支持字符串或多模态内容数组。 |
stream | boolean | 否 | 设为 true 时返回 SSE 数据流。 |
temperature | number | 否 | 采样参数,仅在模型和路由支持时生效。 |
max_tokens | integer | 否 | 限制输出 Token 数,受模型能力约束。 |
tools | array | 否 | OpenAI 风格函数工具定义。 |
response_format | object | 否 | 结构化输出要求,仅在模型和路由支持时使用。 |
非流式示例
curl
curl https://api.noxgate.net/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [{"role": "user", "content": "Hello"}],
"stream": false
}'Python
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.noxgate.net/v1",
)
response = client.chat.completions.create(
model="YOUR_MODEL_ID",
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-your-api-key",
baseURL: "https://api.noxgate.net/v1",
});
const response = await client.chat.completions.create({
model: "YOUR_MODEL_ID",
messages: [{ role: "user", content: "Hello" }],
});
console.log(response.choices[0]?.message?.content);流式响应
stream=true 时响应使用 text/event-stream。客户端应逐个处理 data 事件,并以 data: [DONE] 作为正常结束信号。连接空闲时平台可能发送注释心跳。
curl · SSE
curl https://api.noxgate.net/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [{"role": "user", "content": "Hello"}],
"stream": true
}' \
-N成功响应
JSON
{
"id": "chatcmpl_example",
"object": "chat.completion",
"model": "YOUR_MODEL_ID",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "Hello!"},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 8,
"completion_tokens": 3,
"total_tokens": 11
}
}使用提示
- 先用非流式文本请求确认密钥、Base URL 和模型 ID。
- 多模态、工具调用和结构化输出必须由所选模型支持。
- 不要假设所有 Provider 都支持完全相同的可选字段。