OpenAI(ChatGPT)
  1. 聊天(Chat)
OpenAI(ChatGPT)
  • 介绍
  • 项目说明
  • 导言
  • 身份验证
  • 发出请求
  • 参数详情
  • 聊天(Chat)
    • 文本生成
    • 创建聊天补全
      POST
    • 获取聊天消息
      GET
    • 更新聊天补全
      POST
    • 删除聊天补全
      DELETE
  • 音频(Audio)
    • 音频和语音
    • 创建语音
      POST
    • 创建转录
      POST
    • 创建翻译
      POST
  • 图像(Images)
    • README
    • 图像对象
    • 创建图像
      POST
    • 创建图片编辑
      POST
    • 创建图像变体
      POST
  • 自动补全(Completions)
    • Completions 对象
    • 创建 Completions
      POST
  • 嵌入(Embeddings)
    • 嵌入对象
    • 创建嵌入
      POST
  • 微调(Fine-tuning)
    • 微调作业对象
    • 微调作业事件对象
    • 创建微调作业
    • 列出微调作业
    • 检索微调作业
    • 取消微调
    • 列出微调事件
  • 文件(Files)
    • README
    • 文件对象
    • 上传文件
    • 列出文件
    • 删除文件
    • 检索文件
    • 检索文件内容
  • 模型(Models)
    • 模型对象
    • 列出模型
    • 检索模型
    • 删除微调模型
  • 审查(Moderations)
    • 调节对象
    • 创建内容审核
  • 助手测试版(AssistantsBeta)
    • 辅助对象
    • 辅助文件对象
    • 创建助手
    • 检索助手
    • 修改助手
    • 删除助手
    • 列出助手
    • 创建辅助文件
    • 检索助手文件
    • 删除辅助文件
    • 列出助手文件
  • 线程(Threads)
    • 线程对象
    • 创建线程
    • 检索线程
    • 修改线程
    • 删除话题
  • 留言(Messages)
    • 消息对象
    • 消息文件对象
    • 创建消息
    • 检索消息
    • 修改留言
    • 列出消息
    • 删除信息
    • 检索消息文件
    • 列出消息文件
  • 运行(Runs)
    • 运行对象
    • 运行步骤对象
    • 创建运行
    • 检索运行
    • 修改运行
    • 列表运行
    • 提交工具输出以运行
    • 取消运行
    • 创建线程并运行
    • 检索运行步骤
    • 列出运行步骤
  1. 聊天(Chat)

文本生成

通过 OpenAI API,您可以使用 大型语言模型 (large language model) 从提示 (prompt) 中生成文本,就像使用 ChatGPT 一样。 模型几乎可以生成任何类型的文本响应 —— 比如代码、数学方程式、结构化的 JSON 数据,或者类似人类的散文。
以下是一个使用 Responses API (响应 API) 的简单示例,我们推荐所有新项目使用该 API。
从简单提示生成文本
模型生成的内容数组位于响应的 output 属性中。 在这个简单的例子中,我们只有一个输出,如下所示:
[
    {
        "id": "msg_67b73f697ba4819183a15cc17d011509",
        "type": "message",
        "role": "assistant",
        "content": [
            {
                "type": "output_text",
                "text": "Under the soft glow of the moon, Luna the unicorn danced through fields of twinkling stardust, leaving trails of dreams for every child asleep.",
                "annotations": []
            }
        ]
    }
]
output 数组通常包含多个项目! 它可以包含工具调用、由 推理模型 (reasoning models) 生成的关于推理 tokens 的数据以及其他项目。 假设模型的文本输出位于 output[0].content[0].text 是不安全的。
我们的一些 官方 SDK 在模型响应中包含一个 output_text 属性,为了方便起见,它将模型的所有文本输出聚合到一个字符串中。 这可能作为访问模型文本输出的快捷方式很有用。
除了纯文本,您还可以让模型以 JSON 格式返回结构化数据 —— 此功能称为 结构化输出 (Structured Outputs)。

提示工程#

提示工程 (Prompt engineering) 是为模型编写有效指令的过程,以便它始终生成满足您要求的内容。
由于从模型生成的内容是非确定性的,因此提示以获得您想要的输出是艺术和科学的结合。 但是,您可以应用技术和最佳实践来始终如一地获得良好的结果。
一些提示工程技术适用于每个模型,例如使用消息角色 (message roles)。 但是,可能需要以不同的方式提示不同的模型才能产生最佳结果。 即使同一系列中的不同模型快照也可能产生不同的结果。 因此,当您构建更复杂的应用程序时,我们强烈建议:
将您的生产应用程序固定到特定的 模型快照 (model snapshots)(例如 gpt-5-2025-08-07),以确保一致的行为
构建 评估 (evals),以衡量提示的行为,以便您可以在迭代或更改和升级模型版本时监控提示性能
现在,让我们检查一些可用于构建提示的工具和技术。

选择模型和 API#

OpenAI 有许多不同的 模型 (models) 和几个 API 可供选择。 推理模型 (Reasoning models),如 o3 和 GPT-5,其行为与聊天模型不同,并且对不同的提示响应更好。 一个重要的注意事项是,当与 Responses API 一起使用时,推理模型表现更好并表现出更高的智能。
如果您正在构建任何文本生成应用程序,我们建议使用 Responses API 而不是旧的 Chat Completions API。 并且如果您使用的是推理模型,那么 迁移到 Responses 尤其有用。

消息角色和指令遵循#

您可以使用 instructions API 参数以及消息角色,以 不同的权限级别 向模型提供指令。
instructions 参数为模型提供了关于它在生成响应时应如何表现的高级指令,包括语气、目标和正确响应的示例。 以这种方式提供的任何指令都将优先于 input 参数中的提示。
使用指令生成文本
上面的例子大致相当于在 input 数组中使用以下输入消息:
使用不同角色的消息生成文本
请注意,instructions 参数仅适用于当前的响应生成请求。 如果您正在使用 previous_response_id 参数 管理对话状态,则先前轮次中使用的 instructions 将不会出现在上下文中。
OpenAI 模型规范 描述了我们的模型如何为具有不同角色的消息赋予不同的优先级。
developeruserassistant
developer 消息是由应用程序开发人员提供的指令,其优先级高于用户消息。user 消息是由最终用户提供的指令,其优先级低于开发人员消息。模型生成的消息具有 assistant 角色。
一个多轮对话可能包含这些类型的多个消息,以及您和模型提供的其他内容类型。 在 此处 了解更多关于 管理对话状态 的信息。
您可以将 developer 和 user 消息想象成编程语言中的函数及其参数。
developer 消息提供系统的规则和业务逻辑,例如函数定义。
user 消息提供输入和配置,应用 developer 消息指令,例如函数的参数。

可重用提示#

在 OpenAI 仪表板中,您可以开发可在 API 请求中使用的可重用 提示 (prompts),而不是在代码中指定提示的内容。 这样,您可以更轻松地构建和评估提示,并在不更改集成代码的情况下部署改进版本的提示。
以下是它的工作原理:
1.
在 仪表板 中创建一个带有占位符(例如 {{customer_name}})的可重用提示。
2.
在带有 prompt 参数的 API 请求中使用提示。 prompt 参数对象有三个可以配置的属性:
id - 提示的唯一标识符,在仪表板中找到
version - 提示的特定版本(默认为仪表板中指定的“当前”版本)
variables - 用于替换提示中变量的值的映射。 替换值可以是字符串,也可以是其他 Response 输入消息类型,例如 input_image 或 input_file。 请参阅完整的 API 参考。
字符串变量
使用提示模板生成文本
带有文件输入的变量
带有文件输入变量的提示模板

下一步#

现在您已经了解了文本输入和输出的基础知识,您可能想查看以下资源之一。
[
在 Playground 中构建提示
使用 Playground 开发和迭代提示。
](/chat/edit)[
使用结构化输出生成 JSON 数据
确保从模型发出的 JSON 数据符合 JSON 模式。
](/docs/guides/structured-outputs)[
完整的 API 参考
在 API 参考中查看文本生成的所有选项。
](/docs/api-reference/responses)

扫码加入 Open AI(ChatGPT)微信交流群

欢迎加入 Open AI(ChatGPT) 交流群!让大家可以分享和讨论有关 Open AI(ChatGPT)API 的开发和使用等相关话题。

扫码加入交流群
修改于 2025-09-16 06:55:35
上一页
参数详情
下一页
创建聊天补全
Built with