在本次实战中,我们将开发一个 AI 运营助手,它能根据用户的需求进行推理和生成答案。将在用户提出花卉选择需求时,根据事先定义的思维链模板进行推理,并给出最合适的答案。
项目需求
作为一个为花店电商公司工作的 AI 助手,它的目标是帮助客户根据他们的喜好做出明智的决定。具体需求如下:
- 理解客户的需求。
- 按部就班的思考,考虑各种鲜花的涵义。
- 根据客户的需求,给出最符合逻辑的花卉推荐。
- 需要向客户解释推荐的原因。
实现思路
为了实现运营助手,我们可以按照以下步骤进行:
- 定义思维链模板:设计思维链模板,用于指导运营助手在用户提出需求时进行推理和生成答案。
- 编写代码逻辑:根据思维链模板编写代码逻辑,实现运营助手的核心功能。
- 测试和优化:测试运营助手功能,并根据测试结果进行优化和改进。
示例对话及代码实现
针对这次的需求,我设计了下面这样的思维链模板。
示例 1:
人类:我想找一种象征爱情的花。
AI:首先,我理解你正在寻找一种可以象征爱情的花。在许多文化中,红玫瑰被视为爱情的象征,
这是因为它们的红色通常与热情和浓烈的感情联系在一起。因此,考虑到这一点,我会推荐红玫瑰。
红玫瑰不仅能够象征爱情,同时也可以传达出强烈的感情,这是你在寻找的。
示例 2:
人类:我想要一些独特和奇特的花。
AI:从你的需求中,我理解你想要的是独一无二和引人注目的花朵。兰花是一种非常独特并且颜色鲜艳的花,
它们在世界上的许多地方都被视为奢侈品和美的象征。因此,我建议你考虑兰花。
选择兰花可以满足你对独特和奇特的要求,而且,兰花的美丽和它们所代表的力量和奢侈也可能会吸引你。
下面是示例代码,实现了运营助手的核心功能:
#创建聊天模型
from langchain_openai import ChatOpenAI
llm=ChatOpenAI(
openai_api_key='替换为你的API密钥',
base_url='https://api.chatanywhere.tech/v1',
model='gpt-3.5-turbo',
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_trmplate="{question}"
human_prompt=HumanMessagePromptTemplate.from_template(human_trmplate)
#将以上所有信息结合为一个聊天提示
chat_prompt= ChatPromptTemplate.from_messages([system_prompt_role,system_prompt_cot,human_prompt])
prompt = chat_prompt.format_prompt(question="我想为我的女朋友购买一些花。她喜欢粉色和紫色。你有什么建议吗?")
#接收用户的询问,返回回答结果
response = llm.invoke(prompt)
print(response)
注意要点
- 设置 temperature=0 可以让模型生成更确定性的回答,即输出更倾向于最可能的结果。
- 定义 CoT 模板,其中包括了 AI 的角色和目标描述、思考链条以及遵循思考链条的一些示例,显示了 AI 如何理解问题,并给出建议。
总结
在本次实战中,我们开发了一个 AI 运营助手,它能根据用户的需求进行推理和生成答案。 能够按部就班地思考,理解用户的需求,并给出最合适的花卉推荐。