Chat Completions 基础用法
本页介绍 Chat Completions 的基础调用方式与常见参数,适合快速搭建多轮对话、问答与内容生成。
如果你把 responses 看成“统一总线”,那 Chat Completions 更像“经典手动挡”。
理解它能帮你读懂大量历史代码,也便于维护已有项目。
1. 基本概念
- messages:多轮对话数组,按时间顺序排列。
- role:消息角色(system/user/assistant)。
- temperature:生成随机性,值越高越有创意。
读者导向:你先关注什么
- 新手:先关注
messages顺序和role职责 - 产品开发:重点关注输出稳定性与成本参数(
max_tokens) - 运维负责人:优先建立日志、重试和异常兜底
2. 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)
3. 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);
4. 多轮对话
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
)
5. 常用参数
| 参数 | 作用 | 说明 |
|---|---|---|
| model | 模型选择 | 如 gpt-5.2/gpt-5-mini |
| temperature | 随机性 | 0 更稳定,1 更有创意 |
| max_tokens | 输出长度 | 控制成本与响应时间 |
| stream | 流式输出 | 适合长文本体验 |
6. 最佳实践
- 先用 system 提示约束风格与边界。
- 通过清晰结构化输入提高稳定性。
- 对长内容建议使用 stream。
一句轻松版:
多轮对话像接力赛,messages 就是接力棒。
你要是把棒子丢了(上下文丢失),模型再强也只能现场脑补。