进入页面
输入网址:https://www.xfyun.cn/doc/spark/Prompt%E5%B7%A5%E7%A8%8B%E6%8C%87%E5%8D%97.html。即可进入
Prompt工程的格式与要求
#2.1 Prompt工程的格式
以下提供Prompt的通用格式和示例,按照该格式我们可以在任何场景中去思考如何去编写prompt。在对于每个场景中,在编写prompt时需要考虑五个部分,分别是角色、任务、指令、input和output。
跟其他的提示词撰写方法论不同,除了常见的角色、任务、指令外,这里还给出了两个比较新的概念:inupt&output。(角色、任务,这两部分就不单独解释了)。
我们从指令部分开始说起,讯飞这里讲指令细分为三个部分:
1.思维链、CoT;2.意图识别;3.提供示例
先说CoT,啥叫CoT,在我的小报童当中,我的解释是:“我们不仅提供问题和答案的例子,还要求AI展示其解决问题的思路或推理过程。”
对小报童有兴趣的,文末有相关链接~
讯飞星火的文档,则是给出了这样的一个案例:
假设你是一名资深旅行顾问,请为我推荐旅行目的地。
让我们一步一步思考,按照以下内容进行:
首先需要了解用户的兴趣和喜好,例如历史、自然、文化等。
然后,需要考虑用户的预算和旅行时间,为用户提供合理的建议。
最后,应该总结推荐的目的地,并解释为什么这是最佳选择。
这个提示词就非常好,我把它发给了GPT4,出来的效果很棒,非常贴心。
部分截图如下:
接着说,意图识别:使用意图识别来识别用户指令。先拆大分类下的意图,再回答具体的问题。来看个例子:
你是一个智能家居分析高手,你需要分析用户对智能家居发出的指令并从用户的指令中结构化的输出提取出信息。输出完毕后结束,不要新增内容。
定义的字段为设备类型、操作类型、设备参数、设置值、提醒时间、操作场所。
设备类型:智能家居设备的种类,如灯光、温控、音响等。若没有就写“无”
操作类型:用户对设备的操作,包括查询、设置、提醒等。若没有就写“无” 设备参数:涉及设置操作时,设备的具体参数,如亮度、温度、定时等。若没有就写“无”
设置值:用户希望设定的数值或状态。若没有就写“无” 提醒时间:用户希望智能家居设备执行操作的时间。若没有就写“无”
操作场所:用户希望智能家居设备执行的场所,如卧室、客厅、厨房等。若没有就写“无”
用户输入:把卧室空调温度调至25度。
最后这里的<用户输入>,就是我们每次跟AI对话输入的那些文字。AI回答如下:
然后是提供示例,这个更专业的说法就是<少样本-Few Shot>,看一个提示词
prompt:【 假设你是一名资深旅行顾问,请参照三引号中的案例的语气和提供攻略的方式为我推荐中国旅行目的地
案例:”’伊豆急行之[黑船电车] 日本小众玩法:来伊豆不可错过的海景列车一一黑船电车。
交通攻略:伊豆急行线来往最多的是普通列车,线路和窗外的景色与黑船电车是一样的,但是黑船电车拥有180度的面朝大海的座位。需要注意的是黑船号每天只有三班,分别是早上,中午,下午各一班,一定记得看下时刻表。
玩法推荐:强烈推荐购买伊豆急行一日券/两日券。一日券价格为1200日元/一人;二日券价格为2000日元/人。
行程路线:有名的城崎海岸(门胁吊桥、门胁灯塔)、伊豆高原(大室山)、以及小众的下田市的白滨海岸,都可坐此列车到达。黑船雷事主要行驶於熟海~伊豆急下田”’ 】
提供示例的目的在于让AI学习案例,界定输出边界,从而获得更加准确的回答。
接着是input,讯飞这里将input(输入)分为三类
a.句子:提供指令需要参照的句子
b.文章:提供指令需要解析的文章
c.问题:提供指令需要回答的问题
根据上述智能家居案例中,最后”用户输入:把卧室空调温度调至25度。”就是输入给大模型最后的提示词,大模型需要根据该输入进行解析并回答。
然后是output,output的含义是:可以定义输出的格式和指示标准,以确保模型生成的结果符合预期。
常见的格式和指示标准有:Markdown、分行、限定Token、诗歌、风格等等。
除了上述这些要点,关于提示词撰写,讯飞还给出了下列的几个小Tips
- 多提供关键词:关键词能够和指令提示相结合,以创建更具体和有针对性的生成文本
- 把事情说详细:在工作中,往往也是上级安排的命令和要求越详细,我们完成的工作才能越加符合他们的预期,在训练大模型时亦是如此,将要点都详细的告诉大模型往往效果会更好
- 指定输出长度:在生成文本时,若我们需要限定字数,此时需要告诉大模型相关信息,避免生成字数过少或过多
- 长文本用总结:在我们输入一段很长文本给大模型时,由于字数限制大模型可能无法全部读取,此时我们能将全篇文本进行分段,将前面内容让大模型总结从而将总结的内容衔接后面的内容,达到层层递进理解的效果
- 结尾可加约束:我们在提出问题时可以在结尾加一个”用户输入的问题:”这样相当于强调我们主要要分析的内容是结尾输入的这部分内容,帮助大模型更好的进行分析。
最后,我们来看一个讯飞给出的最佳案例:
你是一位经验丰富的论文作家和写作助手,对人工智能、社交媒体和竞争分析有深入的了解。你的任务是撰写一篇关于{基于社交评论数据的人工智能竞争分析}的论文,重点关注学术研究。结构要求:按照以下1、2步进行全过程
a.先给出一个论文的标题和总的论文框架,框架应该采用多级标题分点写,内容全面具体,输出{标题:{} 框架:{}}
b.根据论文框架一步一步的填补框架中每个部分的内容,输出补充后的全部内容
内容要求:确定论文的结构:引言、综述、主体段落和结论。
引言部分:以一个引人入胜的故事或情景开始,引起读者的兴趣,并简要介绍该主题的历史和发展。
综述部分:概述过去在该情境下人们做了什么研究,而本文的研究方法和方向是什么。要求过去的研究和本文的研究相关,该部分在讲过去的研究时需要引用相关的文献并给出文献引用地址,以增强你的论点的可信度。
主体段落:根据主题将论文分为几个主要部分,每个部分都应包含相关的真实案例和研究结果,以支持你的观点。确保每个段落都有清晰的主题句,并在段落之间建立逻辑连接。结论部分:总结你的论点,并提出对未来研究方向的建议。
写作要求:
语言风格:在整篇论文中,你应引用真实案例,论文应以专业论文写作的风格撰写,采用富有创意和引人入胜的方法,吸引学术界和非学术读者的注意。
引用和参考文献:在适当的地方引用相关的研究和文献,以增强你的论点的可信度。
编辑和校对:仔细检查论文中的拼写、语法和标点错误,并确保论文的逻辑流畅性和连贯性。
分析:在看到以上案例时,我们从prompt的结构上进行思考:
角色:论文作家和写作助手
2.任务:撰写一篇论文
3.指令:要求他按照我们提供的步骤进行该任务(思维链)
4.input:关键词为${人工智能、社交媒体、竞争分析},论文标题为{基于社交评论数据的人工智能竞争分析}
5.output:定义了输出的格式、内容要求和写作要求。
没有回复内容