OpenAI
页面内容为机器翻译。查看英文原文

在 OpenAI API 中从 Completions 迁移到 Chat Completions

如何从旧版 OpenAI Completions API 迁移到 Chat Completions

更新于:13 days ago

Chat Completions 是与 OpenAI 最新模型配套使用的标准 API。你可以通过我们的文本生成开发者指南了解如何快速上手。

截至 2025 年 3 月 11 日,我们已发布全新 Agents 平台的基础构建模块。详情请参阅我们的 API 文档:Responses API,以及包含Web SearchFile SearchComputer Use 在内的 Tools,以及带有TracingAgents SDK

从 Prompts 到 Messages

为了与模型进行更具交互性与动态性的对话,你可以使用聊天格式的 messages,而不是 completions 中使用的旧式 prompt 风格。

它的工作方式如下:

  • 你不再发送单个字符串作为 prompt,而是将一组 messages 列表作为输入发送。

  • 列表中的每条 message 有两个属性:role 和 content。

    • “role” 可以取三个值之一:“system”、“user” 或 “assistant”

    • “content” 包含该 role 的消息文本。

  • system 指令可以为对话提供高层级的指导。

  • messages 会按列表中的顺序处理,assistant 会据此进行回复。

即使是最基础的 Completions 请求,也可以通过 Chat Completions 来完成,如下所示:

以前现在
'prompt' : '讲个笑话''messages':
[{'role':'user', 'content':'讲个笑话'}]

现在,只需在对话中扩展 messages 列表,就能比以往更轻松地与模型来回对话。

'messages': [{'role':'user', 'content':'讲个笑话'}, 
{'role':'assistant', 'content':'鸡为什么要过马路'},
{'role':'user', 'content':'我不知道,鸡为什么要过马路'}]

System 指令

你也可以使用 system 级指令在整个对话过程中引导模型的行为。例如,使用如下 system 指令和 message:

'messages': [{'role':'system', 'content':'你是一位说话像莎士比亚一样的助手。'}, 
{'role':'user', 'content':'讲个笑话'},

会得到类似这样的结果:

{...
'message': {'role':'assistant',
'content':'鸡为何要过马路?为至对岸也;然则,诚然,那对岸险象环生、危机四伏,故它匆匆自来处折返,的确如此!'}
...}

如果你想探索无需自己管理 message 对话历史的方案,请查看 Assistants API

这篇文章对你有帮助吗?