在langchain实战课,作者使用了GPT4等进行API的调用,但是由于多种原因,使用了豆包API调用,在本文及接下来的序列文章将尽力还原读者代码和意图,并且交流在代码细节中的运用以及debug,与大家分享。此次针对实现聊天客服机器人.
目的:聊天机器人可以回答顾客的问题通过以下途径:直接通过LLM调用回答;先在RAG中调用再次回答;通过积累的memory(过往聊天记录)进行回答。
这个项目的具体技术实现步骤:
第一步: 通过LangChain的ConversationChain,实现一个最基本的聊天对话工具。
第二步: 通过LangChain中的记忆功能,让这个聊天机器人能够记住用户之前所说的话。
第三步: 通过LangChain中的检索功能,整合易速鲜花的内部文档资料,让聊天机器人不仅能够基于自己的知识,还可以基于易速鲜花的业务流程,给出专业的回答。
第四步(可选): 通过LangChain中的数据库查询功能,让用户可以输入订单号来查询订单状态,或者看看有没有存货等等。
第五步: 在网络上部署及发布这个聊天机器人,供企业内部员工和易速鲜花用户使用。
在上面的 5 个步骤中,我们使用到了很多LangChain技术,包括提示工程、模型、链、代理、RAG、数据库检索等。
思考题:
-
对易速鲜花Chatbot的全面改进建议: 首先在架构层面引入基于BERT的意图识别系统,将用户问题准确分类到订单查询、产品咨询、投诉建议等类别。在检索系统方面,采用Milvus向量数据库存储文档嵌入向量,结合语义相似度打分提升RAG检索准确度。引入基于Redis的对话状态管理,跟踪多轮对话上下文,实现更自然的交互。集成百度AI开放平台的情感分析API,根据用户情绪动态调整回复语气。建立规则引擎,当置信度低于阈值或检测到负面情绪时自动转人工。使用ElasticSearch构建商品、文章等信息的全文检索,支持拼音、同义词等模糊匹配。
-
基于Flask框架的Chatbot UI重构方案: 后端使用Flask+WebSocket实现全双工通信,支持实时消息推送和typing状态展示。集成Flask-Login处理用户认证,使用Redis存储会话信息。实现文件上传接口支持图片发送,订单查询接口对接数据库。前端采用React组件化开发,使用Material-UI组件库构建现代化界面,引入打字机效果的动画组件优化体验。快捷回复模块支持热门问题一键发送,并可后台配置。WebSocket连接状态管理,自动重连机制,消息排队与重发确保可靠通信。响应式布局适配移动端。