API 调用方法
Du's API 兼容 OpenAI API 格式,你可以使用任何支持 OpenAI API 的客户端或 SDK。
API 端点
基础 URL:https://api.dusapi.com
主要端点
- Chat Completions:
/v1/chat/completions - 对话补全(支持 GPT、Claude)
- Completions:
/v1/completions - 文本补全
- Models:
/v1/models - 获取可用模型列表
认证
所有 API 请求都需要在 HTTP Header 中包含你的 API Key:
Authorization: Bearer YOUR_API_KEY
请求示例
Chat Completions
curl https://api.dusapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-4",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
}'
流式响应
添加 "stream": true 参数以启用流式响应:
curl https://api.dusapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "Tell me a story"}],
"stream": true
}'
使用 SDK
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.dusapi.com/v1"
)
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
Node.js (OpenAI SDK)
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.dusapi.com/v1'
});
const response = await client.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Hello!' }]
});
console.log(response.choices[0].message.content);
Anthropic SDK
from anthropic import Anthropic
client = Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.dusapi.com/v1"
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(message.content)
请求参数
常用参数
model (string, required): 要使用的模型名称
messages (array, required): 对话消息数组
temperature (number, optional): 采样温度,0-2 之间,默认 1
max_tokens (integer, optional): 生成的最大 token 数
stream (boolean, optional): 是否启用流式响应,默认 false
top_p (number, optional): 核采样参数,0-1 之间
frequency_penalty (number, optional): 频率惩罚,-2.0 到 2.0 之间
presence_penalty (number, optional): 存在惩罚,-2.0 到 2.0 之间
消息格式
{
"role": "user|assistant|system",
"content": "消息内容"
}
响应格式
标准响应
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-4",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
流式响应
流式响应使用 Server-Sent Events (SSE) 格式:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"model":"gpt-4","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"model":"gpt-4","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}
data: [DONE]
错误处理
API 使用标准 HTTP 状态码:
200 - 成功
400 - 请求参数错误
401 - 认证失败(API Key 无效)
429 - 请求过于频繁
500 - 服务器错误
错误响应格式:
{
"error": {
"message": "错误描述",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
速率限制
为了保证服务质量,我们对 API 请求有以下限制:
- 每个用户默认并发限制:50 个请求
- 如需提高限制,请联系我们
最佳实践
- 错误重试:实现指数退避重试机制
- 流式响应:对于长文本生成,建议使用流式响应以提升用户体验
- Token 管理:注意控制
max_tokens 以避免不必要的消费
- 模型选择:根据任务复杂度选择合适的模型
下一步