通过 OpenAI 兼容的聊天补全 API 实现文本生成和多轮对话。
接口说明#
| 项目 | 值 |
|---|
| 方法 | POST |
| 路径 | /v1/chat/completions |
| Base URL | https://api.unigateway.ai/v1 |
| 鉴权 | Authorization: Bearer $UNIGATEWAY_API_KEY |
| Content-Type | application/json |
最小请求#
curl https://api.unigateway.ai/v1/chat/completions \
-H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4",
"messages": [
{"role": "user", "content": "用三点说明 AI 网关的价值。"}
]
}'
Python(OpenAI SDK)#
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_UNIGATEWAY_API_KEY>",
base_url="https://api.unigateway.ai/v1",
)
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "用三点总结。"}],
)
print(resp.choices[0].message.content)
TypeScript(OpenAI SDK)#
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.UNIGATEWAY_API_KEY,
baseURL: "https://api.unigateway.ai/v1",
});
const resp = await client.chat.completions.create({
model: "gpt-5.4",
messages: [{ role: "user", content: "用三点总结。" }],
});
console.log(resp.choices[0].message.content);
参数说明#
| 字段 | 类型 | 必填 | 说明 |
|---|
model | string | 是 | 从 GET /v1/models 获取的精确模型 ID |
messages | array | 是 | 聊天消息数组,每个元素包含 role 和 content |
temperature | number | 否 | 控制随机性;范围取决于模型 |
max_tokens | number | 否 | 生成 token 的上限 |
stream | boolean | 否 | 设为 true 启用 SSE 流式输出 |
top_p | number | 否 | 核采样参数 |
frequency_penalty | number | 否 | 抑制重复用词 |
presence_penalty | number | 否 | 鼓励话题多样性 |
stop | string/array | 否 | 停止序列 |
user | string | 否 | 终端用户标识,便于风控 |
跨模型示例#
GPT#
curl https://api.unigateway.ai/v1/chat/completions \
-H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4",
"messages": [
{"role": "system", "content": "你是简洁的技术助手。"},
{"role": "user", "content": "写一份从单一 Provider 迁移到 UniGateway 的说明。"}
],
"temperature": 0.3
}'
Claude(通过 OpenAI 兼容接口)#
curl https://api.unigateway.ai/v1/chat/completions \
-H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "用一句话解释量子计算。"}
],
"max_tokens": 200
}'
Gemini(通过 OpenAI 兼容接口)#
curl https://api.unigateway.ai/v1/chat/completions \
-H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-preview",
"messages": [
{"role": "user", "content": "用三点说明 AI 网关路由。"}
]
}'
使用 Claude 特有能力如 thinking 和 cache_control,请用 POST /v1/messages。使用 Gemini 特有能力如 responseModalities 和 imageConfig,请用 POST /v1beta/models/{model}:generateContent。
响应格式#
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1760000000,
"model": "gpt-5.4",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "AI 网关统一模型接入、简化计费,并实现智能路由。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 18,
"total_tokens": 42
}
}
| 响应字段 | 说明 |
|---|
choices[].message.content | 生成文本 |
choices[].finish_reason | 结束原因:stop、length 等 |
model | 实际处理请求的模型 |
usage | Token 用量 |
常见错误#
| 状态码 | 原因 | 处理方式 |
|---|
400 | 请求体格式错误 | 检查 JSON 结构和参数类型 |
401 | API Key 无效或缺失 | 检查 Authorization 请求头 |
404 | 模型 ID 不存在或不在套餐内 | 重新确认 GET /v1/models |
429 | 触发限流 | 增加退避并重试 |
5xx | 服务或上游异常 | 指数退避重试;若持续则切换模型 |