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

在 OpenAI API 中从 Completions 迁移到 Chat Completions

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

更新于:9 days ago

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

截至 2025 年 3 月 11 日,我们已经发布了新的智能体平台的构建模块。有关详细信息,请参阅我们的 API 文档:Responses API、包括网页搜索文件搜索计算机使用在内的工具,以及带有追踪功能的智能体 SDK

从提示到消息

为了与我们的模型进行更具互动性和动态性的对话,你可以使用聊天格式的消息,而不是 Completions 所用的旧版提示样式。

其工作方式如下:

  • 你发送的输入不是单个字符串形式的提示,而是一组消息。

  • 每条消息都有一个 rolecontent

  • 常见角色包括 systemuserassistantdevelopertool。工具消息用于工具/函数结果,并且必须对应于助手的工具调用。为实现向后兼容,函数消息可能仍会被接受,并在服务器处理时转换为工具消息。开发者消息可能会根据模型支持情况进行重新映射。

  • content 包含来自该角色的消息文本。

  • 系统指令可以为对话提供高层级指示

  • 消息会按照它们在列表中出现的顺序进行处理,助手也会相应地作出响应。

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

| 过去 | 现在 | | 'prompt' : '给我讲个笑话' | 'messages': <br>[{'role':'user', 'content':'给我讲个笑话'}] |

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

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

系统指令

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

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

将得到类似如下的结果

{...
'message': {'role':'assistant',
'content':'鸡为什么要过马路?为了到对面去;但诚然,对面充满艰险,所以它很快又从来处折返,实乃如此!'}
...}

如果你想探索无需自行管理消息对话历史的选项,请查看 Assistants API

这篇文章对你有帮助吗?