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 认为这种方法是简化人工智能模型工作的重要一步。 提示和模式的自动生成应能节省用户的时间,让他们专注于手头的工作。