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 个请求
  • 如需提高限制,请联系我们

最佳实践

  1. 错误重试:实现指数退避重试机制
  2. 流式响应:对于长文本生成,建议使用流式响应以提升用户体验
  3. Token 管理:注意控制 max_tokens 以避免不必要的消费
  4. 模型选择:根据任务复杂度选择合适的模型

下一步