Chain of Thought
本质在于化单个复杂问题为多个简单问题
Few-Shot CoT & Zero-Shot CoT
Chain of Thought 实战
文本示例
作为一个为花店电商公司工作的AI助手,我的目标是帮助客户根据他们的喜好做出明智的决定。
我会按部就班的思考,先理解客户的需求,然后考虑各种鲜花的涵义,最后根据这个需求,给出我的推荐。
同时,我也会向客户解释我这样推荐的原因。
示例 1:
人类:我想找一种象征爱情的花。
AI:首先,我理解你正在寻找一种可以象征爱情的花。在许多文化中,红玫瑰被视为爱情的象征,这是因为它们的红色通常与热情和浓烈的感情联系在一起。因此,考虑到这一点,我会推荐红玫瑰。红玫瑰不仅能够象征爱情,同时也可以传达出强烈的感情,这是你在寻找的。
示例 2:
人类:我想要一些独特和奇特的花。
AI:从你的需求中,我理解你想要的是独一无二和引人注目的花朵。兰花是一种非常独特并且颜色鲜艳的花,它们在世界上的许多地方都被视为奢侈品和美的象征。因此,我建议你考虑兰花。选择兰花可以满足你对独特和奇特的要求,而且,兰花的美丽和它们所代表的力量和奢侈也可能会吸引你。
实践框架
# 设置环境变量和API密钥
import os
os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key'
# 创建聊天模型
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(temperature=0)
# 设定 AI 的角色和目标
role_template = "你是一个为花店电商公司工作的AI助手, 你的目标是帮助客户根据他们的喜好做出明智的决定"
# CoT 的关键部分,AI 解释推理过程,并加入一些先前的对话示例(Few-Shot Learning)
cot_template = """
作为一个为花店电商公司工作的AI助手,我的目标是帮助客户根据他们的喜好做出明智的决定。
我会按部就班的思考,先理解客户的需求,然后考虑各种鲜花的涵义,最后根据这个需求,给出我的推荐。
同时,我也会向客户解释我这样推荐的原因。
示例 1:
人类:我想找一种象征爱情的花。
AI:首先,我理解你正在寻找一种可以象征爱情的花。在许多文化中,红玫瑰被视为爱情的象征,这是因为它们的红色通常与热情和浓烈的感情联系在一起。因此,考虑到这一点,我会推荐红玫瑰。红玫瑰不仅能够象征爱情,同时也可以传达出强烈的感情,这是你在寻找的。
示例 2:
人类:我想要一些独特和奇特的花。
AI:从你的需求中,我理解你想要的是独一无二和引人注目的花朵。兰花是一种非常独特并且颜色鲜艳的花,它们在世界上的许多地方都被视为奢侈品和美的象征。因此,我建议你考虑兰花。选择兰花可以满足你对独特和奇特的要求,而且,兰花的美丽和它们所代表的力量和奢侈也可能会吸引你。
"""
from langchain.prompts import ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate
system_prompt_role = SystemMessagePromptTemplate.from_template(role_template)
system_prompt_cot = SystemMessagePromptTemplate.from_template(cot_template)
# 用户的询问
human_template = "{human_input}"
human_prompt = HumanMessagePromptTemplate.from_template(human_template)
# 将以上所有信息结合为一个聊天提示
chat_prompt = ChatPromptTemplate.from_messages([system_prompt_role, system_prompt_cot, human_prompt])
prompt = chat_prompt.format_prompt(human_input="我想为我的女朋友购买一些花。她喜欢粉色和紫色。你有什么建议吗?").to_messages()
# 接收用户的询问,返回回答结果
response = llm(prompt)
print(response)
输入:
现在,根据你的需求:你正在寻找你的女朋友喜欢的粉色和紫色的花。
首先,我从理解你的需求出发,只会推荐粉色或紫色,或者两者的组合的花。这些可能包括粉色的玫瑰,紫色的兰花,或者是粉色和紫色的花的混合花束。玫瑰是象征爱情和亲情的经典符号,而兰花象征着美丽和力量。这两种花都蕴含很棒的内涵。当然了,无论你选择哪种花卉,重要的是表达出你对她的爱和关心。记得附上一张温馨的贺卡,写下你的真挚祝福。
Tree of Thought
文本示例
假设一个顾客在鲜花网站上询问:“我想为我的妻子购买一束鲜花,但我不确定应该选择哪种鲜花。她喜欢淡雅的颜色和花香。”
AI(使用ToT框架):
思维步骤1:理解顾客的需求。
顾客想为妻子购买鲜花。
顾客的妻子喜欢淡雅的颜色和花香。
思维步骤2:考虑可能的鲜花选择。
候选1:百合,因为它有淡雅的颜色和花香。
候选2:玫瑰,选择淡粉色或白色,它们通常有花香。
候选3:紫罗兰,它有淡雅的颜色和花香。
候选4:桔梗,它的颜色淡雅但不一定有花香。
候选5:康乃馨,选择淡色系列,它们有淡雅的花香。
思维步骤3:根据顾客的需求筛选最佳选择。
百合和紫罗兰都符合顾客的需求,因为它们都有淡雅的颜色和花香。
淡粉色或白色的玫瑰也是一个不错的选择。
桔梗可能不是最佳选择,因为它可能没有花香。
康乃馨是一个可考虑的选择。
思维步骤4:给出建议。
“考虑到您妻子喜欢淡雅的颜色和花香,我建议您可以选择百合或紫罗兰。淡粉色或白色的玫瑰也是一个很好的选择。希望这些建议能帮助您做出决策!”
思考题
-
我们的CoT实战示例中使用的是Few-Shot CoT提示,请你把它换为Zero-Shot CoT,跑一下程序,看看结果。
直接删去原始CoT提示中的两个示例即可,如下:
cot_template = """ 作为一个为花店电商公司工作的AI助手,我的目标是帮助客户根据他们的喜好做出明智的决定。 我会按部就班的思考,先理解客户的需求,然后考虑各种鲜花的涵义,最后根据这个需求,给出我的推荐。 同时,我也会向客户解释我这样推荐的原因。 """结果:
根据你女朋友喜欢的颜色,我建议你可以选择粉色和紫色的花束。以下是一些具体的建议: 1. **粉色玫瑰**:粉色玫瑰代表着爱情、浪漫和温柔,是表达爱意的经典选择。 2. **紫色郁金香**:紫色郁金香象征着高贵、优雅和神秘,非常适合送给特别的人。 3. **粉色康乃馨**:粉色康乃馨传达着温馨、感激和爱意,是一种非常受欢迎的花束选择。 4. **紫色紫罗兰**:紫色紫罗兰寓意着永恒的美和爱,是一种非常浪漫的花卉。 5. **粉色百合**:粉色百合代表着纯洁、高贵和幸福,是一种非常美丽的花束选择。 以上是一些适合送给你女朋友的粉色和紫色的花束建议,你可以根据自己的喜好和预算进行选择。同时,你也可以考虑添加一些绿叶和其他花卉来增加花束的层次感和美观度。 -
请你设计一个你工作场景中的任务需求,然后用ToT让大语言模型帮你解决问题。
ToT示例:
顾客需求:“我想要买一个显示屏,我的桌深是60cm,平时写代码也会玩游戏,预算是500元。” AI(使用ToT框架): 思维步骤1:理解顾客需求 顾客想购买显示屏。 桌面深度为60cm,需考虑合适的屏幕尺寸,避免距离过近影响视力。 显示屏需兼顾编程和游戏需求。 预算为500元,限制选择在性价比高的产品上。 思维步骤2:考虑适合的屏幕规格和特性 屏幕尺寸:考虑桌面深度,推荐20-24英寸的显示器,以保证60cm的深度下拥有舒适的视距。 分辨率:推荐1080p,能够满足编程的文字清晰度,同时对游戏也有良好的体验。 刷新率:考虑到游戏需求,优选至少60Hz的刷新率,若预算允许,可以考虑75Hz,以提高游戏画面流畅度。 面板类型:选择IPS面板,保证颜色的还原度和较好的可视角度,适合长时间使用。 可调节性:推荐支持倾斜或高度调节的支架,以方便调整到合适的视角。 思维步骤3:筛选适合的显示器候选 候选1:A品牌 21.5英寸 IPS屏 1080p分辨率 60Hz刷新率,售价450元。性价比高,适合编程需求,但刷新率略低于理想游戏需求。 候选2:B品牌 23.8英寸 IPS屏 1080p分辨率 75Hz刷新率,售价500元。符合编程和游戏需求,价格达到预算上限。 候选3:C品牌 24英寸 VA屏 1080p分辨率 60Hz刷新率,售价480元。画质良好,视角不及IPS适合长时间使用。 思维步骤4:根据需求筛选最佳选择 B品牌 23.8英寸 IPS屏满足编程和游戏的需求,具备1080p分辨率和75Hz刷新率,是最佳选择。 A品牌性价比高,但刷新率较低。 C品牌价格较低,显示效果良好,但VA屏不适合长时间阅读代码。 思维步骤5:给出建议 根据您的需求和预算,我们建议选择B品牌的23.8英寸IPS屏显示器。 这款显示器具备1080p分辨率和75Hz刷新率,适合60cm的桌面深度,可以兼顾编程和游戏体验 它的价格为500元,刚好符合您的预算。希望这个选择能帮助您获得良好的使用体验!输出:
query:我想要买一个键盘和鼠标,主要在自习室使用,预算是300元思维步骤1:理解顾客需求 顾客需要购买键盘和鼠标。 主要在自习室使用,需要考虑噪音、便携性和舒适性。 预算为 300 元,需要在这个预算内选择性价比高的产品。 思维步骤 2:考虑适合的键盘和鼠标特性 键盘: - 选择静音键盘,以避免在自习室中产生噪音干扰他人。 - 考虑键盘的尺寸和重量,以便携带。 - 选择具有舒适按键手感的键盘,以提高长时间使用的舒适度。 鼠标: - 选择无线鼠标,以提高便携性。 - 考虑鼠标的尺寸和重量,以便携带。 - 选择具有舒适握感的鼠标,以提高长时间使用的舒适度。 思维步骤 3:筛选适合的键盘和鼠标候选 候选 1:A 品牌的静音无线键盘和鼠标套装,键盘尺寸适中,按键手感舒适,鼠标握感良好,售价 250 元。 候选 2:B 品牌的有线键盘和无线鼠标套装,键盘具有出色的按键手感,鼠标轻便易携带,售价 280 元。 候选 3:C 品牌的无线键盘和鼠标套装,键盘具有时尚的外观设计,鼠标具有高精度传感器,售价 300 元。 思维步骤 4:根据需求筛选最佳选择 A 品牌的静音无线键盘和鼠标套装在价格和功能上都符合顾客的需求,是最佳选择。 B 品牌的有线键盘和无线鼠标套装虽然键盘手感出色,但有线键盘不太方便携带。 C 品牌的无线键盘和鼠标套装价格较高,超出了顾客的预算。 思维步骤 5:给出建议 根据您的需求和预算,我们建议选择 A 品牌的静音无线键盘和鼠标套装。 这款套装的键盘具有静音设计,适合在自习室中使用,不会产生噪音干扰他人。 键盘尺寸适中,按键手感舒适,鼠标握感良好,便于携带。 售价为 250 元,在您的预算范围内。希望这个选择能满足您的需求!