LLM系列 |10: 如何编写思维链Prompt?以智能客服为例

简介

黄梅时节家家雨,青草池塘处处蛙。

小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖红枣粽的小女孩。紧接前面几篇ChatGPT Prompt工程系列文章:

  • 04:ChatGPT Prompt编写指南
  • 05:如何优化ChatGPT Prompt?
  • 06:ChatGPT Prompt实践:文本摘要&推断&转换
  • 07:ChatGPT Prompt实践:以智能客服邮件为例
  • 08: ChatGPT Prompt实践:如何用ChatGPT构建点餐机器人?
  • 09: 基于ChatGPT构建智能客服系统(query分类&安全审核&防注入)

更多、更新文章欢迎关注 微信公众号:小窗幽记机器学习。后续会持续整理模型加速、模型部署、模型压缩、LLM、AI艺术等系列专题,敬请关注。

今天这篇小作文是吴恩达《Building Systems with the ChatGPT API》课程的第1篇笔记,继续以智能客服场景为例,介绍如何编写ChatGPT的思维链Prompt从而为用户提供智能客服服务。在智能客服场景中,经常会有用户询问对比各种产品的价格,如何让智能客服提供准确的答案?这就需要在构建Prompt过程中引入思维链的编写方式。

产品比价

delimiter = "####"
system_message = f"""
按照以下步骤回答客户的查询:
客户的查询将使用四个井号(#)进行分隔,即{delimiter}。

Step 1:{delimiter} 首先确定用户是否询问有关特定产品或产品的问题。产品类别不计入其中。

Step 2:{delimiter} 如果用户询问特定产品,请确定这些产品是否在以下列表中。
所有可用产品:

1.  产品:TechPro超极本
    类别:电脑和笔记本
    品牌:TechPro
    型号:TP-UB100
    保修:1年
    评分:4.5
    特点:13.3英寸显示屏,8GB内存,256GB固态硬盘,英特尔Core i5处理器
    描述:时尚轻薄的超极本,适合日常使用。
    价格:799.99美元

2.  产品:BlueWave游戏笔记本电脑
    类别:电脑和笔记本
    品牌:BlueWave
    型号:BW-GL200
    保修:2年
    评分:4.7
    特点:15.6英寸显示屏,16GB内存,512GB固态硬盘,NVIDIA GeForce RTX 3060
    描述:高性能游戏笔记本电脑,带来沉浸式体验。
    价格:1199.99美元

3.  产品:PowerLite可转换本
    类别:电脑和笔记本
    品牌:PowerLite
    型号:PL-CV300
    保修:1年
    评分:4.3
    特点:14英寸触摸屏,8GB内存,256GB固态硬盘,360度铰链
    描述:多功能可转换笔记本电脑,配备灵敏的触摸屏。
    价格:699.99美元

4.  产品:TechPro台式机
    类别:电脑和笔记本
    品牌:TechPro
    型号:TP-DT500
    保修:1年
    评分:4.4
    特点:英特尔Core i7处理器,16GB内存,1TB硬盘,NVIDIA GeForce GTX 1660
    描述:功能强大的台式电脑,适用于工作和娱乐。
    价格:999.99美元

5.  产品:BlueWave Chromebook
    类别:电脑和笔记本
    品牌:BlueWave
    型号:BW-CB100
    保修:1年
    评分:4.1
    特点:11.6英寸显示屏,4GB内存,32GB闪存,Chrome OS
    描述:紧凑且价格实惠的Chromebook,适用于日常任务。
    价格:249.99美元

Step 3:{delimiter} 如果消息中包含上述列表中的产品,请列出用户在消息中做出的任何假设,\
例如笔记本电脑X比笔记本电脑Y大,或者笔记本电脑Z的保修期为2年。

Step 4:{delimiter} 如果用户做出了任何假设,请根据产品信息判断该假设是否正确。

Step 5:{delimiter} 首先,如果适用,礼貌地纠正客户的错误假设。\
只提及或引用上述5种可用产品中的产品,因为这是该商店售卖的唯一5种产品。以友好的口吻回答客户。

请使用以下格式:
Step 1:{delimiter} <步骤1的推理>
Step 2:{delimiter} <步骤2的推理>
Step 3:{delimiter} <步骤3的推理>
Step 4:{delimiter} <步骤4的推理>
回复客户:{delimiter} <对客户的回复>

请确保使用{delimiter}来分隔每个步骤。
"""

在编写完思维链Prompt后,进行以下实测:

user_message = f"""
BlueWave Chromebook比TechPro台式机贵多少?"""

messages =  [  
{'role':'system', 
 'content': system_message},    
{'role':'user', 
 'content': f"{delimiter}{user_message}{delimiter}"},  
] 

response = get_completion_from_messages(messages)
print(response)

ChatGPT 回复如下:

Step 1:#### 用户询问有关特定产品的价格。

Step 2:#### 用户询问的产品是BlueWave Chromebook和TechPro台式机。

Step 3:#### 用户假设BlueWave Chromebook比TechPro台式机贵。

Step 4:#### 根据产品信息,BlueWave Chromebook的价格为249.99美元,而TechPro台式机的价格为999.99美元。因此,TechPro台式机比BlueWave Chromebook贵750美元。

回复客户:#### TechPro台式机比BlueWave Chromebook贵750美元。

超纲问题答复

user_message = f"""
你们卖平板电视吗"""
messages =  [  
{'role':'system', 
 'content': system_message},    
{'role':'user', 
 'content': f"{delimiter}{user_message}{delimiter}"},  
] 
response = get_completion_from_messages(messages)
print(response)

ChatGPT 回复如下:

Step 1:#### 用户询问是否有关于特定产品的问题,即平板电视。

Step 2:#### 平板电视不在上述产品列表中。

Step 3:#### 该消息中没有任何假设。

Step 4:#### 无需判断假设的正确性,因为该消息中没有任何假设。

回复客户:#### 很抱歉,我们不售卖平板电视。我们售卖的电子产品包括TechPro超极本、BlueWave游戏笔记本电脑、PowerLite可转换本、TechPro台式机和BlueWave Chromebook。

省略思考过程

# 中文版
try:
    final_response = response.split(delimiter)[-1].strip()
except Exception as e:
    final_response = "抱歉,我现在有些问题,请尝试提出另一个问题。"
    
print(final_response)

输出结果如下:

很抱歉,我们不售卖平板电视。我们售卖的电子产品包括TechPro超极本、BlueWave游戏笔记本电脑、PowerLite可转换本、TechPro台式机和BlueWave Chromebook。

你可能感兴趣的:(LLM,prompt,chatgpt,LLM,AI)