20 掌柜问数 — Text2SQL 智能体全栈系统
学习理念:这是一个 "自然语言→SQL" 智能体项目,核心学习 LangGraph 工作流编排 + 元数据多路召回(MySQL+Qdrant+ES)的组合用法。与第19章掌柜智库都是 LangGraph 项目,但本题型不同:掌柜智库是知识图谱 RAG,掌柜问数是 Text2SQL。两章对比学习效果最佳。
全文阅读路线:README(总览 5min)→ 01(环境搭建 10min)→ 02(基础设施 15min)→ 03(元数据构建 15min)→ 04→05(智能体上下 20min)→ 06(FastAPI部署 10min)→ 07(回顾 5min)
本节 AI 替代率:~60% | 人工干预率:~40%
| 角色 | 能力范围 |
|---|---|
| 🤖 AI 擅长 | 生成 LangGraph 节点骨架、Qdrant/ES 客户端代码、prompt 模板、架构图 |
| 👤 人类需理解 | 12 节点编排顺序与条件边逻辑、三存储协同设计、LLM 扩展关键词→检索的双阶段模式 |
零、0→1 构建路线图
6 天的累积关系
每篇文档对应
| 文档 | 对应课程 | 新增节点数 | 核心知识点 |
|---|---|---|---|
| 📄 READEME.md(你在这里) | 总览 | — | 🔴🟢 全栈架构 |
| 📄 01_项目概述与环境搭建.md | day01 | 0 | 🔴 数仓星型模型 / 元数据知识库三元组 |
| 📄 02_基础设施搭建.md | day02 | 0 | 🔴 Qdrant / ES / 🔵 SQLAlchemy Async / Loguru |
| 📄 03_元数据知识库构建.md | day03 | 0 | 🔴 构建脚本 / 实体+Model+Mapper / 三存储写入 |
| 📄 04_智能体工作流编排(上).md | day04 | +7 | 🔴 LangGraph StateGraph / 三路并行召回 / LLM扩展关键词 |
| 📄 05_智能体工作流编排(下).md | day05 | +5 | 🔴 合并+过滤+生成/验证/校正/执行 / 条件边 |
| 📄 06_FastAPI部署与前端.md | day06 | 0 | 🔴 SSE / 依赖注入 / 🔵 FastAPI 生命周期 |
| 📄 07_完整架构回顾.md | 最终 | — | 完整 UML / 代码索引 / 企业对标 |
一、知识重复标记总表
以下标注每个知识点在整个课程中的出现次数,帮助你在阅读各阶段文档时决定投入多少精力:
| 知识点 | 首次出现 | 本项目的角色 | 第几次学 | 建议 |
|---|---|---|---|---|
| LangGraph StateGraph | Ch18 | 12 节点 Text2SQL 编排 | 🔵 第 3 次 | 只看架构图差异,不看 API 语法 |
| FastAPI 路由/依赖注入 | Ch16 → Ch17 | API 层 | 🔵 第 3 次 | 了解即可 |
| SSE 流式输出 | Ch17 | 节点进度推送 | 🔵 第 2 次 | 了解即可 |
| SQLAlchemy Async | 🔥 全新 | Meta + DW 双数据库 | 🔴 第 1 次 | 重点学,首次全异步 ORM |
| Qdrant 向量数据库 | 🔥 全新 | 字段/指标语义检索 | 🔴 第 1 次 | 完整展开 |
| Elasticsearch 全文检索 | 🔥 全新 | 字段取值全文检索 | 🔴 第 1 次 | 完整展开 |
| Text Embedding Inference | 🔥 全新 | 本地部署 bge-large-zh | 🔴 第 1 次 | 了解配置即可 |
| OmegaConf 配置管理 | 🔥 全新 | 分层配置加载 | 🔴 第 1 次 | 了解即可 |
| Loguru 日志 | 🔥 全新 | 统一日志管理 | 🔴 第 1 次 | 了解即可 |
| jieba 中文分词 | Ch12 | 关键词抽取 | 🟢 第 2 次 | 了解即可 |
| yaml 配置 | Ch16 | meta_config 定义 | 🟢 第 2 次 | 了解即可 |
| pydantic | Ch16 | QuerySchema | 🟢 第 2 次 | 了解即可 |
二、最终全栈架构图(先剧透)
三、学习路径
| 优先级 | 时间 | 内容 | 说明 |
|---|---|---|---|
| 🔥 | 5 min | 📄 READEME.md 通读 | 必读——决定哪些跳过、哪些重点 |
| 🔥 | 10 min | 📄 01_项目概述与环境搭建.md | 🔴 数仓模型 + 元数据知识库概念 |
| 🔥 | 15 min | 📄 04_智能体工作流编排(上).md | 🔴 LangGraph 三路并行召回 |
| 🔥 | 20 min | 📄 05_智能体工作流编排(下).md | 🔴 合并/过滤/生成/验证/校正/执行 |
| 🟡 | 15 min | 📄 02_基础设施搭建.md | 🔴 Qdrant + ES 客户端管理 |
| 🟡 | 15 min | 📄 03_元数据知识库构建.md | 🔴 构建脚本 + 实体设计 |
| 🟠 | 10 min | 📄 06_FastAPI部署与前端.md | 🔵 主要为重复知识 + SSE 重点 |
| 🟠 | 5 min | 📄 07_完整架构回顾.md | 最终回顾用 |
| 🔴 | — | 所有视频 | 跳过 |
四、AI 协作指南
本文档看完后,以下问题直接问 AI:
Q: "帮我生成一个 Qdrant 的 column_qdrant_repository 代码,包含 ensure_collection / upsert / search 三个方法"
Q: "LangGraph 的 StateGraph 中如何实现条件边(validate_sql → correct_sql 或 execute_sql)?"
Q: "Elasticsearch 的 ik 分词器如何安装?在 docker-compose 里怎么配置?"
Q: "Text Embedding Inference 部署 bge-large-zh-v1.5 的 docker run 命令是什么?"
Q: "对比 Qdrant 和 Milvus,在元数据检索场景哪个更合适?"
AI 能做的:
- 生成每个节点的完整代码骨架(含流式 writer + try/except)
- 生成 docker-compose.yml 配置(mysql/es/qdrant/embedding)
- 生成 7 个 .prompt 文件的模板内容
- 解释 Qdrant 的 VectorParams + PointStruct + query_points API
- 将 LangChain 的 PromptTemplate 改写为其他框架版本五、附录:原始资料索引
| 对应课程 | 网盘路径 |
|---|---|
| day01(环境搭建) | E:\...\20_掌柜问数\4.视频\day01_环境及基础设置搭建\ |
| day02(基础设施) | E:\...\20_掌柜问数\4.视频\day02_基础设施搭建\ |
| day03(元数据构建) | E:\...\20_掌柜问数\4.视频\day03_元数据知识库构建\ |
| day04(智能体上) | E:\...\20_掌柜问数\4.视频\day04_智能体工作流编排\ |
| day05(智能体下) | E:\...\20_掌柜问数\4.视频\day05_智能体工作流编排\ |
| day06(FastAPI) | E:\...\20_掌柜问数\4.视频\day06_FastAPI项目部署\ |
| 完整代码 | E:\...\20_掌柜问数\3.代码\完整代码\data-agent\ |
| 原始笔记 | E:\...\20_掌柜问数\1.笔记\尚硅谷大模型项目之掌柜问数.md |
| Docker 资料 | E:\...\20_掌柜问数\2.资料\ |