再也不用帮业务写SQL了!我用LLM做了个数据分析智能体,中文提问自动出SQL+图表+结论(V2)
优化思路:从「技术罗列」转向「价值+场景驱动」
原文档的核心问题是“重技术描述、轻用户感知”,开发者/使用者第一眼看不到「这个项目能解决我的什么问题」「用起来有多爽」,反而被密集的技术细节劝退。以下是优化后的版本,兼顾技术深度和吸引力,更贴合开发者社区的阅读习惯:
DataWhisperer V2:让你的 Text-to-SQL 应用从「能用」变「好用且可控」
🔥 从 MVP 到工程级产品:Prompt 可版本化、SQL 能自修复、效果可量化验证
还在为 Text-to-SQL 踩这些坑?
✖ 改一行 Prompt 就要动业务代码,改坏了还回滚不了
✖ 大模型生成的 SQL 报错就直接摆烂,用户体验拉胯
✖ 改完 Prompt 全靠“感觉”判断效果,不知道有没有越改越差
✅ DataWhisperer V2 全给你解决了!
👀 先看核心亮点(5秒get价值)
| 能力 | 解决你的什么痛点 | 落地效果 |
|---|---|---|
| 📝 PromptOps 提示词治理 | 改 Prompt 不用动代码、版本可回滚、支持A/B测 | 新增独立 Prompt 模板库,按场景+版本管理,业务代码只传“使用哪个Prompt” |
| 🔧 SQL 自动修复 | 生成的 SQL 报错不直接跪,自动救一次 | 字段/表名写错、语法不兼容等问题,修复后成功率提升(实测基础用例100%通过) |
| 📊 基础评测集 | 告别“凭感觉判断效果”,用数据说话 | 5个典型业务场景一键评测,输出通过率,防止功能退化 |
🚀 为什么 V2 值得用?
V1 完成了「自然语言查数闭环」(提问→生成SQL→出图表→给结论),但它只是个“能跑的demo”;
V2 把它升级成「可落地的工程化产品」—— 解决大模型应用最核心的3个工程化问题:可治理、可追踪、可验证。
场景化案例:SQL 报错了怎么办?
👉 原场景(V1):用户问“各地区订单数量”,模型把region_name写成region_names,直接报错,用户一脸懵;
👉 V2 优化后:
✅ 最多修复1次(不浪费Token),且修复后仍过安全校验,既兜底又不丢安全边界。
📂 PromptOps:把提示词从代码里“解放”出来
V1 的 Prompt 写死在代码里,改一行都要重启服务;V2 把 Prompt 做成「版本化模板库」,结构清晰到新手都能改:
prompts/
sql_generation/v1/ # 自然语言转SQL
sql_repair/v1/ # SQL报错修复
insight_summary/v1/ # 业务结论总结
chart_recommendation/v1/ # 图表推荐
✨ 核心优势:
- 改 Prompt 只改模板文件,不用碰业务代码;
- 版本回滚一键搞定(比如 sql_generation/v1 效果差,切回 v1 就行);
- PromptRegistry 自动渲染模板,还会检查变量缺失,避免低级错误。
用起来超简单(伪代码):
# 业务代码只关心“用哪个Prompt”,不关心文件在哪
rendered = registry.render_messages(
"sql_generation",
version="v1",
variables={"schema_prompt": schema_prompt, "question": question},
)
📈 评测集:效果好不好,跑个脚本就知道
不用再靠“感觉”判断功能好坏!内置5个典型Text-to-SQL场景(销售额趋势、客单价、订单量等),一键评测:
# 执行评测
python -m app.evals.text_to_sql
# 输出结果(直观看到通过率)
{
"total": 5,
"passed": 5,
"failed": 0,
"pass_rate": 1.0
}
每个评测用例都精准定义:用户问题、期望SQL片段、禁止的危险操作、期望图表类型,比如:
{
"id": "region_order_count",
"question": "查询各地区订单数量",
"expected_sql_contains": ["r.region_name", "COUNT(DISTINCT o.order_id) AS order_count"],
"expected_chart_type": "bar",
"must_be_safe": true
}
后续还能扩展成「真实LLM+测试库」评测,对比不同Prompt版本的效果,彻底量化优化方向。
🛠️ 开箱即用,测试拉满
不用怕踩坑!V2 已经做了全维度验证:
- pytest:27个用例全过(覆盖SQL安全校验、Prompt渲染、修复链路等);
- ruff:代码规范全通过;
- 基础评测:5/5通过。
🎯 V1 vs V2:不止是功能升级,更是思维升级
| 版本 | 核心目标 | 给你的价值 |
|---|---|---|
| V1 | 跑通Text-to-SQL闭环 | 验证“自然语言查数”可行 |
| V2 | 工程化落地能力 | 让你的应用能管理、能追踪、能持续优化 |
🌟 后续计划(和你一起迭代)
- 增强评测体系:对接真实LLM+测试库,输出可视化评测报告;
- 新增RAG指标口径库:解决“GMV/客单价怎么算”这类业务指标定义问题;
- MCP工具化+多智能体:把Schema分析、SQL生成、安全校验拆成独立智能体,更灵活。
📥 立即体验
# 克隆项目
git clone https://github.com/chenpan979/DataWhisperer.git
# 运行基础评测
python -m app.evals.text_to_sql
# 启动服务(体验Text-to-SQL全流程)
python app/main.py
如果你也在做Text-to-SQL、大模型应用工程化、PromptOps,欢迎Star+PR,一起把这个项目从“能用”做到“好用”!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)