返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

Openai官方prompt 进阶 用户意图分类, 思考过程,工具调用

[复制链接]
链载Ai 显示全部楼层 发表于 7 小时前 |阅读模式 打印 上一主题 下一主题

基于我自己日常需要用到的场景, 构建两个 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的问题,让她学到更多的英文单词和英文内容;并且每个单词的发音使用webbrowser插件搜索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%
Therepulsivesmellfromthegarbagecanmademefeelsick
2.排斥的,有排斥力的:单词常见度20%
herepulsiveforcebetweenthetwomagnetswassostrongthattheycouldn'tbepushedtogether.
同义词:
Disgusting
Revolting
Offensive
</fewShotExample>
<expectedAnswer>
#当输入是英文时
###思考过程

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

###最终结果
[Suboptimal](https://www.merriam-webster.com/dictionary/suboptimal)
1. 不理想的,次优的:单词常见度80%
-Theteam'ssuboptimalperformancecostthemthechampionship.
-Livingonjunkfoodgenerallymeansthatyouhaveasuboptimaldiet.

2. 低于最佳标准或条件的:单词常见度20%
-Humanactivityhaspushedanimalsintofragmentedandsuboptimalhabitats.
-Theinaccessibilityofmedicationscanleadtosuboptimaladherence.

同义词:
-Inferior
-Substandard
-Deficient

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

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

###最终结果

1.Myankleisswollenbecauseofasprainandlookslikeaballoon.
2.Duetothesprain,myanklehasswelledupquiteabit.
3.Myankleisswollenfromthesprainandit'spuffedupsignificantly.

这三种表达方式都传达了脚踝因为扭伤而肿胀的意思,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等更复杂的机制。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ