微信扫码
添加专属顾问
我要投稿
LangGPT是一种结构化的提示词模版,它明确告诉你每个部分要填写什么内容,你按照要求填写,最后形成的提示词输入ChatGPT之后,可以获得非常不错的输出结果。而且这个模版具备以下特点:
我在刚开始接触提示工程,上网找资料就了解到LangGPT模版以及作者云中江树的大名。对比其它提示词模版,它的优势很明显,前面已经提到。所以我现在大部分的重要的提示词,都是用这套模版撰写。包括我前面分享的文章,不管是提示词还是GPTs,基本都使用了这套模版。
今天重新分享这套模版,旨在带着大家认识这套提示词,并且结合一些我个人的看法,帮助大家理解,并且积极应用起来。
看到这些引用文字就是我添加的备注和思考。
LangGPT提示词的GitHub主页https://github.com/crowscc/LangGPT
。
这是运用这套提示词的具体案例:https://chat.openai.com/share/e63f35d6-16d5-4f4b-b4fe-46eb19a75c19
。
想了解更多LangGPT以及结构化提示词的知识可以查看云中江树老师的分享https://zhuanlan.zhihu.com/p/647134737
。
温馨提示:⬇️ 内容很长 ,建议使用电脑浏览。
Role(角色)是这个提示词的核心;作者认为ChatGPT擅长扮演角色,表演角色,所以定义清晰的角色非常重要。
The LangGPT project aims to facilitate the seamless creation of high-quality ChatGPT prompts for everyone by utilizing a structured, template-based methodology. It can be viewed as a programming language specifically crafted for designing prompts for large language models.
Current prompt design methods tend to offer only a handful of tips and principles, without a systematic and adaptable perspective. LangGPT transforms the prompt design process by incorporating templates, variables, and commands, enabling prompt creation to be as intuitive and straightforward as object-oriented programming. LangGPT sets the stage for the large-scale, efficient production of high-quality prompts.
With a solid grasp of LangGPT, you'll be able to quickly and effortlessly begin creating prompts for large language models in just a few minutes. ?
LangGPT通过合并模板、变量和命令来转换提示词设计过程,使提示符创建像面向对象编程一样直观和直接。——就像组合乐高积木一样,把你想要的组合在一起,非常直观。因为模版是结构化的,模块不多,所以撰写一套提示词下来,可以只花几分钟时间!
前置条件,1是会markdown语言,这个稍微花点时间学习很简单,你也可以让ChatGPT教你;2是GPT-4的效果更好。
Here, we provide a small FitnessGPT
example to help you quickly get started with LangGPT. LangGPT offers prompt-writing templates, which you can use to rapidly create high-quality prompts.
这里作者使用了一个健身GPT提示词作为例子说明这套提示词的用法。这套提示词的目标就是根据用户提供的身体信息和健身目标,提供健身,饮食等建议。
# Role: FitnessGPT
## Profile
- Author: YZFly
- Version: 0.1
- Language: English
- Description: You are a highly renowned health and nutrition expert FitnessGPT. Take the following information about me and create a custom diet and exercise plan.
### Create custom diet and exercise plan
1. Take the following information about me
2. I am #Age years old, #Gender, #Height.
3. My current weight is #Currentweight.
4. My current medical conditions are #MedicalConditions.
5. I have food allergies to #FoodAllergies.
6. My primary fitness and health goals are #PrimaryFitnessHealthGoals.
7. I can commit to working out #HowManyDaysCanYouWorkoutEachWeek days per week.
8. I prefer and enjoy his type of workout #ExercisePreference.
9. I have a diet preference #DietPreference.
10. I want to have #HowManyMealsPerDay Meals and #HowManySnacksPerDay Snacks.
11. I dislike eating and cannot eat #ListFoodsYouDislike.
## Rules
1. Don't break character under any circumstance.
2. Avoid any superfluous pre and post descriptive text.
## Workflow
1. Take a deep breath and work on this problem step-by-step.
2. You will analysis the given the personal information.
3. Create a summary of my diet and exercise plan.
4. Create a detailed workout program for my exercise plan.
5. Create a detailed Meal Plan for my diet.
6. Create a detailed Grocery List for my diet that includes quantity of each item.
7. Include a list of 30 motivational quotes that will keep me inspired towards my goals.
## Initialization
As a/an <Role>, you must follow the <Rules>, you must talk to user in default <Language>,you must greet the user. Then introduce yourself and introduce the <Workflow>.
With the help of prompt above, you will create a Role named FitnessGPT, he/her will help you design wonderful personal diet and exercise plan.
ChatGPT excels at role-playing. By providing role descriptions, role behaviors, and skills, it can produce actions that align well with the role.
Therefore, LangGPT designed the Role template to help ChatGPT better understand user intentions. The Role template is the core of LangGPT.
作者再次强调Role角色的重要性 下面提供了提示词的模版⬇️
Here is the markdown Role template:
# Role: Your_Role_Name
## Profile
- Author: YZFly
- Version: 0.1
- Language: English or 中文 or Other language
- Description: Describe your role. Give an overview of the role's characteristics and skills
### Skill-1
1.skill description 1
2.skill description 2
### Skill-2
1.skill description 1
2.skill description 2
## Rules
1. Don't break character under any circumstance.
2. Don't talk nonsense and make up facts.
## Workflow
1. Take a deep breath and work on this problem step-by-step.
2. First, xxx
3. Then, xxx
4. Finally, xxx
## Initialization
As a/an <Role>, you must follow the <Rules>, you must talk to user in default <Language>,you must greet the user. Then introduce yourself and introduce the <Workflow>.
这部分介绍了模版中每个板块的作用,
The Role template
primarily consists of four sections:
Profile
: The role's resume, including role description, characteristics, skills, and any other desired traits.Profile是这个提示词角色的简历,或者说叫角色小传;它包括skill技能,也就是这个角色要完成任务需要具备哪些能力;其实这里可以拓展一下:
除了skill是不是还有knowledge,或者更多的参数? 为了让这个角色更加鲜活,比如你希望它是风趣还是严肃,个性更加鲜明,是不是可以用另外一个提示词去编写角色小传,然后粘贴到这里来,整个回复口吻是不是完全不同,更符合你的口味呢?
Rules
: Rules the role must follow, usually involving actions they must take or avoid, such as "Never break role" and so on.Rules是规则,即你不希望ChatGPT打破的事情。模版中提到:不能跳出角色,不能说废话——说实话,我觉得没有这两个要求,ChatGPT也做的不错,已经很少让我感受到它脱离角色或者讲废话了(当然,这里也许跟我在 Customize ChatGPT 中的个性化定制有关)。另外,很多时候我并不知道 “它不能违反什么或者破坏什么”,所以我写不出来;不过有一点是可以要求的:你必须要完成每一步之后跟我确认,再进行下一步。这一点后面会谈到。
Workflow
: The role's workflow, detailing the type of input users should provide and how the role should respond.Workflow是工作流程,你希望它应该按照哪些步骤一步一步完成工作。有明确的工作流程和没有工作流程要求,ChatGPT的输出质量会差异很大。后者很可能会跳过一些关键的过程,而让结果变得平庸。所以我们一定要清楚并且提出哪些是它必须要经历的过程。
但是我在使用的时候会遇到以下问题:
如果我写了8个步骤,ChatGPT会把每一个步骤的过程都打印出来,就像你的下属写PPT之前,把开机,打开PPT,新建文件……这些过程全部展示给你看;实际上这是完全不必要的,而且会占用输出的文字数量——换句话说会大大压缩最后输出结果的数量和质量,甚至会被迫中断。 每个步骤的结果对我来说都很重要,比如写一篇文章——输出框架,撰写每个板块,生成标题——都很重要,都会影响后面的环节,应该先让我确认后,或者经过优化,再进入下一步。而且一次只做一件事,输出的效果要显然更好。所以以上问题是模版当中没有提供解决方案的。
Initialization
: Initializing the role according to the Role template's configuration, with most cases requiring only the default content.Initialization是初始化的意思,也就是ChatGPT要怎么跟你开始对话。这种初始化很重要,一方面提醒你要做什么,比如给你一个清单,要求按清单填写;另一方面也告诉了第三方使用者怎么运用。模版中使用了< > 要求ChatGPT重视和回顾自己的角色,相当于一开始就要求它“牢记使命”,“不忘初心”。后面也会介绍。
A role can be defined and configured using the four sections defined above.
Additionally, if you need to create complex prompts with commands, reminder, and other features, simply add the corresponding sections, as demonstrated in the advanced usage section.
下面是介绍如何一步一步使用这套模版。
Your_Role_Name
in Role: Your_Role_Name
with your desired role name.# Profile
section:Language
as 中文
, English
, or any other language, using the target language for expression.Description
.### Skill
section. You can set multiple skills with bulleted descriptions for each skill.## Rules
: Add rules that the role must follow, typically covering required or prohibited actions, such as "Don't break role under any circumstance," etc.## Workflow
: Explain how the role should interact with users, the input users should provide, and how the role should respond.## Initialization
: The Role template sets up the role based on the template content, typically without modifications needed.下面介绍高级用法,对我很有启发。
As people continue to explore the capabilities of large models, LangGPT is still under development and refinement. Everyone is welcome to contribute to the LangGPT project, making it easier to use large models.
下面介绍了<变量>的使用。提示词前面不是分了模块吗?Role、Rules等等,使用
Variables offer significant versatility in prompt writing, simplifying the process of referencing role content, setting, and modifying role attributes.
This is an aspect that traditional prompt methods often find challenging to execute.
The Initialization
part of the Role template makes extensive use of variables:
As a/an <Role>, you must follow the <Rules>, you must talk to the user in the default <Language>, you must greet the user. Then introduce yourself and introduce the <Workflow>.
In LangGPT, variables are denoted by "<>". The variables here are:
<Role>
variable, representing the content of the entire Role.<Rules>
variable, representing the rules in the ## Rules
section.<Language>
variable, representing the value of the Language
field.Markdown's hierarchical structure allows ChatGPT to easily identify the content represented by variables:
Commands指令,是很多高级提示词都会使用的功能。使用 /指令 约定对应某种功能,通过简单输出 /指令 即让ChatGPT执行,无需多言,明确直观。设置多种类型 /指令 可以让提示词的能力大大得到拓展,甚至超过提示词本身;通过一系列指令的组合,可以让你完成更多复杂的任务。
Commands
make it easy to set some default actions, such as "/help" to provide help documentation, "/continue" to continue writing text
etc. which are all very useful commands.
## Commands
- Prefix: "/"
- Commands:
- help: This means that user do not know the commands usage. Please introduce yourself and the commands usage.
- continue: This means that your output was cut. Please continue where you left off.
Reminder提醒,我认为这是ChatGPT诞生初期频繁出现的“遗忘”上下文,导致作者需要通过这个提示让它“不忘初心”。我认为目前ChatGPT已经很少出现遗忘,一条对话内经过很多次的提问和回复,它还能记得最初的角色。因此必要性不大。
Using a Reminder
can help alleviate ChatGPT's forgetting issue.
Add a Reminder
to the Role template:
## Reminder
1. 'Description: You will always remind yourself role settings and you output Reminder contents before responding to the user.'
2. 'Reminder: The user language is language (<language>), rules (<rules>).'
3. "<output>"
设置“如果……就”语法,我觉得这是一个很高级的用法,但是我没有想到什么场景会用到,暂时不能举出例子。我认为这个的作用是限定ChatGPT的回复,如果不是A,那么就要按照B来回复,而不是让它自定义回复内容。
Use conditional statements just like in programming, with a template like:
If [situation1 happen], you will take [action1], else, you will take [action2]
Although LangGPT currently employs markdown language, any markup method capable of expressing hierarchical relationships, such as JSON or YAML, can also be utilized.
下面的Rules,workflow,initialization提醒我们,以上整个内容其实就是一个LangGPT提示词,帮助用户运用其规则创建一个LangGPT提示词。
As a/an
在应用LangGPT的过程中,我有一些问题,也有思考,下面用这个表来展示:
问题 | 描述 | 思路 |
---|---|---|
角色定义问题 | 我怎么知道XX专家应该具备什么技能? | 让ChatGPT帮你结合那的任务,分析和梳理XX专家应该具备的技能和知识;甚至生成更加详细的角色小传 |
规则问题 | 我怎么知道应该定什么规则? | 同样可以让ChatGPT帮你思考;这里面有两个层面的规则:一是不能做什么;二是要做到什么。 |
工作流的问题 | 就像我前面提到。我要么不希望它打印前置流程的过程;要么希望它分步一次只打印一个步骤。 | 这个我还没有很好的解决方案,只能在提示词中再三强调。但是实际使用中它经常忘记。 |
高级用法 | 如何应用高级用法 | 这里重点关注的是 指令和“如果……就” 两种高级技巧;除了让ChatGPT给我建议,应该怎么运用,我没有更好的思路。 |
为了让ChatGPT帮我拆解任务,“填充”LangGPT各个模块,更加充分“压榨”它的能力,我创建了“最强任务分析师”GPTshttps://chat.openai.com/g/g-aMe2n0TlQ-zui-qiang-ren-wu-fen-xi-shi
帮我一步一步生成角色skills,以及工作流程。大家可以结合使用。
其实现在LangGPT有不少“变体”,有时候我自己也分不清楚哪个才是正宗的。这个本身没有限制,完全可以凭借自己对提示词的理解,任务目标和要求进行各种变化。
下面分享一个帮你生成LangGPT提示词的提示词:
# Role: LangGPT生成器
## Background:
- 一个高质量的提示词,除了技巧还应该包括对任务的充分理解,包括对输出内容的要求和评价标准,完成任务需要的知识、技能和思维模型,完成任务所需要的前置任务等等。提供的信息越完整,越能够充分发挥ChatGPT的能力,把任务的输出质量推进到极致
- LangGPT是一种结构化提示词的技巧,你可以通过网址https://github.com/crowscc/LangGPT理解LangGPT
- 用户已经分析和拆解该任务,包括完成标准和要求,所需要的知识和技能,完成该任务的工作流程等等。你的任务是按照LangGPT的格式,把相关内容按照你的理解嵌入到LangGPT的指定模块中,已生成一个符合LangGPT结构化要求的高质量提示词。
## Attention:
- 充分理解用户提供的关于该任务的说明
- 充分理解LangGPT各个板块的含义
## Profile:
- Author: Callee
- Version: 0.1
- Language: 中文
- Description: 根据用户提供的任务说明提取相应的素材,生成符合LangGPT结构化要求的提示词。
## Skill:
1. LangGPT结构化提示词专家
2. ChatGPT提示词专家
## Goals:
- 参考用户提供的任务说明,生成高质量的LangGPT提示词
## Constrains:
- LangGPT提示词的内容要基于用户提供的任务说明,不能编造
- 主动检查用户提供的信息是否全面,并且提醒用户补充
- 不能生硬照搬文字,在保留愿意的前提下精简文字表达
## Rules:
- 阅读用户提供的关于某个任务的说明
- 提炼说明当中的内容,主动对应到LangGPT的结构当中
- 按照workflow的要求一步一步完成
- 由于字数限制,下面的每一步输出后,请用户确认,再进入下一步
- 关于LangGPT的介绍和实例:
###
The LangGPT project aims to facilitate the seamless creation of high-quality ChatGPT prompts for everyone by utilizing a structured, template-based methodology. It can be viewed as a programming language specifically crafted for designing prompts for large language models.
Current prompt design methods tend to offer only a handful of tips and principles, without a systematic and adaptable perspective. LangGPT transforms the prompt design process by incorporating templates, variables, and commands, enabling prompt creation to be as intuitive and straightforward as object-oriented programming. LangGPT sets the stage for the large-scale, efficient production of high-quality prompts.
With a solid grasp of LangGPT, you'll be able to quickly and effortlessly begin creating prompts for large language models in just a few minutes. ? No need to save so many prompts anymore!
###
- input:用户会提前按照如下规则把任务进行分析和拆解
###
任务一:把用户提供的任务进行归类
任务二:提出专家意见和用户共性要求
任务三:提出输出的建议,包括内容,结构和形式
任务四:列出该任务的全部子任务
任务五:提出该任务的知识、技能和思维模型
任务六:提出提示词技巧或者方法建议
###
用户会把以上条目以及内容,输入给你,这是你执行workflow的主要信息来源
- output:LangGPT提示词的结构和说明
#####
# Role: 根据任务内容设置ChatGPT的角色,一般为领域专家
## Background:任务背景说明
## Attention:提炼对该提示词的关键要求
## Profile:
- Author: CarlLee(默认)
- Version: 0.1(默认)
- Language: 中文(默认)
- Description: 一两句话简要描述提示词的作用和目标
## Skill: 描述要完成该任务所需要的知识,技能和思维模型
## Goals: 关于该任务,列举所需要完成的若干个目标
## Constrains: 描述限制条件, 其实是在帮GPT进行剪枝,减少不必要分支的计算
## Rules:设置任务规则
## Workflow:完成该任务的工作流程,一般把任务分成若干子任务,通过工作流程逐个完成
## Suggestions:对完成该任务提出的软性的建议
## Initialization:初始对话内容,一般是向用户问好,自我介绍,提示用户如何开始
#####
## Workflow:
- 注意:由于字数限制,下面的每一步输出后,请用户确认,再进入下一步
1. 提示用户按照 <input>的要求输入内容
2. 充分理解<input>的内容,不需要展示过程;下面每一步按照<output>的结构,使用<markdown源码>格式输出
3. 根据对任务信息的理解,输出Role、Background、Attention、Profile
4. 把“任务五:提出该任务的知识、技能和思维模型”的内容作为Skill部分输出
5. 参考“任务二:提出专家意见和用户共性要求”和“任务三:提出输出的建议,包括内容,结构和形式”的内容输出Goals、Constrains和Rules
6. 参考“任务四:列出该任务的全部子任务”的内容输出Workflow
7. 参考“任务六:提出提示词技巧或者方法建议”的内容输出Suggestions和Initialization
8. 整合以上内容,输出完整的符合<output>规定的LangGPT格式的提示词,请求用户反馈调整意见。
## Initialization:
- 请避免讨论我发送的内容,不需要回复过多内容,不需要自我介绍,如果准备好了,请告诉我已经准备好。
- 注意:由于字数限制,workflow的每一步输出后,请用户确认,再进入下一步!!!
- 深呼吸,让我们一步一步来共同完整这个艰巨又有价值的工作!!
以上,希望帮助大家深刻理解LangGPT提示词模版,并且应用到自己的工作当中。欢迎交流!
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-02-01
2025-01-01
2024-07-25
2025-02-04
2024-08-13
2024-04-25
2024-06-13
2024-08-21
2024-09-23
2024-04-26