整理 OpenAI 官方指南的提示词设计原则

AI・機械学習カテゴリを表すパンダのイラスト 人工智能・机器学习

本文是利用 AI 创建的技术解析与实现示例。虽然发布的代码和步骤是基于一手信息构建的,但笔者并未在实机上进行运行确认。根据环境和版本的不同,运行结果可能会有所差异。

OpenAI 官方的“Prompt engineering”指南解释了如何从大语言模型中获得一致输出的基本思路以及利用 API 的实现方法。本文将对官方指南中展示的提示词设计主要要素、模型选择以及指令给予方式进行整理。


从官方信息中可以确认的内容

利用 OpenAI API,可以像聊天机器人一样从提示词生成文本。生成文本的格式丰富多样,包括代码、数学公式、结构化 JSON 数据以及自然语言文本等。一手信息中介绍了使用 Responses API 和 Chat Completions API 的实现示例。

响应结构与输出获取

来自 API 的响应对象包含模型生成的内容数组。

  • Responses API: 数组存储在响应的 output 属性中。其中不仅包含消息,有时还包含工具调用以及推理模型生成的推理标记(token)相关的数据等。因此,官方说明指出,单纯指定第一个元素来提取文本并不是安全的做法。部分官方 SDK 提供了将所有文本输出汇总为单个字符串的 output_text 属性,可以作为快捷方式使用。

  • Chat Completions API: 数组存储在响应的 choices 属性中,其中包含消息和结束原因(finish_reason)等。此外,还可以根据需要返回 JSON 格式的结构化数据(Structured Outputs)。


模型选项与特性

使用 API 时最重要的选择之一是决定使用哪个模型。一手信息列出了以下模型类型的特征:

  • 推理模型 (Reasoning models): 生成用于分析输入提示词的内部思维链(chain of thought)。虽然在理解复杂任务和多阶段规划方面表现出色,但与常规 GPT 模型相比,处理速度较慢,成本也往往更高。

  • GPT 模型: 速度快、成本效益高且具备高度的智能,但如果给出关于如何完成任务的更明确指令,效果会更好。

  • 大模型与小模型(如 mini 和 nano 等): 提供了速度、成本和智能之间的权衡。大规模模型在理解提示词和解决不同领域的问题方面表现出色,而小规模模型则能以更高速度和更低成本使用。 当拿不定主意时,针对常规文本生成或提示词的迭代作业,gpt-5.6 被定位为一个强有力的默认选项。


提示词工程的基本方针

提示词工程是编写有效指令的过程,旨在使模型能够持续生成满足要求的内容。由于模型生成的内容具有不确定性,因此要获得期望的输出,需要结合技术和科学两方面的方法。

构建应用程序时的重要建议包括以下两点:

  1. 固定模型快照: 为了保持行为的一致性,将生产应用程序固定到特定的模型快照(例如:gpt-4.1-2025-04-14)。

  2. 构建测试与评估套件: 创建用于衡量提示词行为的测试,以便在进行迭代作业或升级模型版本时能够监控性能。


消息的角色与指令的给予方式

作为向模型以不同权限级别授予指令的方法,可以使用 instructions API 参数或消息的 role

  • instructions 参数: 为模型提供关于生成响应时的行为的高级指令,例如语调、目标以及正确响应的示例。通过此参数指定的指令优先于 input 参数内的提示词。

  • 消息角色(developer / user 等): 可以在输入数组中按角色分割内容,并明确区分开发者的指令或来自用户的提问进行传递。一手信息中的解说指出,使用 instructions 参数指定的设置与在 input 数组中明确指定 developeruser 角色的消息结构在概念上是等效的。


使用时的注意事项与最佳实践

  • 为防止产生不可预测的输出,建议在生产环境中固定模型版本。

  • 在解析响应时,不应仅以前提 output[0]choices[0] 为限,而应利用 SDK 提供的汇总属性,或者安全地处理返回的数组结构。

  • 由于不同的模型系列或快照之间的输出结果可能存在差异,因此在进行更改时务必执行评估是非常重要的。


参考信息

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

标题和URL已复制