Chat Completions

聊天补全 API 是最常用的接口,支持多轮对话、系统提示、工具调用等。

请求格式

POST /v1/chat/completions

请求参数

参数类型必填说明
modelstring模型 ID,如 gpt-4o
messagesarray消息数组,包含 role 和 content
temperaturenumber采样温度 0-2,默认 1
max_tokensinteger最大输出 Token 数
top_pnumber核采样参数,默认 1
streamboolean是否流式输出,默认 false
stopstring/array停止序列
frequency_penaltynumber频率惩罚 -2~2,默认 0
presence_penaltynumber存在惩罚 -2~2,默认 0
toolsarray工具/函数定义数组
tool_choicestring/object工具选择策略

消息格式

messages = [
    {"role": "system", "content": "你是一个有帮助的助手。"},
    {"role": "user", "content": "你好!"},
    {"role": "assistant", "content": "你好!有什么可以帮你的?"},
    {"role": "user", "content": "解释一下量子计算。"}
]

支持的角色:

  • system - 系统提示,设定助手行为
  • user - 用户消息
  • assistant - 助手回复(用于多轮对话)
  • tool - 工具调用结果

完整示例

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "你是一个 Python 专家。"},
        {"role": "user", "content": "写一个快速排序算法。"}
    ],
    temperature=0.7,
    max_tokens=1000
)

# 响应结构
print(response.id)                          # chatcmpl-xxx
print(response.choices[0].message.content)   # 助手回复内容
print(response.usage.prompt_tokens)          # 输入 Token 数
print(response.usage.completion_tokens)      # 输出 Token 数
print(response.usage.total_tokens)           # 总 Token 数

响应格式

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1717000000,
  "model": "gpt-4o",
  "choices": [{
    "index": 0,
    "message": {"role": "assistant", "content": "..."},
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 150,
    "total_tokens": 175
  }
}

多模态输入

GPT-4o 等多模态模型支持图像输入:

messages = [{
    "role": "user",
    "content": [
        {"type": "text", "text": "这张图片是什么?"},
        {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
    ]
}]