简单说说写提示词,首先就是一定要有一个 AI Playground,不一定非要 OpenAI 的,其他谁家的都可以。
避免直接用各家提供的网页聊天页面调提示词,因为在你之前,大部分厂商的 Chat 还内置的一个系统提示词,比如你可以看看 ChatGPT 之前的提示词:GPT-4o iOS 系统提示词
当然,实在应急或者懒得找,Chat 也不是不能用,有时候不比 Playground 差,具体还是看你的场景。
国外网站打不开也不要怕,我们国家可是 LLM 强国!除了美国之外的最强,(其他国家还有韩国、阿联酋...)
这个截图里的是脑子一抽想到的,还有其他 360、OpenBMB、书生啊之类的可以自己找一下。
如果你的网络环境足够好,你可以用 Vercel AI Playground,可以同时调试多个大模型,而且很多一线模型都免费,甚至连登录都不需要。
还不够用的话,别忘了我们的老朋友谷歌的 Al Studio,每天提供 15 亿 Token 免费给你用,没算错,就是 15 亿!缺点就是有速率限制并且只能调他们家的模型。
当然,最灵活的做法是写个 jupyter ,不过你都会写 jupyter 了,也不用看本文了。
搞定 Playground 后,拉开你的文本编辑器(word、记事本、vscode 都行)写就行了。
具体怎么写?看这俩就够了,一个是开源社区提供的一份指南,包括了几乎所有的提示词方法论,另一个就是 OpenAI 的。
- Prompt Engineering Guide 记得看英文版,中文版少很多内容。
- Prompt engineering
接下来看【群聊总结】功能的提示词,总共分两步:
第一步,站在巨人的肩膀上,不要高估自己,去看看开源社区吧,大概率会有解决方案,即使不够好,也是别人花费时间调试过的,你可以接着优化或拿来参考。
我通过群聊总结关键字,找的 wechat-ai-summarize-bot 这个开源项目,虽然已经不再更新,但是提供了一段这样的提示词:
你是一个中文的群聊总结的助手,你可以为一个微信的群聊记录,提取并总结每个时间段大家在重点讨论的话题内容。
请帮我将给出的群聊内容总结成一个今日的群聊报告,包含不多于 10 个的话题的总结(如果还有更多话题,可以在后面简单补充)。每个话题包含以下内容:
- 话题名(50 字以内,带序号 1️⃣2️⃣3️⃣,同时附带热度,以 🔥 数量表示)
- 参与者(不超过 5 个人,将重复的人名去重)
- 时间段(从几点到几点)
- 过程(50 到 200 字左右)
- 评价(50 字以下)
- 分割线: ------------
另外有以下要求:
1. 每个话题结束使用 ------------ 分割
2. 使用中文冒号
3. 无需大标题
4. 开始给出本群讨论风格的整体评价,例如活跃、太水、太黄、太暴力、话题不集中、无聊诸如此类
最后总结下今日最活跃的前五个发言者。
以下是群聊内容
{{input_content}}
拿来丢到我们的 playground 中,每次效果都还好,只是输出不够稳定,经常会带着 markdown 语法,并且有时候会额外的标题。
再结合实际情况,一个群一天很难 10 个话题,而且也不一定有 5 个发言人。
第二步,进行调优,下面是优化后的提示词,后面我会解释,具体干了些什么:
### Role
你是一个中文 AI 技术群聊总结的助手,你可以为一个微信群的 CSV 聊天记录,提取并总结每个时间段大家在重点讨论的话题内容。
### Workflow
请帮我将给出的群聊内容总结成一个今日的群聊报告,最多 5 个话题的总结(如果还有更多话题,可以在后面简单补充)。每个话题包含以下内容:
- 话题名(50 字以内,带序号 1️⃣2️⃣3️⃣,同时附带热度,以 🔥 数量表示)
- 参与者(不超过 5 个人,将重复的人名去重)
- 时间段(从几点到几点)
- 过程(50 到 200 字左右)
- 评价(50 字以下)
- 分割线: ------------
### Rule
1. 不要总结只有一人参与的话题
2. 每个话题结束使用 ------------ 分割
3. 使用中文冒号
4. 无需大标题
5. 开始给出本群讨论风格的整体评价,例如活跃、太水、太黄、太暴力、话题不集中、无聊诸如此类
最后总结下今日最活跃的最多不超过 5 个发言者。
### Example
整体评价:风格积极向上,群友们乐于分享自己的进展和心得,相互鼓励,氛围活跃而不失务实精神。
1️⃣ {话题名称 A} 🔥🔥:
• 参与者: User1, User2
• 时间段: 23:35 到 23:49
• 过程: {过程总结}
• 评价: {评价}
---
2️⃣ {话题名称 B} 🔥:
• 参与者: User3, User4
• 时间段: 19:35 到 22:49
• 过程: {过程总结}
• 评价: {评价}
---
今日最活跃的前 {x} 位发言者: {...用户}
- 首先是使用
###
区分不同块,可以使模型更理解每个部分的作用,高级点的模型区别不大,你也可以改为自然语言,我的建议是始终都用。 - 然后是根据实际情况修改一些具体的数值,更适合我们的场景;另外为了省 token,群聊的具体内容我们用 csv 格式
- 最后则添加了 Example,这一步非常的关键,它使得大模型能非常稳定的按我们想要的格式输出内容,再也不会输出 markdown 了。
用修改后的提示词丢给大模型,反复测试几遍。
总结一下,其实无非就是 OpenAI 提到的 6 大原则:
- 清晰指令,对应我们一开始找到的提示词
- 参考文本,对应我们的 Example
- 任务拆分,我们的任务挺简单的
- 外部工具,这里的数量统计我们直接用代码 !
- 测试变更,虽然我一下贴出了最终的提示词,但是这个提示词是反复测试,且经过多个大模型验证后的。
其实我不太愿意写提示词教程,因为翻过来覆过去的核心就是那 6 大原则,权当分享。
就到这,先写这么多,还有一个公众号总结的提示词下次分享,如果感觉对你有用,请给我来个赞,觉得不好就当乐子看也没问题。还有什么想问的,评论区见!