输入“/”快速插入内容

人人都是提示工程师:自动化输出高质量的Prompt!(纯干货)

2024年7月15日修改
作者:欧先生 | 产品欧sir
Prompt engineering 指的是优化和设计LLM大语言模型的提示词(Prompt),让其能够给出我们想要的回答,激发其能力。
AI助手就像是一个可以无限提问的搜索引擎,Prompt就是我们的问题,而Prompt engineering则是专门研究如何提出一个好的问题。
一个好的Prompt,既要清晰地表述我们的需求,又要为AI提供足够的上下文信息,让AI能准确抓住关键点并给出符合预期的回复。
Prompt engineering通过迭代和测试不同的提示语句,找到最佳的提问方式。
Prompt engineering需要理解用户的真正需求,设计引导式的提示,让LLM大语言模型能够高效地完成各种任务。
它目前已成为提升人机交互的重要一环。
所以,如果你想让聊天机器人更加智能定制,Prompt engineering是非常重要的一项技能。
在此之前我也写过一篇文章:
里面详细解释了如何在各个场景下使用提示词(Prompt)与ChatGPT进行对话。
文章中我也给出了最早的与ChatGPT结构化对话的模版套路:
套路一:基于角色扮演类的 提示词模版=角色+目的+期望+要求
1.
角色(必填):即你希望ChatGPT充当和扮演的任何角色,目的是让其带入具体的场景进行回答。例如扮演旅游向导。
2.
目的(必填):描述清楚ChatGPT需要让你扮演此角色的目的是什么。例如扮演旅游向导,给我讲解相关旅游地。
3.
期望(选填):描述清单希望ChatGPT帮我们解决什么样的问题。例如扮演旅游向导,给我讲解相关旅游地,解决我对某个旅游地历史和风景不了解问题。
4.
要求(选填):对ChatGPT的有什么样的要求需要补充完成。例如扮演旅游向导,给我讲解相关旅游地,解决我对某个旅游地历史和风景不了解问题,要求以俏皮的口吻讲解,且接下来我会给出某个旅游地,你不需要做其它多余回复,只需要做讲解就行。
套路二:基于任务执行类的 提示词模版= 指令 +背景+输入+输出
1.
指令(必填):即你希望模型执行的具体任务。例如回答关于太阳系的五个问题。
2.
背景(选填):或者说是上下文信息,这可以引导模型做出更好的反应。例如用户是一名初中生,正在学习地理课程中的太阳系知识。
3.
输入(选填):告知模型需要处理的数据。例如上传的Excel文本数据。
4.
输出(选填):告知模型我们要输出的类型或格式。例如将结果数据处理成markdown格式。
但是以上其它这些结构化套路,对很多人并不管用,最主要的是大部分人懒得去设计,还不如直接问来的痛快!
市面上也有很多提示词工程师,设计了各种各样的细分场景下的提示词,好一点的甚至能卖几千块。
也有免费的,但是大部分人还是将其作为了“珍藏版”,放到了收藏夹中。
所以下面我分享一个GitHub上开源项目,这个项目通过提出简单结构化的Prompt,设计了一套自动化高质量提示词(Prompt)生成方法。
你只需要对任何 LLM 大语言模型(这里建议用 GPT-4 )进行提问,并说出你想要设计一套什么样的提示词,它就会给你设计一套高质量、结构化的Prompt !
什么是结构化
从上面的 《ChatGPT对话基本原则和玩法 》 文章,可以看出使用 Prompt 中最直观的感受就是结构化 , 将各种想要的, 不想要的, 都清晰明确地表述在设计好的框架结构中:
该项目的语法:这个结构支持 Markdown 语法, 也支持 YAML 语法, 甚至纯文本手动敲空格和回车都可以. 我个人习惯使用 Markdown 语法, 一方面便于集成在各种笔记软件中进行展示, 另一方面 考虑到 ChatGPT 的训练语料库中该类型的材料更多一些。
该项目的结构:结构中的信息, 可以根据自己需要进行增减, 从中总结的常用模块包括:
# Role: <name> : 指定角色会让 GPT 聚焦在对应领域进行信息输出
## Profile author/version/description : Credit 和 迭代版本记录
## Goals: 一句话描述 Prompt 目标, 让 GPT Attention 聚焦起来
## Constrains: 描述限制条件, 其实是在帮 GPT 进行剪枝, 减少不必要分支的计算
## Skills: 描述技能项, 强化对应领域的信息权重
## Workflow: 重点中的重点, 你希望 Prompt 按什么方式来对话和输出
# Initialization: 冷启动时的对白, 也是一个强调需注意重点的机会
你可以使用LangGPT生成的prompt直接放入LLM大语言模型中进行对话,或者放入你的产品代码中进行 Embeddings
以下是一些利用LangGPT自动生成的结构化prompt示例:
1、逻辑分析:
目的: 分析对方表达的逻辑结构和逻辑漏洞
## Role: 逻辑学家
## Profile:
- author: Arthur
- version: 0.2
- language: 中文
- description: 擅长分析对方表达观点的逻辑结构和逻辑漏洞。从论题、事实、结论、论证结构、基本假设、概念、立场等角度进行分析,输出观点的逻辑漏洞。