Skip to Content
简体中文聊天接口

聊天接口 (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.5
  • claude-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 Sonnet
  • claude-3-5-haiku@20241022 - Claude 3.5 Haiku
  • claude-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 Flash
  • gemini-2.0-flash-lite - Gemini 2.0 Flash轻量版

DeepSeek

  • deepseek-ai/deepseek-r1-0528-maas - DeepSeek R1推理增强模型

完整模型列表请查看 可用模型

请求参数

必需参数

参数类型说明
modelstring要使用的模型ID,例如 gemini-2.5-flashclaude-sonnet-4-5
messagesarray对话消息数组,包含角色和内容

可选参数

参数类型默认值说明
temperaturenumber1.0控制随机性,取值范围0-2
max_tokensinteger-生成的最大token数量
top_pnumber1.0核采样参数,取值范围0-1
streambooleanfalse是否启用流式响应
stopstring/array-停止生成的标记序列
presence_penaltynumber0存在惩罚,取值范围-2.0到2.0
frequency_penaltynumber0频率惩罚,取值范围-2.0到2.0
userstring-终端用户的唯一标识符

消息格式

每条消息包含以下字段:

{ "role": "system" | "user" | "assistant", "content": string }
  • system: 系统消息,用于设定AI的行为和上下文
  • user: 用户消息,代表用户的输入
  • assistant: 助手消息,代表AI的回复

代码示例

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 } }

响应字段说明

字段类型说明
idstring唯一请求标识符
objectstring对象类型,固定为 chat.completion
createdintegerUnix时间戳
modelstring使用的模型名称
choicesarray生成的回复选项数组
choices[].messageobjectAI生成的消息
choices[].finish_reasonstring停止原因:stoplengthcontent_filter
usageobjectToken使用统计

流式响应

启用流式响应可以实时接收AI的回复,适合需要快速反馈的场景。

启用方式

设置 stream: true 参数:

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: 考虑所有可能的词(默认值)

💡 最佳实践: 通常只调整 temperaturetop_p 其中之一,不要同时调整。

错误处理

常见错误码

状态码说明解决方案
401未授权检查API密钥是否正确
400请求参数错误检查请求格式和必需参数
429请求过于频繁降低请求频率或升级配额
500服务器错误稍后重试
503服务暂时不可用稍后重试

错误响应示例

{ "error": { "message": "Invalid API key provided", "type": "invalid_request_error", "code": "invalid_api_key" } }

错误处理示例

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