
引言
数据查询的“最后一公里”困境
在企业日常运营中,数据散落在 Excel 报表、MySQL、PostgreSQL 等各类存储中。业务人员提出“华东区上季度销量环比增长超过 10% 的门店”“检验合格的都是哪些公司的什么产品”这类问题时,传统路径是:提需求 → 数据工程师写 SQL/Python → 排期开发 → 交付验证。一次简单查询往往耗时数小时甚至数天,数据团队也深陷重复取数的低效循环。
其背后的核心矛盾在于:数据量爆炸增长,但数据获取门槛并未同步降低。
针对结构化数据问答场景,澜舟智能体问数技术提供了一套 NL2Python(面向 Excel)+ NL2SQL(面向数据库) 双引擎方案。本文将从技术架构、评测方法、效果数据、典型错误分析四个维度,完整呈现该方案的设计思路与落地效果。
技术架构总览
澜舟问数系统分为两条技术路线,但共享同一设计哲学:把不确定性降到最低——通过 Schema 校验、元数据增强、模板召回、自验证循环等机制,将自然语言的歧义性逐层收窄,最终输出可执行、可复现的代码与结果。
ExcelQA(NL2Python):
让 Excel 分析自动化
五阶段工程化流程
下图展示了 Excel 问答的五个处理阶段:

用户上传 Excel 后,预处理模块将文件流转换为内存对象,并通过预设的 Excel Schema 进行校验:列名是否匹配、数据类型是否合规、必填字段是否存在、值域范围是否合法。任一条件不满足时,系统立即返回明确的“文件不合法”提示,避免无效计算进入后续环节。合规文件则被提取表、列、值等元数据并持久化。
系统将 Prompt 模板、用户自然语言问题以及阶段一产出的元数据一并送入 LLM。LLM 在此环节扮演“需求翻译官”——将口语化提问(如“找出销量环比增长超过 10% 的门店”)转化为结构化的、带字段名与计算逻辑的形式化描述。
形式化描述传入 NL2Python 模块,一次性生成可执行的 Python 脚本。工程约束如下:
生成的 Python 代码通过 exec() 在沙箱中执行。成功时,标准输出与序列化结果(CSV/JSON)被捕获;失败时,系统捕获报错信息,重新生成代码。
执行结果与用户原问题再次送入 LLM,映射为最终的自然语言答案。同时支持将结果表格自动渲染为图表(折线/柱状/饼图等)。
评测方法
数据集:共 600 条内建测试数据,包含300条简单问题数据和300条困难问题数据。
评估标准:采用 LLM 四分量表打分(0-3 分),以 score ≥ 2 视为正确。
当前效果

DatabaseQA(NL2SQL):
让数据库查询像对话一样自然
四大阶段 + 亮点能力

亮点能力说明:
评测方法
数据集:Falcon(https://github.com/eosphoros-ai/Falcon/tree/main),源自论文 https://arxiv.org/pdf/2510.24762 中的 dev 数据集。包含 28 个数据集、90 张表,共 500 道中文题目(dev 集合中带 ground truth 的 309 条)。
评估标准:同样采用 LLM 四分量表(0-3 分),score ≥ 2 视为正确。核心差异在于评分依据是结果表格而非自然语言答案:
当前效果(优化前后对比)

数据来源:内部评测,基于 Falcon dev 集合(309 条 ground truth)。ours 包含元数据增强、术语对齐、模板召回、CoT、自验证等完整 pipeline。
提升幅度:准确率(≥2 分)从 61.81% 提升至 90.29%(+28.48pp),平均得分从 1.825 提升至 2.6440(+0.8015)。
方案对比:
澜舟vs传统人工取数vs基础 LLM 直出

可落地场景与技术适配要求
可落地场景:
技术适配要求:
总结
澜舟智能体问数技术并非简单调用 LLM 生成代码,而是一套工程化 pipeline——通过 Schema 校验、元数据增强、术语对齐、模板召回、CoT 推理、自验证循环、结果沉淀等机制,将自然语言问答的准确率从基础 LLM 的 60-70% 提升至 95%(Excel)和 90%(复杂数据库跨域场景)。更重要的是,它具备可解释(输出代码与推理链)、可进化(模板正循环)、可落地(沙箱执行,失败重试)的特性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。