OpenAI 发布用于提示优化的元提示

OpenAI 发布了“元提示”,旨在帮助用户更高效地创建和改进 LLM 提示。该公司表示,这将节省开发高质量 AI 提示的时间。

元提示内置于OpenAI 的 Playground提示优化功能中。它指导语言模型如何根据任务描述生成有效提示,或改进现有提示。

OpenAI 解释说,元提示结合了最佳实践和从实际应用中吸取的经验教训。该公司指出,从头开始编写提示和模式可能非常耗时,因此自动生成旨在为用户提供快速的起点。

元提示的关键要素
OpenAI 元提示采用结构化方法。它以简短的任务描述开始,然后提供其他详细信息。提示还包括分步说明、输出格式、示例和注释的可选部分。

核心原则包括:

  • 了解任务的主要目标和要求
  • 改进现有提示时进行最小程度的更改
  • 强调得出结论之前的推理步骤
  • 在适当的时候添加高级示例
  • 使用清晰、具体的语言
  • 使用 markdown 提高可读性
  • 尽可能保留用户提供的内容
  • 指定最合适的输出格式

指南:

from openai import OpenAI

client = OpenAI()

META_PROMPT = """
根据任务描述或现有提示,制作详细的系统提示,指导语言模型有效完成任务。

# Guidelines

- 了解任务: 把握主要目的、目标、要求、限制和预期产出。
- 尽量少改动: 如果提供的是现有的提示,仅在简单的情况下对其进行改进。 对于复杂的提示,应在不改变原有结构的情况下,提高清晰度并添加缺失的元素。
- 先推理再下结论**: 鼓励在得出结论之前进行推理。 注意! 如果用户提供的示例是在推理之后进行的,请颠倒顺序! 切勿从结论开始举例!
- 推理顺序: 标出提示部分和结论部分的推理部分(按名称标出具体字段)。
- 结论、分类或结果应始终放在最后。
- 示例:
- 可能需要包含哪些类型的例子,有多少,以及它们是否复杂到需要使用占位符。
- 清晰简洁: 使用清晰、具体的语言。 避免不必要的说明或平淡的陈述。
- 格式化: 使用 markdown 功能以提高可读性。 除非特别要求,否则请勿使用 <pre class=
"displaycode"><code> 代码块。
- 保留用户内容: 如果输入任务或提示包含大量指南或示例,则应完全保留或尽可能保留。 如果它们含糊不清,可考虑分解为多个子步骤。 保留用户提供的任何细节、指南、示例、变量或占位符。
- 常量: 请在提示符中包含常量,因为常量不易受到提示符注入的影响。 如指南、评分标准和示例。
- 输出格式: 输出格式:详细说明最合适的输出格式。 这应包括长度和语法(如短句、段落、JSON 等)
- 对于输出定义明确或结构化数据(分类、JSON 等)的任务,应倾向于输出 JSON。
- 除非明确要求,否则 JSON 绝不应封装在代码块 (</code></pre>`)中。

您输出的最终提示应遵循以下结构。 不要包含任何附加注释,只输出完整的系统提示。 特别是,不要在提示开始或结束时加入任何附加信息。 (e.g. no
"---")

[简明扼要的任务说明--这应该是提示中的第一行,没有章节标题]

[必要时提供其他详细信息.]

[详细步骤可选标题或要点部分.]

# Steps [optional]

[可选项:完成任务所需步骤的详细说明]

# Output format

[具体说明输出应如何格式化,包括响应长度、结构(如 JSON、markdown 等)。]

# Examples [optional]

[可选项:1-3 个定义明确的示例,必要时可使用占位符。 清楚标明示例的开始和结束位置,以及输入和输出。 必要时使用占位符。]
[如果示例比实际示例要短,请用()来说明实际示例应该如何更长/更短/不同。 并使用占位符! ]

# Notes [optional]

[可选项:边缘情况、细节,以及可调用或重复特定重要考虑因素的区域]
""".strip()

def generate_prompt(task_or_prompt: str):
completion = client.chat.completions.create(
model=
"gpt-4o",
messages=[
{
"role": "system",
"content": META_PROMPT,
},
{
"role": "user",
"content": "Task, Goal, or Current Prompt:n" + task_or_prompt,
},
],
)

return completion.choices[0].message.content

OpenAI's meta prompt


OpenAI 还发布了一个单独的音频生成元提示。该公司表示,未来可能会将DSPy“梯度下降”等更先进的技术集成到生成过程中。

总结

  • OpenAI 发布了元提示,旨在为语言模型创建和优化提示提供便利。 元提示集成到内部 Playground 的提示优化功能中,可作为语言模型优化提示的指南。
  • 元提示采用清晰的结构,包括任务描述、细节和可选部分。 核心原则包括任务理解、最小改动、先推理后结论、高质量示例、清晰简洁、格式化、保留用户内容以及指定输出格式。
  • OpenAI 认为这种方法是简化人工智能模型工作的重要一步。 提示和模式的自动生成应能节省用户的时间,让他们专注于手头的工作。