聊天接口 (Chat Completions)
聊天接口允许您与AI模型进行对话交互,支持多轮对话、流式响应和函数调用。
接口地址
POST https://aiapi.services/v1/chat/completions鉴权方式
所有请求需要在HTTP头中包含您的API密钥:
Authorization: Bearer YOUR_API_KEY支持的模型
Anthropic Claude
claude-sonnet-4-5/claude-sonnet-4-5@20250929- 最新一代Claude Sonnet 4.5claude-sonnet-4/claude-sonnet-4-20250514- Claude Sonnet 4代系列claude-opus-4-1/claude-opus-4-1@20250805- Claude Opus 4.1,最强推理能力claude-opus-4- Claude Opus 4代基础版本claude-3-7-sonnet- Claude 3.7 Sonnetclaude-3-5-haiku@20241022- Claude 3.5 Haikuclaude-3-haiku@20240307- Claude 3 Haiku
Google Gemini
gemini-2.5-pro- Gemini 2.5 Pro,最强大的多模态对话模型gemini-2.5-flash- Gemini 2.5 Flash,快速响应的高效模型gemini-2.5-flash-image-preview- Gemini 2.5 Flash图像预览版gemini-2.5-flash-lite- Gemini 2.5 Flash轻量版gemini-2.0-flash- Gemini 2.0 Flashgemini-2.0-flash-lite- Gemini 2.0 Flash轻量版
DeepSeek
deepseek-ai/deepseek-r1-0528-maas- DeepSeek R1推理增强模型
完整模型列表请查看 可用模型。
请求参数
必需参数
| 参数 | 类型 | 说明 |
|---|---|---|
model | string | 要使用的模型ID,例如 gemini-2.5-flash 或 claude-sonnet-4-5 |
messages | array | 对话消息数组,包含角色和内容 |
可选参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
temperature | number | 1.0 | 控制随机性,取值范围0-2 |
max_tokens | integer | - | 生成的最大token数量 |
top_p | number | 1.0 | 核采样参数,取值范围0-1 |
stream | boolean | false | 是否启用流式响应 |
stop | string/array | - | 停止生成的标记序列 |
presence_penalty | number | 0 | 存在惩罚,取值范围-2.0到2.0 |
frequency_penalty | number | 0 | 频率惩罚,取值范围-2.0到2.0 |
user | string | - | 终端用户的唯一标识符 |
消息格式
每条消息包含以下字段:
{
"role": "system" | "user" | "assistant",
"content": string
}- system: 系统消息,用于设定AI的行为和上下文
- user: 用户消息,代表用户的输入
- assistant: 助手消息,代表AI的回复
代码示例
cURL
curl https://aiapi.services/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash",
"messages": [
{
"role": "system",
"content": "你是一个helpful AI助手。"
},
{
"role": "user",
"content": "介绍一下人工智能的发展历史。"
}
],
"temperature": 0.7,
"max_tokens": 1000
}'响应格式
标准响应
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gemini-2.5-flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "人工智能(AI)的发展历史可以追溯到20世纪50年代..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 56,
"completion_tokens": 150,
"total_tokens": 206
}
}响应字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 唯一请求标识符 |
object | string | 对象类型,固定为 chat.completion |
created | integer | Unix时间戳 |
model | string | 使用的模型名称 |
choices | array | 生成的回复选项数组 |
choices[].message | object | AI生成的消息 |
choices[].finish_reason | string | 停止原因:stop、length、content_filter |
usage | object | Token使用统计 |
流式响应
启用流式响应可以实时接收AI的回复,适合需要快速反馈的场景。
启用方式
设置 stream: true 参数:
cURL
curl https://aiapi.services/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash",
"messages": [{"role": "user", "content": "你好"}],
"stream": true
}'流式响应格式
每个数据块格式为:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gemini-2.5-flash","choices":[{"index":0,"delta":{"content":"你"},"finish_reason":null}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gemini-2.5-flash","choices":[{"index":0,"delta":{"content":"好"},"finish_reason":null}]}
data: [DONE]多轮对话
保持对话上下文需要在 messages 数组中包含之前的对话历史:
const messages = [
{ role: 'system', content: '你是一个helpful AI助手。' },
{ role: 'user', content: '什么是机器学习?' },
{ role: 'assistant', content: '机器学习是人工智能的一个分支...' },
{ role: 'user', content: '它有哪些应用场景?' } // 新问题,基于上下文
];
const response = await fetch('https://aiapi.services/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gemini-2.5-flash',
messages: messages
})
});⚠️ Token限制: 每个模型都有最大上下文长度限制。对话历史过长时,需要适当截断或总结早期消息。
参数调优建议
Temperature (温度)
- 0.0-0.3: 更确定、更一致的输出(适合代码生成、数据提取)
- 0.4-0.7: 平衡创造性和一致性(适合日常对话)
- 0.8-1.0: 更有创造性、多样性的输出(适合创意写作)
- 1.0-2.0: 高度随机和创造性(适合头脑风暴)
Max Tokens
根据需求设置合理的token限制:
- 简短回答:100-300 tokens
- 中等回答:500-1000 tokens
- 详细回答:1500-3000 tokens
Top P (核采样)
- 0.1: 仅考虑最可能的10%的词
- 0.5: 考虑累积概率达到50%的词
- 1.0: 考虑所有可能的词(默认值)
💡 最佳实践: 通常只调整 temperature 或 top_p 其中之一,不要同时调整。
错误处理
常见错误码
| 状态码 | 说明 | 解决方案 |
|---|---|---|
| 401 | 未授权 | 检查API密钥是否正确 |
| 400 | 请求参数错误 | 检查请求格式和必需参数 |
| 429 | 请求过于频繁 | 降低请求频率或升级配额 |
| 500 | 服务器错误 | 稍后重试 |
| 503 | 服务暂时不可用 | 稍后重试 |
错误响应示例
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}错误处理示例
JavaScript
try {
const response = await fetch('https://aiapi.services/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gemini-2.5-flash',
messages: [{role: 'user', content: 'Hello'}]
})
});
if (!response.ok) {
const error = await response.json();
console.error('API Error:', error.error.message);
return;
}
const data = await response.json();
console.log(data.choices[0].message.content);
} catch (error) {
console.error('Network Error:', error);
}最佳实践
1. 设置清晰的系统提示
使用 system 角色定义AI的行为和上下文:
{
"role": "system",
"content": "你是一个专业的技术客服,需要用简洁、友好的语气回答用户问题。"
}2. 合理管理对话上下文
对于长对话,实现智能截断策略:
- 保留系统消息
- 保留最近N轮对话
- 可选:总结早期对话内容
3. 实现重试机制
对于临时性错误(429、500、503),使用指数退避策略重试:
async function callWithRetry(maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await fetch('https://aiapi.services/v1/chat/completions', {
// ... 请求配置
});
if (response.ok) {
return await response.json();
}
if (response.status === 429 || response.status >= 500) {
const delay = Math.pow(2, i) * 1000; // 指数退避
await new Promise(resolve => setTimeout(resolve, delay));
continue;
}
throw new Error(`HTTP ${response.status}`);
} catch (error) {
if (i === maxRetries - 1) throw error;
}
}
}4. 监控Token使用
通过 usage 字段跟踪每次请求的token消耗:
const data = await response.json();
console.log(`Used ${data.usage.total_tokens} tokens`);
console.log(`Prompt: ${data.usage.prompt_tokens}, Completion: ${data.usage.completion_tokens}`);相关资源
Last updated on