大模型提示词策略
策略1:尽可能多地描述任务细节
为了获得精准的回应,请确保提供问题的详细信息,否则模型只能乱猜测
示例:无任务细节
用Python编写一个二分查找算法
示例:有任务细节
用Python编写一个二分查找算法,算法需要满足以下内容:
1.如果目标值存在返回下标,否则返回 -1
2.区间为左闭右闭
策略2:指定角色
示例:无指定角色
解释大模型蒸馏技术是什么
示例:指定角色
你现在是一位小学6年级计算机老师,请你向你的学生解释大模型蒸馏技术是什么
策略3:使用分隔符和占位符
常⻅的分隔符:三引号(""",''')、横线(---)、HTML标记(<content></content>)
常⻅的占位符:{{}}、<>
示例:使用分隔符---
我在windows电脑上的wsl中安装了docker,在docker中安装了dify,在windows上安装了ollama,现在在windows上的浏览器上访问dify的ip是:http://172.27.101.64/,windows的主机ip是:10.219.xx.xx,在dify中添加ollama时,基础url填写http://10.219.xx.xx:11434,保存时报下面的错误:
---
An error occurred during credentials validation: HTTPConnectionPool(host='10.219.xx.xx', port=11434): Max retries exceeded with url: /api/chat (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fbaaf85e510>, 'Connection to 10.219.xx.xx timed out. (connect timeout=10)'))
---
怎么解决这个问题?
在测试工作中让大模型帮忙解决问题时个人最爱用分隔符横线(---)啦
策略4:指定完成任务所需要的步骤
如果我们的任务中包含⼀些具有依赖关系的步骤,后边的步骤依赖于前边步骤的完成,我们最好在提⽰词中明确的写清楚所有的步骤,否则⼤模型会⾃⾏猜测这些步骤,导致输出的结果不符合我们预期,显式写出步骤可以使模型更容易理解和完成任务。
示例:
你是⼀位⾃媒体写⼿,我希望你对⼀篇热点新闻,创作⼀篇新的⽂章。
创作步骤:
1. 先对新闻内容进⾏总结。
2. 发表⾃⼰的观点,以“第⼀”、“第⼆、”、“第三”等形式展⽰。
3. 结尾提出⼀个问题,引导读者进⾏评论
要求:
1. 仅输出⽂章内容,不需要进⾏分段解释
2. ⼝语化表达
原始⽂章:
---
xxxxxxxxxxxxxx......
---
策略5:提供示例
如果无法描述清楚自己想要获得什么样的回答,可以直接给大模型提供一个示例
示例:
你是⼀名⾃媒体写⼿,请你参考我提供的⽂案⻛格,帮我写⼀个旅游对怡情的⾃媒体⽂案。
要求如下:
1.第⼀⼈称视⻆
2.语⽓⾃然,⼝语化
3.能引起大多数人对旅游的内⼼共鸣,引起读者评论和点赞
4.创作⼀个类似的⽂案,内容不能和原始⽂案重复
参考⽂案:
---
xxxxxxxxxxxxxx
---
策略6:拆分任务
将复杂任务人工分解为多个子任务,让大模型分阶段处理每个子任务,通过这种⽅法,将⼤任务拆分为多个子任务,每个子任务只需要关注当前任务本⾝,⽽不是整个复杂的大任务,这样做的好处是可以降低错误率
需求:写⼀份实时音视频的市场分析报告
示例:不拆分任务
写⼀份实时音视频(RTC)发展前景报告
回复结果:任务过于笼统,回复的内容中大部分是自己不想要的或者只是浅浅提到,并未深入
示例:拆分任务
第一个子任务:收集数据
列出实时音视频(RTC)2023年至2025年市场规模:包括全球市场规模,中国市场规模,全球主要应用领域占比
第二个子任务:中国竞品分析
对比实时音视频(RTC)中国头部公司发展规模以及各公司竞争优势
第三个子任务:行业发展依赖
分析实时音视频(RTC)发展需要依赖的核心技术,并分析当下这些技术是否成熟,能否足够支撑行业发展
第四个子任务:对未来发展趋势的预测
根据前面的三步,预测实时音视频(RTC)未来5年的发展趋势
第五步:内容合并
基于前面四步,完成实时音视频(RTC)发展前景报告,字数控制在3000字以内
第六步:优化润色
请检查上⼀步⽣成的报告内容,对内容进⾏润⾊和优化。重点优化:
1.数据单位统⼀性
2.专业术语解释
3.段落过渡衔接
4.结论与数据的呼应关系
总的来说,对于复杂的任务,要想得到满意的答案,还是需要人去参与。可以先不拆分任务,根据大模型的回答打开思路,然后在拆分任务,获得更精准的回答。
策略7:分段总结长文档
很长的⽂本会超过⼤模型的限制,这种场景下可以把长文本拆分为多个部分,让⼤模型对每⼀个部分做总结,然后最后再针对各个部分的总结,做⼀个汇总的总结。
示例:
我会给你⼀本书的内容,每个章节单独发送给你,请你对每个章节进⾏总结,最后再对每个章节的总结进⾏汇总,输出⼀个总的摘要。请你按照以下步骤执⾏:
1. 我会给你每个章节的内容,你根据我提供的章节内容做总结
2. 当我给你说:“发送完毕”时,你就对每个章节的总结,做⼀个汇总,对汇总内容进⾏摘要总结并输出出来
然后依次输入每章节内容,章节输入完成后,输入“发送完毕”