简介
黄梅时节家家雨,青草池塘处处蛙。
小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖红枣粽的小女孩。紧接前面几篇ChatGPT Prompt工程系列文章:
- 04:ChatGPT Prompt编写指南
- 05:如何优化ChatGPT Prompt?
- 06:ChatGPT Prompt实践:文本摘要&推断&转换
- 07:ChatGPT Prompt实践:以智能客服邮件为例
- 08: ChatGPT Prompt实践:如何用ChatGPT构建点餐机器人?
- 09: 基于ChatGPT构建智能客服系统(query分类&安全审核&防注入)
今天这篇小作文是吴恩达《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。