优化思路:从「技术罗列」转向「价值+场景驱动」

原文档的核心问题是“重技术描述、轻用户感知”,开发者/使用者第一眼看不到「这个项目能解决我的什么问题」「用起来有多爽」,反而被密集的技术细节劝退。以下是优化后的版本,兼顾技术深度和吸引力,更贴合开发者社区的阅读习惯:

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 优化后:

生成错误SQL

安全校验/执行失败

记录错误原因(字段名写错)

调用SQL修复Prompt

生成修复后SQL

二次校验+执行

返回结果/图表

✅ 最多修复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 工程化落地能力 让你的应用能管理、能追踪、能持续优化

🌟 后续计划(和你一起迭代)

  1. 增强评测体系:对接真实LLM+测试库,输出可视化评测报告;
  2. 新增RAG指标口径库:解决“GMV/客单价怎么算”这类业务指标定义问题;
  3. 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,一起把这个项目从“能用”做到“好用”!


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐