学习内容
- 6 提示工程(下):用思维链和思维树提升模型思考质量
课后思考题
思考题1
题目
我们的CoT实战示例中使用的是Few-Shot CoT提示,请你把它换为Zero-Shot CoT,跑一下程序,看看结果。
代码实现
与Few-Shot CoT在带有示例的提示过程中,加入思考的步骤,从而引导模型给出更好的结果不同,Zero-Shot CoT是直接告诉模型要一步一步地思考,慢慢地推理。
# 设置环境变量和API密钥
import os
# os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key'
# 创建聊天模型
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model=os.environ.get("LLM_MODELEND"),
)
# 设定 AI 的角色和目标
role_template = (
"你是一个为花店电商公司工作的AI助手, 你的目标是帮助客户根据他们的喜好做出明智的决定"
)
# Zero-shot
cot_template = """
让我们一步步的思考,慢慢的推理,得出建议。
"""
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)
输出结果
Few-Shot CoT的输出结果是:
根据你女朋友喜欢的颜色,我建议你考虑购买白色和绿色的花束。以下是一些可能的选择:
- 白色康乃馨:康乃馨是一种非常受欢迎的花卉,它们代表着纯洁、真爱和敬意。白色康乃馨尤其适合作为礼物送给女朋友,因为它们传达出纯洁和无暇的爱意。
- 白色百合花:百合花是一种优雅而高贵的花卉,它们代表着纯洁、高贵和庄严。白色百合花也是一种非常适合作为礼物送给女朋友的花卉,因为它们传达出高贵和优雅的爱意。
- 绿色郁金香:郁金香是一种非常美丽的花卉,它们代表着爱情、美丽和高贵。绿色郁金香尤其适合作为礼物送给女朋友,因为它们传达出清新和自然的爱意。
- 绿色康乃馨:康乃馨是一种非常受欢迎的花卉,它们代表着纯洁、真爱和敬意。绿色康乃馨尤其适合作为礼物送给女朋友,因为它们传达出纯洁和无暇的爱意。 以上是一些可能的选择,你可以根据你女朋友的喜好和你的预算来选择适合的花束。
Zero-Shot CoT的输出结果是:
白色和绿色是非常清新和优雅的颜色组合。以下是一些适合你女朋友的花的建议:
- 白玫瑰:白玫瑰象征着纯洁和真爱,是表达爱意的经典选择。
- 白色康乃馨:康乃馨代表着爱、魅力和尊敬,白色康乃馨则更显纯洁和优雅。
- 白色百合:百合寓意着纯洁、高贵和神圣,白色百合更是纯洁无暇的象征。
- 绿色郁金香:郁金香是一种优雅的花卉,绿色郁金香则给人一种清新自然的感觉。
- 绿色洋桔梗:洋桔梗的花语是真诚不变的爱,绿色洋桔梗则更显清新和自然。
- 绿色雏菊:雏菊代表着快乐和希望,绿色雏菊则给人一种生机勃勃的感觉。 你可以根据你女朋友的喜好和你们之间的关系,选择一种或多种花来表达你的爱意。 同时,你也可以考虑将这些花与其他绿色植物或白色装饰品搭配在一起,制作成一个美丽的花束或花篮,让你的礼物更加特别和有意义。
显然,改成Zero-Shot之后,大模型的回答更加开放,除了对白色和绿色花朵的推荐,还提出了装饰和搭配的建议,回答的内容更多了。