项目二:AI 智能体开发
https://cnb.cool/jaguarliu.cool/course/langchain-course
https://cnb.cool/jaguarliu.cool/course/rookie-nl2sql
项目概述
- 目标:构建一套从自然语言到 SQL(NL2SQL)的端到端实战项目,服务训练营教学与学员实操。
- 范围:覆盖需求理解、提示工程、工具集成、SQL生成与校验、结果执行与可视化、评估与迭代。
背景与意义
- 降低门槛:非技术/业务用户可以用中文提问,系统自动生成可执行 SQL,提升数据可访问性。
- 提效分析:缩短“问题→查询→结果”的路径,减少手写 SQL 的时间成本与错误率。
- 业务落地:广泛适用于运营分析、BI自助查询、客服质检、数据探索与问答型分析助理等场景。
为什么要做
- NL2SQL兼具“模型+工具+安全+评估”的系统性,能形成可交付的最小可用产品(MVP)。
- 可复用已有的 SQLite 电商库,快速闭环:自然语言→SQL→结果→评估→优化。
如何实现
核心架构
- 模型层:将自然语言解析为 SQL 意图(表/字段选择、过滤、聚合、排序、连接)。
- 工具层:集成
list_tables、get_table_schema、sql_db_schema、sql_db_query_checker等,提供数据库上下文与安全校验。 - 执行层:在只读通道执行校验后的 SQL,返回结果集。
- 验证层:进行语法/语义检查、字段/表存在性校验、结果数据分布合理性判断。
- 展示层:Notebook 或轻前端展示查询、SQL、日志与可视化图表。
技术路线
- 解析策略:先问再答(多轮澄清),对不明确需求通过 schema 提示与追问减少歧义。
- 提示工程:注入数据库 schema 与示例查询,约束输出仅产出 SQL;要求执行前必须调用校验工具。
- 安全与健壮:只读白名单、拒绝 DML(增删改),启用查询检查器与字段/表白名单;自动从错误信息(如 Unknown column)中重写更正。
- 反馈闭环:错误捕获→分析→重写→再次校验执行;形成稳定的错误处理策略。
- 评估机制:构建 NL→SQL 标注集,衡量可执行率、正确率、覆盖率与耗时。
通过本项目可以学到
- 提示工程与工具协作:让模型“理解数据库”,尊重工具边界,遵循安全校验。
- 数据库 Schema 理解:表、字段、主外键、范式、索引对 SQL 生成与性能的影响。
- 应用工程化:从 Notebook 原型到可复用模块(工具、执行、评估、日志),形成可上线的最小产品。
- 错误处理与鲁棒性:语法错误、字段缺失、歧义查询的处理策略与交互设计。
- 评估与度量:测试用例构建、指标设计、不同提示策略的效果对比。
- 可视化与交互:将查询结果转换为图表与报表,面向业务用户交付。
扩展方向
- 多数据库支持:MySQL/PostgreSQL/云数据仓库,跨库 NL2SQL。
- 语义增强:加入实体词典/领域术语映射,减少歧义。
- 可视化模板:自动选择图表类型(柱状、折线、饼图)与维度聚合。
- 权限与审计:提供数据访问控制与操作日志,满足企业级需求。
- 任务编排:批量 NL2SQL、报表定时生成与订阅。
交付物
- 项目文档:架构、流程、提示策略、安全规则、评估报告。
- 代码模块:工具函数、NL→SQL 生成器、校验执行器、评估脚本。
- 数据与用例:训练/验证查询集,标注 SQL 与预期结果。
- 演示:Notebook 或轻前端,一键跑通的实战展示。