从调一次 API 到造一个产品,中间隔的不是更多的代码,而是对"不确定性"的工程驯服。
一本以项目驱动的方式学习 LangChain v1 的中文技术书。全书 15 章,从基础概念到生产部署,每章围绕可运行的代码示例展开,最终构建一个完整的智能文档助手系统。
本书通过 Netlify 部署,可直接在线阅读。
| 阶段 | 章节 | 主题 |
|---|---|---|
| 基础篇 | 第 1-5 章 | LangChain 生态全景、模型调用、提示词工程、LCEL 管道、中间件与事件流 |
| 应用篇 | 第 6-9 章 | RAG 文档问答、高级检索与智能体、工具调用与结构化输出、多模态应用 |
| 进阶篇 | 第 10-15 章 | LangGraph 状态图、函数式 API 与工作流、多智能体协作、安全护栏、观测评估、生产部署与 MCP |
- 前言 — 本书定位与使用指南
- 第 1 章:LangChain 生态全景与快速入门
- 第 2 章:模型调用——数据怎么进,结果怎么出
- 第 3 章:提示词工程——设计喂给模型的内容
- 第 4 章:LCEL 深度与 Runnable 管道
- 第 5 章:中间件与事件流系统
- 第 6 章:RAG 基础——文档处理与向量检索
- 第 7 章:RAG 进阶——高级检索与智能体驱动
- 第 8 章:工具调用与结构化输出进阶
- 第 9 章:多模态 AI 应用——让智能体"看"和"听"
- 第 10 章:LangGraph 状态图——把智能体的黑箱变成白箱
- 第 11 章:函数式 API 与工作流模式——从并行执行到多智能体协作
- 第 12 章:多智能体协作——从单兵到团队
- 第 13 章:高级安全护栏——从结构化输出验证到运行时隔离
- 第 14 章:LangSmith 观测与评估——从"可靠"到"可度量"
- 第 15 章:生产部署与 MCP 集成——从项目到产品
- 总结与展望
# 克隆仓库
git clone https://github.com/chenyuluoe/projected-based-langchain.git
cd projected-based-langchain
# 安装 Python 依赖
uv sync
# 配置环境变量
cp .env.example .env
# 编辑 .env,填入你的 API Key每章配有可独立运行的 Python 示例,位于 examples/ 目录:
# 运行第 1 章示例
uv run python examples/chapter_01_hello.py
# 运行第 6 章 RAG 示例
uv run python examples/chapter_06_rag.py
# 运行第 12 章多智能体示例
uv run python examples/chapter_12_multi_agent.py# 构建 HTML 输出到 book/
mdbook build
# 启动本地服务器,浏览器自动打开,支持热重载
mdbook serve项目提供 Makefile 封装常用操作:
| 命令 | 说明 |
|---|---|
make setup |
安装 Python 依赖 |
make build |
构建 mdBook |
make serve |
启动本地服务器(热重载) |
make test |
运行 Python 测试 |
make clean |
清理构建产物和虚拟环境 |
.
├── src/ # 章节源文件(Markdown)
│ ├── SUMMARY.md # 目录导航
│ ├── introduction.md # 前言
│ ├── chapter_1.md ~ chapter_15.md # 15 章内容
│ └── conclusion.md # 总结与展望
├── examples/ # 可运行的 Python 代码示例
│ ├── config.py # 公共配置
│ ├── chapter_01_hello.py # 第 1 章示例
│ ├── chapter_02_*.py # 第 2 章示例(7 个)
│ ├── ...
│ └── chapter_15_deployment/ # 第 15 章部署示例(LangGraph Server)
├── book.toml # mdBook 配置
├── pyproject.toml # Python 依赖声明
├── uv.lock # 锁定的依赖树
├── Makefile # 便捷命令
├── netlify.toml # Netlify 部署配置
├── mermaid.min.js # Mermaid 图表渲染
├── mermaid-init.js # Mermaid 初始化脚本
├── .env.example # 环境变量模板
├── WRITING_CRITERIA.md # 撰写准则
└── book/ # 构建输出(gitignored)
| 类别 | 技术 |
|---|---|
| 书籍构建 | mdBook 0.5+ |
| 图表渲染 | Mermaid(通过 mdbook-mermaid 预处理器) |
| Python | 3.12+ |
| 包管理 | uv |
| LLM 框架 | LangChain v1、LangGraph v1 |
| 模型提供商 | OpenAI、Anthropic、Google GenAI、Ollama(本地) |
| 向量数据库 | ChromaDB |
| 观测平台 | LangSmith |
| 部署 | Netlify(书籍)、LangGraph Server(应用) |
| 包 | 版本 | 用途 |
|---|---|---|
langchain |
≥1.0, <2.0 | 核心框架 |
langchain-classic |
≥1.0, <2.0 | 兼容层 |
langchain-openai |
≥1.0, <2.0 | OpenAI 模型集成 |
langchain-anthropic |
≥1.0, <2.0 | Anthropic 模型集成 |
langchain-google-genai |
≥3.0, <5.0 | Google Gemini 集成 |
langgraph |
≥1.0, <2.0 | 状态图与智能体编排 |
langgraph-checkpoint |
≥2.0, <3.0 | 检查点持久化 |
chromadb |
≥0.6, <0.7 | 向量存储 |
tiktoken |
≥0.9, <1.0 | Token 计数 |
langsmith |
≥0.3, <0.4 | 观测与评估 |
python-dotenv |
≥1.1, <2.0 | 环境变量加载 |
pydantic |
≥2.0, <3.0 | 数据验证 |
复制 .env.example 为 .env 并填入你的 API Key:
# 必需:OpenAI API Key(大多数示例需要)
OPENAI_API_KEY=sk-your-key-here
# 可选:Anthropic API Key
ANTHROPIC_API_KEY=sk-ant-your-key-here
# 可选:Google Gemini API Key
GOOGLE_API_KEY=your-key-here
# 可选:LangSmith 追踪
LANGSMITH_API_KEY=lsv2-pt-your-key-here
LANGSMITH_PROJECT=beginning-langchain- 有 Python 基础,想从"调用 OpenAI API"走向"构建生产级 LLM 应用"的开发者
- 不需要机器学习背景,不需要了解 Transformer 内部机制
- 只需要会用 Python 写函数、处理列表和字典、打开终端运行命令
- 项目驱动:每章练习与全书大项目"智能文档助手"挂钩,学完即有可运行的系统
- 原理优先:先讲"为什么这样设计",再讲"怎么做"
- 可运行代码:所有示例均可通过
uv run python直接运行,无需手动配置虚拟环境 - 生产视角:每个 API 调用示例标注预估 token 用量和费用,附生产注意事项
- 术语规范:技术术语首次出现标注英文原文,正文统一使用中文,全文一致
本项目采用 MIT 许可证,详见 LICENSE 文件。