实现高级提示词的工程方法

本文介绍了OpenAI的提示词工程指南,包括写出清晰指令、提供参考文本、拆解复杂任务等原则,以及吴恩达的CRISPE高级提示词方式。通过实例展示了如何使用提示词来引导AI进行清晰思考、使用外部工具和系统测试变更,从而实现更精准、高效的自然语言处理任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenAI 提示词工程指南

 OpenAI在官方的文档里上线了Prompt engineering,也就是提示词工程指南,其中OpenAI有提到写提示词的6条大的原则,它们分别是:

(1)Write clear instructions(写出清晰的指令)

(2)Provide reference text(提供参考文本)

(3)Split complex tasks into simpler subtasks(将复杂的任务拆分为简单的子任务)

(4)Give the model time to "think"(给模型时间“思考”)

(5)Use external tools(使用外部工具)

(6)Test changes systematically(系统地测试变更)

写出清晰的指令

1. 把话说详细:尽量多的提供任何重要的详细信息和上下文。

用一个段落总结会议记录。然后写下演讲者的 Markdown 列表以及他们的每个要点。最后,列出发言人建议的后续步骤或行动项目(如果有)。

2. 让模型充当某个角色:把大模型想象成一个演员,告诉他饰演的角色。

充当一个喜欢讲笑话的喜剧演员,每当我请求帮助写一些东西时,你会回复一份文档,其中每个段落至少包含一个笑话或有趣的评论。

3. 使用分隔符指示输入的不同部分

三引号、XML 标签、节标题等分隔符可以帮助划分要区别对待的文本节。可以帮助大模型更好的理解文本内容。

用50个字符总结由三引号分隔的文本。"""在此插入文字"""。

4. 指定完成任务所需的步骤

将任务拆解为一系列步骤,明确地写出这些步骤,让模型更容易去实现它们。

5. 提供示例:few-shot

请按以下内容的风格来书写文章:"""落霞与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨"""。

6. 指定内容输出长度

可以要求模型生成给定目标长度的输出。目标输出长度可以根据单词、句子、段落、要点等的计数来指定。但是不是精确的答案。

用两个段落、100个字符概括由三引号分隔的文本。"""在此插入文字"""。

提供参考文本

1. 让模型使用参考信息作答

使用提供的由三重引号引起来的文章来回答问题。如果在文章中找不到答案,请回答“找不到答案”。"""<在此插入文档>""","""<在此插入文档>"""。
问题:<在此插入问题>

2. 让模型通过引用参考文本来回答

可以要求模型通过引用所提供文档中的段落来为其答案添加引用。可以提高正确性,增加可验证性。

您将获得一份由三重引号和一个问题分隔的文档。您的任务是仅使用提供的文档回答问题,并引用用于回答问题的文档段落。如果文档不包含回答此问题所需的信息,则请回答:“信息不足”。如果提供了问题的答案,则必须附有引文注释。使用以下格式引用相关段落({“引用”:…})。
"""<在此插入文档>"""
问题:<在此插入问题>

将复杂的任务拆分为简单的子任务

1. 使用意图分类来识别与用户查询最相关的指令
2. 对于对话中的历史记录,总结或过滤之前的对话
3. 分段总结长文档并递归构建完整总结

章节摘要可以连接和总结,生成摘要的摘要。这个过程可以递归地进行,直到总结整个文档。 https://openai.com/research/summarizing-books

给模型时间“思考”

链式思考(CoT),Chain-of-Thought Prompting,think step by step。
1. 让模型在给出结论之前找出自己的解决方案
2. 使用内心独白来隐藏模型的推理过程
3. 询问模型在之前的过程中是否遗漏了什么内容

如果源文档很大,模型通常会过早停止并且无法列出所有相关信息。在这种情况下,通过使用后续的promtp让模型查找之前传递中错过的任何相关信息,通常可以获得更好的性能。例如根据文档来列出这个问题在文档中的相关片段:“北京烤鸭到底好吃在哪”,然后让他用JSON格式输出
{"相关片段":"..."},
在输出停止以后,可以再问一句:
还有更多相关片段吗?注意不要重复摘录。还要确保相关片段包含解释它们所需的所有相关上下文 - 换句话说,不要提取缺少重要上下文的小片段。

使用外部工具

1. 使用基于嵌入的搜索实现高效的知识检索

检索增强生成 (RAG),Retrieval Augmented Generation,常见步骤:加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给大模型生成回答。

2. 使用代码执行来进行更准确的计算或调用外部API

3. 给模型提供特定的功能

通过 API 请求,传递一系列特定的函数描述。告诉模型哪些函数是可用的,以及这些函数的参数应该是什么样的。然后模型模可以生成相应的函数参数,这些参数随后会以 JSON 格式通过 API 返回。拿到JSON数组,跟数据库交互,做数据查询、数据处理等等。
处理完以后再返回一个JSON数组给大模型,让大模型变成人类语言输出给用户。

### 关于提示词工程技术与方法的理解 在人工智能和机器学习领域,Prompt 工程技术已经成为一种重要的研究方向。它涉及如何设计有效的输入来引导模型生成期望的结果。根据已有的研究成果[^1],Prompt 技术可以分为多个维度进行分类和理解。 #### 词汇术语体系 Prompt 技术的研究已经形成了一个较为系统的框架,其中包括 **33个核心词汇术语** 和 **58种纯文本 Prompt 方法**。这些术语涵盖了从基础到高级的各种概念和技术细节,帮助开发者更好地理解和应用 Prompt 设计原则。 #### 多模态扩展 除了传统的文本处理外,Prompt 技术还被广泛应用于多模态场景下,例如图像生成、语音识别等领域。具体而言,已有研究表明存在约 **40种针对不同模态的技术实现方式**。这表明 Prompt 不仅限于单一数据形式,而是能够适应多种复杂的应用环境。 #### 文本到图像的设计准则 对于特定应用场景下的 Prompt 工程,如基于文本生成图片的任务,有专门的设计指导方针可供参考[^2]。这类指南通常会提供详细的参数调整建议以及最佳实践案例分析,从而提高最终输出的质量。 #### 发展趋势展望 未来的发展方向主要集中在以下几个方面: - 提高计算效率以降低算法复杂度; - 推动自动化构建过程中的符号知识提取能力; - 加强神经网络与传统逻辑推理相结合的表现力; - 开拓更多实际可用的新领域作为展示平台[^3]。 以下是 Python 中简单演示如何利用预定义 Prompts 来调用大型语言模型的一个例子: ```python import openai def generate_response(prompt_text, api_key): openai.api_key = api_key response = openai.Completion.create( engine="text-davinci-003", prompt=prompt_text, max_tokens=150 ) return response.choices[0].text.strip() if __name__ == "__main__": user_input = input("请输入您的问题或需求:") result = generate_response(user_input, "your_api_key_here") print(f"AI的回答:{result}") ``` 此脚本通过 OpenAI API 调用了 GPT 系列之一完成了一次交互对话操作[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值