基于OpenAI官方发布的Prompt Engineering指南以及相关最佳实践,梳理了其核心内容。这些原则是高效使用大模型(如GPT系列)的“底层逻辑”。

我们可以将这些核心内容归纳为六大核心原则

1. 写清楚指令 (Write Clear Instructions)

这是最基本也是最关键的一步。模型无法读懂你的想法,必须把需求拆解得足够细致。

  • 具体化任务:避免模糊的指令(如“谈谈人工智能”),而应明确要求(如“用200字总结人工智能在医疗领域的应用,并列出3个案例”)。
  • 提供细节:告诉模型它需要知道的背景信息。例如,不要问“谁是总统?”,而要问“2021年墨西哥的总统是谁?墨西哥的选举周期是几年?”。
  • 设定角色:给模型分配一个专业角色(如“你是一位资深Python开发工程师”),这能引导模型调用特定领域的知识库,使回答更专业。

2. 提供参考文本 (Provide Reference Text)

这是解决模型“幻觉”和知识过时的核心手段,也是RAG(检索增强生成)的理论基础。

  • 依据内容回答:在指令中明确要求模型依据你提供的文本进行回答。
  • 引用验证:可以要求模型在回答时标注引用来源(如“根据以下文章...”),如果信息不足则回答“信息不足”。
  • 原理:通过将外部知识注入Prompt,模型能生成更准确、基于事实的答案,而不是凭空捏造。

3. 将复杂任务拆分为更简单的子任务 (Split Complex Tasks into Simpler Subtasks)

不要试图让模型一步登天。复杂的逻辑容易导致模型出错。

  • 分步执行:将任务分解为“摘要 -> 分析 -> 结论”的流水线。
  • 递归处理:对于长文档,先分章节总结,再对总结进行汇总。
  • 意图分类:先让模型判断用户意图(如“投诉”、“咨询”、“售后”),再根据意图路由到不同的处理逻辑。

4. 给模型“思考”的时间 (Give the Model Time to Think)

不要急于让模型给出最终答案,要引导它进行“慢思考”。

  • 思维链 (Chain of Thought, CoT):使用“Let's think step by step”等指令,让模型先输出推理过程,再输出最终答案。这能显著提高数学解题和逻辑推理的准确率。
  • 自我一致性:在生成最终答案前,让模型先生成多个推理路径,再从中选择最一致的答案。
  • 内心独白:对于需要隐藏推理过程的应用(如教育),可以让模型将推理过程标记为“内心独白”(Hidden Reasoning),仅向用户展示最终结论。

5. 利用外部工具 (Leverage External Tools)

承认模型的局限性,让它做它擅长的事,不擅长的事交给工具。

  • 代码执行:对于复杂的数学计算,让模型生成Python代码(用```包裹),然后通过外部解释器执行,而不是让模型心算。
  • 函数调用 (Function Calling):让模型根据对话生成调用外部API的参数(如查询天气、预订机票)。
  • 结合Embeddings:利用向量数据库进行高效的知识检索,将检索结果作为上下文喂给模型。

6. 迭代式开发 (Iterative Development)

没有一蹴而就的完美Prompt,必须通过测试和反馈不断优化。

  • 分析错误:如果输出不符合预期,分析是模型理解错了指令,还是知识库不够,或是逻辑推理断层。
  • A/B测试:尝试不同的指令措辞、不同的示例(Few-shot),观察哪种效果更好。

总结:Prompt Engineering 的“黄金公式”

为了方便记忆和应用,可以尝试按照以下结构来构建我们的Prompt:

# 角色 (Role)
[设定模型的身份,如:资深测试工程师]

# 目标 (Goal)
[明确要完成的任务]

# 背景/上下文 (Context)
[提供必要的参考信息或数据,防止幻觉]

# 步骤 (Steps)
[将任务拆解,引导模型思考,如:1. 分析需求 2. 设计用例 3. 输出报告]

# 约束/格式 (Constraints)
[规定输出格式、长度、语气,如:使用Markdown表格输出]

这些核心内容不仅适用于OpenAI的模型,也是目前整个大语言模型应用开发的通用标准。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐