在导购收集到顾客的商品参数偏好后,您可以通过查询商品数据库来返回商品。如果您想通过百炼应用来进行智能商品检索,请参考创建百炼商品检索应用并集成到智能导购中(可选)。
关键代码解释
冰箱导购助理
FRIDGE_GUIDE_AGENT_INSTRUCTION = """你是负责给顾客推荐冰箱的智能导购员。
你需要按照下文中【冰箱的参数列表】中的顺序来主动询问用户需要什么参数的冰箱,一次只能问一个参数,不要对一个参数进行重复提问。
如果用户告诉了你这个参数值,你要继续询问剩余的参数。
如果用户询问这个参数的概念,你要用你的专业知识为他解答,并继续向他询问需要哪个参数。
如果用户有提到不需要继续购买商品,请输出:感谢光临,期待下次为您服务。
【冰箱的参数列表】
1.容量:【300L、400L、500L】
2.冷却方式:【风冷、直冷】
3.高度:【1.5米、1.8米、2米】
如果【冰箱的参数列表】中的参数都已收集完毕,你要问他:“请问您是否确定购买?”,并同时将顾客选择的参数信息输出,如:300L|风冷|1.8米。问他是否确定需要这个参数的冰箱。如果顾客决定不购买,要问他需要调整哪些参数。
如果顾客确定这个参数符合要求,你要按照以下格式输出:
【容量:300L,冷却方式:风冷,高度:1.8米】。请你只输出这个格式的内容,不要输出其它信息。"""
fridge_guide_agent = Assistants.create(
model="qwen-max",
name='冰箱导购',
description='你是一个冰箱导购,你需要询问顾客想要什么参数的冰箱。',
instructions=FRIDGE_GUIDE_AGENT_INSTRUCTION
)
选择不同的 Agent 进行回复
agent_map = {
"意图分类": router_agent.id,
"手机": mobilephone_guide_agent.id,
"冰箱": fridge_guide_agent.id,
"电视机": tv_guide_agent.id
}
def chat(input_prompt, thread_id):
# 首先根据用户问题及 thread 中存储的历史对话识别用户意图
router_agent_response = get_agent_response(agent_name="意图分类", input_prompt=input_prompt, thread_id=thread_id)
classification_result = parse_streaming_response(router_agent_response)
response_json = {
"content": "",
}
# 如果分类识别为其他时,引导用户调整提问方式
if classification_result == "其他":
return_json["content"] = "不好意思,我没有理解您的问题,能换个表述方式么?"
return_json['current_agent'] = classification_result
return_json['thread_id'] = thread_id
yield f"{json.dumps(return_json)}\n\n"
# 如果分类是手机、电视机或冰箱时,让对应的 Agent 进行回复
else:
agent_response = get_agent_response(agent_name=classification_result, input_prompt=input_prompt, thread_id=thread_id)
for chunk in agent_response:
response_json["content"] = chunk
response_json['current_agent'] = classification_result
response_json['thread_id'] = thread_id
yield f"{json.dumps(response_json)}\n\n"
总结
通过以上步骤,您搭建了一个集成了智能导购的网站,可以全天候向顾客提供商品推荐服务。本案例中的架构也适用于智能问诊、求职推荐等场景。
应用于生产环境
为了将智能导购适配到您的产品并应用于生产环境中,您可以:
修改知识库。将您的商品信息作为知识库,同时您也可以在商品参数中添加商品详情页或下单页的链接,方便顾客进行浏览与下单。您也可以通过已有的数据库或其它服务中进行商品检索。
修改源码中的prompt来适配到您的产品中。修改源码的步骤为:
回到应用详情页,在环境详情的最底部找到函数资源,点击函数名称,进入函数详情页。
进入函数详情页后,在代码视图中找到prompt.py、agents.py文件并进行修改。
prompt.py定义了agent的功能以及询问参数的顺序等信息;agents.py创建了agent,以及生成回复的函数。
单击部署代码,等待部署完成即可。
持续改进
建议在正式上线智能导购前,组织业务人员一起参与应用评测,确保智能导购的回复效果符合预期。如果不符合预期,可以通过优化提示词、完善补充私有知识等方法来改进回答效果。
一、部署体验过程中的引导与文档帮助
在开始部署的时,我首先访问了官方提供的文档资源。官方确实提供了详尽的文档支持,从环境准备到具体的配置项设置都有覆盖,文档不仅包含文字说明,还配有直观的图表和实例代码。这使得即使是初次接触此类解决方案的新手也能较为轻松地上手。例如,在创建函数计算应用的过程中,每一步操作都有详细的图示指导,确保不会遗漏任何重要步骤。
然而,在实际部署过程中,我也遇到了一些小问题。最显著的是环境变量设置不当导致的部分功能未能正常启动。尽管通过查阅官方文档以及社区论坛找到了正确的配置方法并解决了问题,但建议官方可以在常见问题解答中增加这类环境配置相关的内容,以进一步提升用户体验。此外,当尝试将模型部署到云端时,由于网络连接不稳定导致上传过程失败,并且在错误日志中未能找到明确的错误信息。
二、对解决方案实践原理和架构的理解
部署完成后,我对本解决方案的实践原理和架构有了较为深刻的理解。该方案采用了Multi-Agent架构设计,系统能够灵活地根据不同的商品类别进行扩展,每个Agent负责特定的任务,这样的设计既清晰又高效。Router Agent负责意图识别和路由,而具体的商品导购Agent则负责与用户的交互和商品参数的收集。这种分工明确的设计使得系统能够更加精准地满足用户需求。特别是利用百炼大模型作为核心算法引擎,能够实现精准的商品推荐和个性化服务,这是非常值得肯定的地方。
不过,在阅读相关文档时发现,关于整个系统的数据流描述稍显不足。对于想要深入了解内部工作机制来说,这部分内容可以更加丰富和完善。比如,更详细地介绍数据如何从客户交互界面流向处理中心,再经过分析后反馈给用户的完整流程。另外,Router Agent在意图分类过程中的算法逻辑和模型训练机制没有详细的阐述,这使得难以评估其在复杂场景下的准确性和适应性。
三、百炼大模型和函数计算的应用
关于百炼大模型和函数计算的应用,官方文档给出了很好的解释。百炼大模型被用来训练和优化商品推荐算法,以提高推荐准确度;而函数计算则用于快速响应前端请求,减少延迟时间。这两个技术点结合得非常好,体现了云计算的优势。但在实际操作中发现,对于非专业开发人员而言,理解这两者之间的关系以及如何正确配置它们可能存在一定难度。例如,在配置函数计算触发器时遇到了一些困惑,经过一段时间的学习后才逐渐掌握了其中的技巧。因此,建议官方可以提供更多面向新手的教学资源,如视频教程或互动式课程,帮助更多人快速入门。
四、应用于生产环境的步骤指导
就生产环境部署方面而言,解决方案提供的步骤指导基本满足了我的需求。它不仅包括了必要的硬件和软件要求,而且还针对不同规模的企业提出了相应的优化建议。这对于希望将此方案应用于实际业务场景中的企业来说是非常有价值的。然而,考虑到现实世界中复杂的网络环境和技术栈差异,我认为还可以进一步加强对于异常情况处理方面的指导。例如,当面对高并发访问时,应该如何调整资源分配策略;或是当出现意外停机故障时,有没有备用恢复计划等。这些都是企业在考虑长期稳定运行时所关心的问题。