logo

Chat Completions 基础用法

Chat Completions 现在更适合两个场景:维护老项目,或者做渐进迁移。OpenAI 官方已经明确建议新项目优先使用 Responses API,但 Chat Completions 仍然支持,所以它不会马上失去价值。

OpenAI 标识

1. 什么时候还会用 Chat Completions

  • 你的现有项目已经大量使用 messages
  • 你不想一次性重写所有调用层
  • 你需要边运行边逐步迁移到 Responses

如果你现在是从零开始做新接口,这页可以了解,但不建议把它当默认起点。

2. 基本概念

  • messages:多轮对话数组,按时间顺序排列。
  • role:消息角色(system/user/assistant)。
  • temperature:生成随机性,值越高越有创意。

读者导向:你先关注什么

  • 新手:先关注 messages 顺序和 role 职责
  • 产品开发:重点关注输出稳定性与成本参数(max_tokens
  • 运维负责人:优先建立日志、重试和异常兜底

3. Python 示例

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-5.2",
    messages=[
        {"role": "system", "content": "你是一个简洁专业的技术助理。"},
        {"role": "user", "content": "用 3 句话解释什么是 API。"}
    ],
    temperature=0.3,
    max_tokens=300
)

print(response.choices[0].message.content)

4. Node.js 示例

import OpenAI from 'openai';

const client = new OpenAI();

const response = await client.chat.completions.create({
  model: 'gpt-5.2',
  messages: [
    { role: 'system', content: '你是一个简洁专业的技术助理。' },
    { role: 'user', content: '用 3 句话解释什么是 API。' }
  ],
  temperature: 0.3,
  max_tokens: 300
});

console.log(response.choices[0].message.content);

5. 多轮对话

messages = [
    {"role": "system", "content": "你是一个面试官。"},
    {"role": "user", "content": "请问什么是 REST?"},
    {"role": "assistant", "content": "REST 是一种..."},
    {"role": "user", "content": "它和 RPC 有什么不同?"}
]

response = client.chat.completions.create(
    model="gpt-5.2",
    messages=messages
)

6. 常用参数

参数作用说明
model模型选择用官方当前可用模型 ID
temperature随机性0 更稳定,1 更有创意
max_tokens输出长度控制成本与响应时间
stream流式输出适合长文本体验

7. 最佳实践

  • 先用 system 提示约束风格与边界。
  • 通过清晰结构化输入提高稳定性。
  • 对长内容建议使用 stream

再补一句更现实的建议:如果你已经准备接 tools、多模态输入或 agent 能力,就不要继续在 Chat Completions 上加太多新投资了,直接开始规划迁到 Responses。

一句轻松版:
多轮对话像接力赛,messages 就是接力棒。
你要是把棒子丢了(上下文丢失),模型再强也只能现场脑补。

参考资料

OpenAI API 开发指南
AI Engineer

OpenAI API 开发指南

OpenAI API 是最广泛使用的 AI API 之一,提供 GPT-4、DALL-E、Whisper 等模型的访问。

OpenAI API 开发指南基础用法

Chat Completions 基础用法

Chat Completions 现在更适合两个场景:维护老项目,或者做渐进迁移。OpenAI 官方已经明确建议新项目优先使用 Responses API,但 Chat Completions 仍然支持,所以它不会马上失去价值。

OpenAI 标识
OpenAI 标识

#1. 什么时候还会用 Chat Completions

  • 你的现有项目已经大量使用 messages
  • 你不想一次性重写所有调用层
  • 你需要边运行边逐步迁移到 Responses

如果你现在是从零开始做新接口,这页可以了解,但不建议把它当默认起点。

#2. 基本概念

  • messages:多轮对话数组,按时间顺序排列。
  • role:消息角色(system/user/assistant)。
  • temperature:生成随机性,值越高越有创意。

#读者导向:你先关注什么

  • 新手:先关注 messages 顺序和 role 职责
  • 产品开发:重点关注输出稳定性与成本参数(max_tokens
  • 运维负责人:优先建立日志、重试和异常兜底

#3. Python 示例

python
from openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="gpt-5.2", messages=[ {"role": "system", "content": "你是一个简洁专业的技术助理。"}, {"role": "user", "content": "用 3 句话解释什么是 API。"} ], temperature=0.3, max_tokens=300 ) print(response.choices[0].message.content)

#4. Node.js 示例

ts
import OpenAI from 'openai'; const client = new OpenAI(); const response = await client.chat.completions.create({ model: 'gpt-5.2', messages: [ { role: 'system', content: '你是一个简洁专业的技术助理。' }, { role: 'user', content: '用 3 句话解释什么是 API。' } ], temperature: 0.3, max_tokens: 300 }); console.log(response.choices[0].message.content);

#5. 多轮对话

python
messages = [ {"role": "system", "content": "你是一个面试官。"}, {"role": "user", "content": "请问什么是 REST?"}, {"role": "assistant", "content": "REST 是一种..."}, {"role": "user", "content": "它和 RPC 有什么不同?"} ] response = client.chat.completions.create( model="gpt-5.2", messages=messages )

#6. 常用参数

参数作用说明
model模型选择用官方当前可用模型 ID
temperature随机性0 更稳定,1 更有创意
max_tokens输出长度控制成本与响应时间
stream流式输出适合长文本体验

#7. 最佳实践

  • 先用 system 提示约束风格与边界。
  • 通过清晰结构化输入提高稳定性。
  • 对长内容建议使用 stream

再补一句更现实的建议:如果你已经准备接 tools、多模态输入或 agent 能力,就不要继续在 Chat Completions 上加太多新投资了,直接开始规划迁到 Responses。

一句轻松版:
多轮对话像接力赛,messages 就是接力棒。
你要是把棒子丢了(上下文丢失),模型再强也只能现场脑补。

#参考资料

System Design

系统设计必备:核心概念 + 经典案例

快速掌握取舍与设计套路,备战系统设计面试。

进入 System Design →

相关路线图