字段、指标、枚举值和表关系分散在不同系统。把全部元数据一次性交给大模型,会造成候选空间过大,容易选错表、口径或日期条件。
AGENT · TEXT TO SQL
Data Agent 自然语言查数系统
把业务人员的自然语言问题转化为可校验、可纠错的 SQL,让查数过程不仅能回答,也能解释执行到了哪一步。
01 / CONTEXT
问题与目标
先用检索缩小候选空间,再让大模型生成 SQL;SQL 必须通过数据库校验,失败时携带完整语境进入纠错流程。
02 / SYSTEM
系统如何运转
01 · MODELYAML 元数据写入 MySQL→
02 · RECALLQdrant + Elasticsearch 并行召回→
03 · FILTER表、字段、指标和值多节点过滤→
04 · GENERATE补齐日期与关系后生成 SQL→
05 · VERIFY数据库校验、纠错与异步执行
03 / PRODUCT
从自然语言问题到结构化结果
真实界面展示 Data Agent 如何逐步理解业务问题、召回元数据、生成并校验 SQL,最终以表格返回可直接使用的查询结果。
04 / DECISIONS
三个关键设计决策
按信息类型选择索引
字段和指标的名称、描述、别名进入 Qdrant 做语义检索;枚举值进入 Elasticsearch 做全文索引,分别处理“意思相近”和“值要精确”两类问题。
多节点并行缩小候选空间
关键词抽取后并行召回字段、指标和值,合并并过滤候选表与指标,再补齐关联字段、示例值、日期语境和主外键关系。
让数据库参与纠错
生成 SQL 后先交给数据库校验。失败时把错误、原问题、候选表、指标和日期语境一起交回 LLM 修正,避免只凭语言模型自我判断。
05 / VALIDATION
如何验证结果
- 生成前检查候选表、指标和日期上下文是否完整。
- 生成后通过数据库校验捕获语法、字段和类型错误。
- 失败时保留错误语境进入纠错节点,再执行修正后的 SQL。
- FastAPI/SSE 返回每个阶段和最终结果,Vue 3 界面承接交互。
STACK
PythonLangGraphFastAPIMySQLQdrantElasticsearchSQLAlchemyVue 3
KEEP EXPLORING
下一项目 · 量化研究 →

