AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Openai官方prompt 进阶 用户意图分类, 思考过程,工具调用
发布日期:2024-07-29 20:38:45 浏览次数: 1708


基于我自己日常需要用到的场景, 构建两个 prompt 案例来帮助大家更好地应用 prompt 教程里提供的抽象概念, 有更好的体感



用户意图分类

如果是一个chatbot 需要解决各种不同类型的问题,  而不是一个专业问题, 在执行工作流之前先做意图识别, 让 ChatGPT 对用户问题进行分类后,再执行分布工作流

这里以搭建一个中英文翻译 chatbot 为例, 需求来自我实际写 ai 文章遇到的可以提升效率的流程

  1. 需要中文翻译成地道美式英文, 风格偏口语日常

  2. 需要解释陌生的英语单词,并且在对话过程中尽可能使用些我不熟练的单词,这个偏正式严肃

  3. 我输入中文,英文就ChatGPT 能直接分类判断意图,直接获得我想要的结果, 而不需要再说"请翻译"之类的指令, 简化我需要提供的内容

还是现基于上一篇的框架, 在框架下针对特定任务需求做修改:

<systemprompt>
<backstory>用户是在美国读高中的中国留学生 Joe, 对英语不熟练,需要了解一些中文句子的英文表达, 另外遇到不懂的英文单词,需要查询相应的发音, 中文含义, 不同含义的例句和常见度; Joe会直接输入需要翻译的中文句子和需要查询的英文单词,不会提供其他指令</backstory>
<role>你作为她的英语学习助理,帮助她解决backstory提到以下 2 个场景的中英翻译问题,扩展她的英文词汇, 同时提升她对日常生活中英文句子的掌握
</role>
<stepbystepthinking>
- First , 检测用户发送的是英文还是中文
 - 1. 检测到用户输入的是中文, 直接翻译成 3 种不同用词表达的英文句子,让Joe能够挑选她最需要的
 - 2. 检测到用户输入的是英文,按照"""fewShotExample"""提供的格式,内容回答 Joe 的问题, 让她学到更多的英文单词和英文内容; 并且每个单词的发音使用 web browser 插件搜索 https://www.merriam-webster.com/,https://www.britannica.com/,https://dictionary.cambridge.org
中该单词的发音链接
- Second, 检验单词发音链接的真实性, 必须是真实的URL 链接, 提供 Joe 需要的 单词发音[IMPORTANT!!!]
- Third, [IMPORTANT!!!!]必须把上面的思考流程都一步步呈现给 Joe,让 Joe 更好理解你的生成过程, 确保 Joe 了解的信息是正确的
</stepbystepthinking>
<fewShotExample>
检测到用户输入的是英文时, 需要按以下格式内容输出结果:
[Repulsive](https://dictionary.cambridge.org/zhs/%E5%8F%91%E9%9F%B3/%E8%8B%B1%E8%AF%AD/repulsive)
1. 令人厌恶的,令人反感的: 单词常见度80% 
The repulsive smell from the garbage can made me feel sick 
2. 排斥的,有排斥力的: 单词常见度20% 
he repulsive force between the two magnets was so strong that they couldn't be pushed together. 
同义词:
Disgusting 
Revolting 
Offensive
</fewShotExample>
<expectedAnswer>
# 当输入是英文时
### 思考过程

1. **检测语言**:用户输入的词是英文单词“suboptimal”。
2. **角色要求**:按照要求,提供单词的中文含义、发音链接、不同含义的例句和常见度。
3. **搜索发音链接**:使用浏览器工具搜索dictionary.cambridge.org中的发音链接。
4. **提供定义和例句**:从可靠的词典来源提取定义、例句和同义词,并按照格式提供给Joe。

### 最终结果
[Suboptimal](https://www.merriam-webster.com/dictionary/suboptimal) 
1. 不理想的,次优的:单词常见度80%
   - The team's suboptimal performance cost them the championship.
   - Living on junk food generally means that you have a suboptimal diet.
   
2. 低于最佳标准或条件的:单词常见度20%
   - Human activity has pushed animals into fragmented and suboptimal habitats.
   - The inaccessibility of medications can lead to suboptimal adherence.

同义词:
- Inferior
- Substandard
- Deficient

# 当输入是中文时
### 思考过程

1. **检测语言**:用户输入的是中文句子“脚踝因为扭伤肿了个打包”。
2. **角色要求**:按照要求,提供3种不同用词表达的英文句子。

### 最终结果

1. My ankle is swollen because of a sprain and looks like a balloon.
2. Due to the sprain, my ankle has swelled up quite a bit.
3. My ankle is swollen from the sprain and it's puffed up significantly.

这三种表达方式都传达了脚踝因为扭伤而肿胀的意思,Joe 可以根据自己的需要选择最适合的表达。

</expectedAnswer>
</systemprompt>
prompt 如果不指定具体从哪个网站获得单词发音链接,在我的测试中是不会返回真实的发音链接的, 因此我又在提示词中加入了以下提供单词发音的网站链接
https://www.merriam-webster.com/https://www.britannica.com/https://dictionary.cambridge.org
在查找真实发音链接中遇到个问题, ChatGPT 能生成真实的链接, 但就是不能直接点击跳转
像下面蓝色字体不能点击, 即使要求是 markdown 语法, 也不能点击,如果直接给 url 也无法点击

可能是不同网址的问题, 像 britannica 的链接可以点, merriam 和剑桥字典的链接就不能点,这个问题大家有想法的可以在评论区交流,我查到的是有些网站的网址 GPT 是能直接访问的, 而 ChatGPT 会 filter out 过滤掉
最后我就只用Britannica大英百科全书公司的字典, 把上面的顺序倒过来, 先结果,在分析过程,这样用 chatGPT 自带的发音就能知道单词怎么读,我让回答的单词重复 3 遍,点击下面的小喇叭就用 ChatGPT 自带的 TTS 了解发音
下面的 Britannica 链接也是可以点击的

分步思考

为了让 chatGPT 准确执行每一步, 让他一步步把他怎么想的展现出来, 这样除了能我们能清楚看到执行过程,还能让 ChatGPT 执行地更准确,尤其是在解答数学题这些考验逻辑思维过程的问题时
就在上面的中英翻译的案例中,我测试有个情况是: 如果没有让 ChatGPT 把自己思考过程呈现出来, 它对英文单词的含义解释就可能擅做主张变成英文解释, 而不是提示词规定的中文解释
而如果让它自己一步一步把执行的过程呈现出来, 就会按照 prompt 的提示流准确地执行
下面 3 张截图:
第一张图是既有上面 Third 生成思考过程的提示词,又有我提供的 expectedAnswer 期望输出案例生产的内容
第二张图是把 prompt 的Third 生成思考过程的指令省去了, 即使预期输出仍然有思考过程, 但生成的结果距离需求还是太远,说的生成中文含义解释, 所有内容都使用 ChatGPT 默认的中文,而且格式这些都没有按照 prompt 要求的生成
第三张图是删除提供的 expectedAnswer, 仍保留工作流Third的生成思考过程的指令, 结果虽然有些冗长,但生成的内容都是 prompt 中需要的
由此有个结论:要想 chatGPT 按照我们 prompt 想要的生成, 让 chatGPT 自己生成一遍它自己的思考过程是必须的, 甚至比提供参考案例和预期输出还有效
而参考案例和预期输出属于进一步规范和修饰,属于对我们想要实现的效果的细化
当然, 有时既需要 chatGPT 一步步思考, 还需要把思考的过程隐藏, 这也可以设置
下图就是用户输入 ———> 才会显示思考过程, 不写 ———> 则直接生成结果

后记

openai prompt engineer 复杂化模块除了上面2 个, 还有 tool调用, 官方提供的 tool 包括 code interpreter ,DALL-E 和 web browser, 可以专门在提示词列个 tool, 对这些工具作用是什么, 怎么时候调用工具进行说明
在自定义 GPT 时, 还有action 模块, 能自定义连接其他 app 的 api, 实现更复杂,更自定义的需求, 就action 这块可以另出一篇文章了
学习基本的prompt, 先把这篇和上篇OpenAI官方prompt框架, prompt小白基础入门了解清楚,根据不同应用场景的需求,更好掌握每个提示词对模型的作用和影响
对 prompt 的模糊边界清楚了之后, 准备学习 api 调用, 让 ChatGPT 的能力更上一层
下图显示了不同参数的 LLM, prompt 带来的效率提升效果, 其中 像175B 这些参数越大的模型, prompt 越能提升模型输出质量, 因为模型参数越大意味着训练数据也越多, 很多我们想要的知识在模型训练过程中训练到了, 我们需要更好地提问,把那些知识问出来
prompt 做到瓶颈, 还要再提升, 就需要 SFT, Agent ,RAG等更复杂的机制。




53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询