引言
随着大语言模型(LLM)的爆发,ChatBI(对话式商业智能)成为数据分析领域的热门方向。用户仅需用自然语言提问,系统即可自动生成SQL并返回可视化结果。在众多技术路线中,NL2DSL2SQL(自然语言 → 领域特定语言 → SQL) 因其在可控性、准确性和可维护性上的优势,正被越来越多的产品采用。本文将梳理采用该路线的典型ChatBI产品,分析其市场成熟度,并探讨技术开发中的关键点。
一、什么是NL2DSL2SQL?
- NL2DSL:将用户自然语言问题转化为领域特定语言(DSL)。DSL通常由产品自定义,用于描述查询意图、指标、维度、过滤条件等,例如JSON或类SQL的结构化表达。
- DSL2SQL:将DSL进一步翻译为可执行的SQL,由底层查询引擎执行。
相比直接NL2SQL,该路线优势明显:
- 降低歧义:DSL作为中间层,约束了语义空间,LLM只需生成结构化的中间表示,减少直接生成复杂SQL的语法错误。
- 易于校验与优化:DSL可被人工审查、修改,并可注入业务规则(如指标口径、权限)。
- 与语义层解耦:DSL可与现有语义模型(如LookML、Cube.js)对接,复用已有指标定义。
二、采用该路线的主要产品及成熟度
目前,严格公开宣称“NL2DSL2SQL”的产品并不多,但许多ChatBI在架构上实际采用了类似思想。以下基于公开资料和行业调研归纳典型代表:
1. 网易有数 ChatBI
- 技术路线:借助自研的NL2DSL引擎,将问题转为“查询DSL”,再基于语义层生成SQL。DSL包含指标、维度、过滤、排序等元素。
- 市场成熟度:已在网易内部及多个外部客户落地,支持多轮对话、自动纠错,成熟度较高,属于国内第一梯队。
2. 数势科技 SwiftAgent
- 技术路线:采用“指标平台+NL2DSL”架构,用户问题先映射到指标平台的DSL(指标、维度、时间范围等),再生成SQL查询底层数据仓库。
- 市场成熟度:专注金融、零售等行业,产品化程度高,已获得多家头部客户,成熟度中等偏上。
3. 观远数据 ChatBI
- 技术路线:基于“语义层+LLM”实现,先将自然语言转为观远特有的分析DSL(类似JSON),再解析为SQL。DSL支持复杂的计算逻辑和权限控制。
- 市场成熟度:在零售、消费行业有较多案例,产品迭代较快,成熟度中等。
4. 微软 Power BI Copilot
- 技术路线:虽然官方未明确使用“NL2DSL2SQL”术语,但其架构包含“语义模型”层。Copilot将用户问题转为对语义模型的操作(可视为一种DSL),再由DAX或SQL执行。可认为是该路线的变体。
- 市场成熟度:依托Power BI庞大生态,已全面商用,成熟度极高,但中文场景支持相对较弱。
5. Tableau Pulse / Ask Data
- 技术路线:Ask Data将自然语言转为可视化查询(VizQL),VizQL可视为一种DSL,再生成底层查询。Pulse则更强调指标监控。
- 市场成熟度:全球范围内成熟度高,但Ask Data已逐步被Pulse取代,且对复杂SQL的支持有限。
6. 百度 Sugar BI ChatBI
- 技术路线:基于文心大模型,先解析为查询意图DSL,再生成SQL。强调与百度智能云生态集成。
- 市场成熟度:在国内有一定客户基础,成熟度中等。
7. 其他
- 帆软 FineChatBI:采用“ FineDSL ”中间层,支持指标、维度、过滤等,已发布多个版本,成熟度逐步提升。
- 火山引擎 DataLeap ChatBI:内部使用NL2DSL2SQL,结合数据地图和语义层,目前主要在字节内部及部分外部客户试用。
三、市场成熟度总览
| 产品 | 技术路线明确度 | 商用程度 | 行业覆盖 | 成熟度评级 |
|------|--------------|---------|---------|-----------|
| 网易有数 ChatBI | 高 | 广泛商用 | 多行业 | 高 |
| 数势科技 SwiftAgent | 高 | 商用 | 金融、零售 | 中高 |
| 观远数据 ChatBI | 中高 | 商用 | 零售、消费 | 中 |
| Power BI Copilot | 变体 | 全球商用 | 全行业 | 极高 |
| Tableau Pulse | 变体 | 全球商用 | 全行业 | 高 |
| 百度 Sugar BI | 中 | 商用 | 国内多行业 | 中 |
| 帆软 FineChatBI | 中 | 逐步商用 | 国内多行业 | 中 |
| 火山引擎 DataLeap | 高 | 内部+试用 | 互联网 | 中低 |
NL2DSL2SQL路线在国内市场已进入商业化早期,头部产品在特定行业有标杆案例;国际市场则多以大厂生态的变体形式存在,成熟度更高但技术术语不统一。
四、技术开发关键点
若企业计划自研采用该路线的ChatBI,需重点关注以下环节:
1. DSL设计
- 需平衡表达力与简洁性。DSL应覆盖指标、维度、过滤、排序、时间粒度、同环比等常见分析操作。
- 建议采用JSON Schema,便于LLM生成和代码校验。
2. NL2DSL的Prompt工程与微调
- 使用Few-shot示例引导LLM输出合法DSL。
- 可基于业务数据微调小型LLM(如7B模型),提升意图识别准确率。
- 引入意图澄清机制,多轮对话中补全缺失信息。
3. DSL2SQL的编译器
- 将DSL转换为SQL时,需适配不同数据库方言(MySQL、PostgreSQL、ClickHouse等)。
- 支持语义层映射:例如DSL中的“销售额”自动替换为SQL中的
SUM(price*qty)。
- 内置SQL优化器,避免全表扫描。
4. 语义层与元数据管理
- 构建统一的指标平台,定义原子指标、派生指标、维度、权限。
- DSL应引用语义层中的唯一ID,而非硬编码表名。
5. 结果校验与反馈闭环
- 对生成的DSL进行语法和语义校验(如指标是否存在)。
- 引入用户反馈按钮(“结果是否正确”),持续优化模型。
6. 性能与缓存
- 常用问题的DSL可缓存,避免重复LLM调用。
- 对LLM进行异步调用和流式输出,提升交互体验。
五、
NL2DSL2SQL在ChatBI中正成为一种务实的选择:既利用了LLM的语义理解能力,又通过DSL中间层保证了可控性和可维护性。目前,国内市场以网易有数、数势科技等为代表的产品成熟度较高,而国际巨头如微软、Tableau则以变体形式实现了大规模商用。技术开发的核心挑战在于DSL设计、语义层建设与LLM调优——这绝非纯算法问题,而是工程、数据与业务的深度结合。随着语义层标准化和LLM能力提升,该路线有望成为ChatBI的主流架构。