立项背景和目标:
某持牌金融机构的客服团队面临夜间及节假日咨询量激增、人工排班困难的问题。目标是从零搭建一个以金融问答为核心的智能对话机器人,实现7×24小时自动接待,覆盖基金查询、保险咨询、理财产品推荐等高频场景,问答准确率目标设定为90%以上。
软件功能、核心功能模块介绍:
系统包含四个核心模块。(1)自然语言理解(NLU)模块:对用户问题进行意图识别和槽位提取,支持50+种金融问答场景的分类。(2)对话管理(DM)模块:基于规则+机器学习的状态机管理多轮对话上下文。(3)自然语言生成(NLG)模块:基于微调后的中文预训练模型生成回答文本。(4)语音通道模块:支持WebSocket双向通信,实现语音快速问答能力。
业务流程、功能路径描述:
用户通过微信公众号或App端输入问题(文字或语音),NLU模块进行意图识别和实体提取,DM模块判断当前对话状态(是否需追问、是否需查数据库等),检索知识库或调用业务API获取答案,NLG模块生成最终回复并返回给用户。多轮对话场景(如理财产品筛选)通过状态机维护上下文完成。
整体架构和设计思路:
采用分层架构:接入层(FastAPI + WebSocket)处理多渠道请求;逻辑层(Transformers + PyTorch)运行NLU和NLG推理,模型使用开源中文预训练模型(如ChatGLM3-6B)进行LoRA微调;数据层使用Redis存储对话状态(设置TTL自动过期),Milvus向量库检索金融知识文档。整体部署在Docker容器中,通过Nginx负载均衡。
“我”的负责模块和结果:
本人完成对话管理模块的开发和模型微调工作。负责设计多轮对话的状态机流转逻辑、编写50+种场景的对话模板、对基座模型进行金融领域语料的LoRA微调。成果:问答准确率达到92%,平均响应时间< 1.5秒;系统上线后替代3名人工客服的夜间及节假日值班工作。
“我”遇到的难点、坑和解决方案:
难点:金融问答涉及大量实时数据(如实时净值、收益率),模型无法感知时效性。解决方案:引入API调用机制,在NLU识别到“查询净值”“查询收益率”等强时效性意图时,DM模块不依赖模型生成,转而调用业务中台的实时数据接口,将数据格式化后返回给用户,确保数据准确性和实时性。