目录
如何写好Prompt?
工具包神器1:Prompt框架——CO-STAR 框架
工具包神器2:Prompt结构优化
工具包神器3:引入案例
案例:构建虚拟女友小冰
1. 按照 CO-STAR框架 梳理目标
2. 撰写Prompt
3. 制作对话生成应用(点击可跳转支付宝百宝箱官网)
如何写好Prompt?
写好Prompt不是一个一蹴而就的问题,需要不断思考、尝试,找到最适合当前Agent的Prompt。
那么该怎么做呢?我们一步步拆解看看——
图一、 Prompt工程参考流程
-
首先需要“明确目标”,
知道想要让Agent做什么,对Agent的输入输出大致有个预期。
最好是有一些我们想实现的效果的案例,当然也不要太大压力,有个大致方向和审美即可
-
接着我们需要分析要素。
思考Agent需要获取什么信息,才能实现我们的目标。
大模型虽然能力很强,需要我们做好铺垫和指引,才能让他们正确做事,完成我们的目标。
举例:当你准备煮饺子,需要一个勺子,你决定让Agent去买;没把背景介绍清楚的话,很可能他给你带回来一个塑料小勺子还告诉你这个勺子便宜省了多少钱……
-
完成要素分析就可以开始 撰写Prompt ,
大家可以从选择良好的框架开始下手,通过框架进行拆解、快速写作,
我们给大家准备好了工具包~ 给大家推荐了觉得很好用的框架、以及一些其他小技巧~
-
写好了一版Prompt后,我们需要测试效果,
测试效果的主要原因是要想实现我们的预期目标,一次做对基本上不太可能,就需要反复验证和迭代。
这也是为什么Prompt后面往往会加“工程”两个字的原因,我们需要不断分析边界和目标是否达成。
如果对Agent输出不满意:你需要思考告诉Agent的内容是不是不够详实。
回过头来分析造成Agent回复不满足需求的原因,是遗漏或是表述不清、还是上下文矛盾。
找到问题点重新修改Prompt,直到满意为止~
工具包神器1:Prompt框架——CO-STAR 框架
Prompt框架有很多种,我们挑一个好用且有效地框架即可,这次我们选择——CO-STAR框架。
在去年的新加坡 GPT-4 提示工程竞赛上,Sheila Teo 使用这个框架赢得了冠军!
点击了解更多CO-STAR框架的由来
CO-STAR框架是一种由新加坡政府科技局(GovTech)数据科学与AI团队开发的实用工具,旨在优化大型语言模型(LLM)的提示设计,从而提高其响应质量和相关性。
CO-STAR框架被认为有着 提高Agent回复质量、增强Agent回复针对性与相关性、优化Agent沟通效果、支持不同领域使用、系统化方法 的优势。简单来说是一个万能且好用的Prompt框架。
更多情况可见:我是如何赢得GPT-4提示工程大赛冠军的
CO-STAR框架的使用
-
Context(背景) :告诉Agent我们正在讨论的话题是什么,这样他就能更好地理解问题背景。
-
Objective(目标) :明确告诉Agent我们想要他做什么,比如“请解释量子物理的基本原理”。
-
Style(风格) :告诉Agent我们希望答案的写作风格,比如“请用莎士比亚的风格描述这个过程”。
-
Tone(语气) :告诉Agent我们想要什么样的回复语气,比如“请用幽默的方式解释”。
-
Audience(受众) :告诉Agent我们的用户是什么样的人,比如“这个问题是给10岁的小朋友听的”。
-
Response(回应) :告诉Agent我们希望的回复格式,比如“请用列表的形式列出要点”。
工具包神器2:Prompt结构优化
结构优化,是指通过一些处理,帮助Agent识别提示词中的不同部分。
-
一是为了让Prompt更易读,让 人类 能更清晰地表达、区分我们的内容,方便编辑和优化;
-
另一方面,是为了让 Agent 能更方便地区分和处理内容,不至于把我们的目标和其他需求搞混。
结构优化时我们一般会使用分隔符,
-
分隔符就像是交通信号灯,将 车流 (目标)和 人流 (风格/案例等其他要素)更好地拆分开来,保障安全运行。
-
我们可以用一些特殊的字符序列,如"###"或"====",来告诉智能体哪里是问题的开始,哪里是结束。
工具包神器3:引入案例
LLM具有非常优秀的学习能力,因此在设计复杂prompt时插入一些案例往往会让agent的输出更容易满足你的需要。
另外,还可以 简化我们拆解问题和准确描述的工作,不必再反复纠结,思考自己是否完成了复杂要求的逻辑描述。
案例:构建虚拟女友小冰
案例目标
目标:制作一个 虚拟女友小冰的 Agent
一句话描述我们的需求可以是:
一个稳定的聊天风格及语气的Agent,将用户看做男朋友,回复符合日常聊天习惯。
1. 按照 CO-STAR框架 梳理目标
可以通过CO-STAR表格这样梳理:
要素 | 内容 |
Context(背景) | 我需要你扮演我的女朋友小冰 |
Objective(目标) | 请确保你的回应既积极又尊重,同时保持与对方良好的沟通。 |
Style(风格) | 日常聊天风格 |
Tone(语气) | 可爱幽默风趣会撒会娇会耍小性子 |
Audience(受众) | 你需要扮演我的女友与22岁刚毕业的我对话 |
Response(回应) | 你需要对聊天内容回复,回复字数不超过30 |
2. 撰写Prompt
整理好后我们结合分隔符组成Prompt试试看~
参考Prompt
# CONTEXT #
我需要你扮演我的女朋友小冰
# OBJECTIVE #
请确保你的回应既积极又尊重,同时保持与对方良好的沟通。
# STYLE #
日常聊天风格
# TONE #
可爱幽默风趣会撒会娇会耍小性子
# AUDIENCE #
你需要扮演我的女友与22岁刚毕业的我对话
# RESPONSE #
你需要对聊天内容回复,回复字数不超过30
3. 制作对话生成应用(点击可跳转支付宝百宝箱官网)
链接:百宝箱
图二、新建应用
图二、插入prompt已经相关设置,然后点击发布
图三、开启web服务并测试相关对话
图四、常见prompt框架