技术实践

淘天以SQL知识库和DSL构建离线Text2SQL链路

应用与实践上下文与知识检索增强知识库结构化分析、预测与决策

概述

最初的简单做法是写提示词告知 LLM 有哪些表和字段并附业务知识直接生成 SQL,在 qwen 系列 max 参数模型上人工评测已能取得 50% 以上正确回答,但存在三类问题:数据表描述膨胀快、容易把提示词与 message 列表撑到超限并持续拉低性能。LLM 直接输出 SQL 缺少中间文字过程,遇到多表关联、复杂函数处理与分组开窗(top n per group)等稍复杂取数逻辑就失效。 用户问法多变(换词序或同义词)会放大不确定性。据此改造为:表结构统一格式存入知识库并优化分片,把提示词膨胀问题转为相关表结构召回问题。另建样例 SQL 知识库,用相关表的样例 SQL 显著提升准确率,转为 RAG 召回准确性问题。允许 LLM 先把推理过程输出、最后给出 SQL,再由固定程序文字处理明确 SQL、保证语法正确。 把用户输入先转成易于 LLM 理解的 DSL 描述(明确查询字段、条件、时间范围,缺失则用默认或要求补充)。知识库数据来自钉钉文档,数据表 schema 主要维护在钉钉文档中并每日更新向量,经定义切分规则与维护文档格式后召回分片具有清晰的 schema 文本介绍。图表生成侧,把 markdown 表格查询结果交给 LLM 转成固定格式 JSON(该任务准确率高),再由专门前端工程渲染成可交互图表,前端工程是用 vibe coding 让 AI 做出的。