项目背景: 传统数据查询依赖人工撰写SQL,业务人员需反复沟通需求、等待开发排期,单次分析耗时达小时级,无法满足突发疫情下的快速响应需求。考虑实现一种通过自然语音进行问数,如广西省的人口数有多少,湖北武汉8月份的就诊数有多少。近一个月武汉的传染病报卡数排名。通过使用AI技术,后台自动生成sql语句查询目标库,查询结果结合预设的模版最终返回问数结果。
核心职责与技术实现:
整体架构设计:基于Dify流程编排平台 + deepseek-R1大模型 + 向量数据库(Milvus) + 虚拟人播报,构建Text-to-SQL智能问数系统,实现自然语言到专业数据的端到端转化。
多工具协同调度机制:设计Agent工具调用链路,依次执行——① 元数据检索工具:查询数据字典与表结构定义,定位目标表及字段映射关系;② SQL生成工具:基于deepseek-R1推理生成可执行SQL(含聚合、多表JOIN、时间窗口等复杂逻辑);③ SQL执行工具:通过安全连接池执行SQL并返回结果集;④ 结果解读工具:将数据结果结合业务语境进行专业分析;⑤ 虚拟人播报工具:调用虚拟人SDK生成语音+口型同步播报视频,完成问数闭环。
RAG增强与Few-shot优化:向量数据库中存储历史常见问数与对应SQL模板的Embedding,检索Top-k相似案例作为上下文示例注入,提升复杂查询场景下的SQL准确率。
效果验证:在某省疾控中心项目中,基于未见过的复杂查询测试集(含多表关联、嵌套子查询),准确率达80%+,较通用大模型(GPT-4直接生成SQL)相对提升35%以上,平均响应时间由人工小时级压缩至分钟级。