整本书采用“由浅入深、理论+实战、模块化递进”的思路,覆盖从环境搭建、核心组件、RAG 构建、Agent 开发到部署监控的全生命周期。每章标题清晰聚焦,每个小节内容具体、可操作、适合初学者和中级开发者。
《深入浅出 LangChain 应用》全书目录
第1章 初识 LangChain:大模型时代的开发脚手架
1.1 什么是 LangChain?为什么需要它?
1.2 LangChain 的发展历程与生态全景
1.3 LangChain 与其他框架对比(LlamaIndex、Haystack 等)
1.4 LangChain 的核心设计理念:“最后一公里”问题
1.5 Python 为何是 LangChain 的首选语言
1.6 官方文档与社区资源快速导航
1.7 本书学习路线与配套代码说明
1.8 动手体验:你的第一个 LangChain 程序
第2章 开发环境搭建与基础配置
2.1 Python 环境准备(3.9+ 推荐)
2.2 安装 LangChain 及其核心包(langchain-core, langchain-community)
2.3 配置主流 LLM 的 API 密钥(OpenAI、DeepSeek、Qwen、Ollama)
2.4 使用 .env 文件管理敏感信息
2.5 虚拟环境与依赖隔离(venv / conda)
2.6 安装常用向量数据库(Chroma、FAISS、Pinecone)
2.7 Jupyter Notebook 与 VS Code 调试技巧
2.8 【实战】验证环境:调用本地/云端大模型
第3章 LangChain 核心抽象:Models 与 Messages
3.1 LLM 与 ChatModel 的区别与适用场景
3.2 使用 OpenAI、Anthropic、Hugging Face 模型
3.3 本地部署模型集成(Llama.cpp、vLLM、Ollama)
3.4 消息类型详解:HumanMessage、AIMessage、SystemMessage
3.5 控制生成行为:temperature、max_tokens、stop sequences
3.6 流式输出(Streaming)实现与前端对接
3.7 异步调用(async/await)提升性能
3.8 【实战】构建多模型切换的问答接口
第4章 提示工程基础:Prompt Templates
4.1 什么是提示模板?为何要模板化?
4.2 使用 PromptTemplate 构建静态提示
4.3 ChatPromptTemplate 与多轮对话结构
4.4 动态变量注入与格式化(f-string 替代方案)
4.5 少样本提示(Few-shot Prompting)模板设计
4.6 示例选择器(ExampleSelector)自动匹配上下文
4.7 提示模板的序列化与版本管理
4.8 【实战】构建可复用的客服话术模板库
第5章 输出解析:让模型返回结构化数据
5.1 为什么需要 OutputParser?
5.2 ListOutputParser 与 CommaSeparatedListOutputParser
5.3 JSONOutputParser 解析复杂对象
5.4 PydanticOutputParser:强类型数据校验
5.5 自定义 OutputParser 实现特殊格式
5.6 RetryOutputParser 自动修复格式错误
5.7 结合 LLM 调用链自动解析
5.8 【实战】从自由文本中提取订单信息(JSON Schema)
第6章 链(Chains):构建可组合的工作流
6.1 什么是 Chain?链式思维的核心
6.2 LLMChain:最简单的调用链
6.3 SequentialChain:多步骤串行处理
6.4 TransformChain:数据预处理与后处理
6.5 RouterChain:条件分支与动态路由
6.6 使用 LCEL(LangChain Expression Language)重写链
6.7 链的嵌套与复用技巧
6.8 【实战】构建“翻译 → 总结 → 情感分析”三步链
第7章 文档加载与文本分割
7.1 支持的文档格式(PDF、Word、HTML、Markdown 等)
7.2 使用 Unstructured、PyPDF、Docx2txt 加载器
7.3 自定义 Document Loader 开发
7.4 文本分割策略:CharacterTextSplitter vs RecursiveCharacterTextSplitter
7.5 按语义边界分割(基于句子、段落)
7.6 处理代码文件与表格数据
7.7 元数据注入:保留来源、页码、章节信息
7.8 【实战】批量加载公司制度文档并切块
第8章 向量嵌入与语义表示
8.1 什么是 Embedding?为何用于检索?
8.2 使用 OpenAI、Hugging Face、Sentence-Transformers 生成嵌入
8.3 本地嵌入模型部署(BGE、text2vec)
8.4 嵌入维度、距离度量(余弦相似度)
8.5 缓存嵌入结果避免重复计算
8.6 批量嵌入与性能优化
8.7 嵌入质量评估方法
8.8 【实战】为技术文档生成高质量向量表示
第9章 向量数据库集成
9.1 向量数据库选型指南(Chroma、FAISS、Pinecone、Milvus)
9.2 Chroma 快速上手:内存模式 vs 持久化
9.3 FAISS 本地高效检索
9.4 Pinecone 云服务配置与使用
9.5 向量存储的元数据过滤(metadata filtering)
9.6 相似性搜索 vs MMR(最大边际相关性)
9.7 更新、删除与增量索引
9.8 【实战】构建可搜索的个人知识库
第10章 RAG(检索增强生成)系统构建
10.1 RAG 原理与典型架构
10.2 使用 RetrievalQAChain 快速搭建问答系统
10.3 自定义检索器(Retriever)逻辑
10.4 多路召回与重排序(Re-ranking)
10.5 查询扩展与 HyDE 技术
10.6 处理长文档:分块策略优化
10.7 RAG 效果评估指标(召回率、准确率)
10.8 【实战】基于公司年报的智能问答机器人
第11章 内存机制:让模型记住对话历史
11.1 为什么需要 Memory?
11.2 ConversationBufferMemory:简单缓存
11.3 ConversationSummaryMemory:摘要压缩
11.4 EntityMemory:提取并记忆关键实体
11.5 VectorStoreRetrieverMemory:基于向量的记忆
11.6 自定义 Memory 类实现业务逻辑
11.7 在 Chain 和 Agent 中集成 Memory
11.8 【实战】构建能记住用户偏好的客服助手
第12章 工具(Tools)与函数调用
12.1 什么是 Tool?LangChain 中的工具抽象
12.2 内置工具:搜索引擎、计算器、时间查询
12.3 自定义 Python 函数转为 Tool
12.4 使用 Pydantic 定义工具输入输出
12.5 工具描述(description)的重要性
12.6 多工具注册与动态选择
12.7 工具调用的安全与权限控制
12.8 【实战】开发“查天气 + 算行程时间”复合工具
第13章 智能体(Agents)基础
13.1 Agent 是什么?LLM 作为“大脑”
13.2 Agent 的工作流程:思考 → 选择工具 → 执行 → 反思
13.3 支持的 Agent 类型(Zero-shot ReAct、Self-ask 等)
13.4 使用 initialize_agent 快速创建 Agent
13.5 Agent 的停止条件与循环防护
13.6 日志与中间步骤可视化
13.7 Agent 的局限性与失败案例分析
13.8 【实战】构建能查股票、算收益的金融助理
第14章 高级 Agent:LangGraph 与状态机
14.1 为什么需要 LangGraph?
14.2 状态(State)与节点(Node)概念
14.3 构建有向无环图(DAG)工作流
14.4 条件边(Conditional Edges)实现决策分支
14.5 多 Agent 协作架构
14.6 循环与迭代控制(如 Plan-and-Execute)
14.7 可视化 Graph 执行路径
14.8 【实战】实现“调研 → 撰写 → 校对”写作 Agent
第15章 回调机制与可观测性
15.1 CallbackHandler 的作用
15.2 内置回调:日志记录、token 统计、流式输出
15.3 自定义回调:上报监控系统(Prometheus、Datadog)
15.4 异步回调与性能影响
15.5 使用 LangSmith 追踪链执行
15.6 错误回调与异常处理
15.7 回调链的组合与优先级
15.8 【实战】构建带审计日志的企业级应用
第16章 错误处理与鲁棒性设计
16.1 常见错误类型(API 限流、超时、格式错误)
16.2 使用 Fallbacks 回退到备用模型
16.3 重试机制(Retry with Exponential Backoff)
16.4 输入长度截断与分块处理
16.5 输出验证与安全过滤
16.6 防止提示注入攻击(Prompt Injection)
16.7 服务降级策略
16.8 【实战】构建高可用的生产级问答服务
第17章 缓存与性能优化
17.1 为什么需要缓存?
17.2 InMemoryCache 与 SQLiteCache
17.3 基于输入哈希的缓存键设计
17.4 缓存失效策略
17.5 向量检索结果缓存
17.6 异步批处理提升吞吐量
17.7 内存与磁盘缓存权衡
17.8 【实战】为高频查询接口添加缓存层
第18章 多模态与非文本数据处理
18.1 LangChain 对图像、音频的支持现状
18.2 使用 CLIP 等模型生成图像嵌入
18.3 图像描述生成(Image Captioning)链
18.4 PDF 中表格与图像的提取
18.5 语音转文本集成(Whisper)
18.6 多模态 RAG 架构设计
18.7 局限性与未来方向
18.8 【实战】构建图文混合知识库问答
第19章 应用模板与参考架构
19.1 官方 LangChain Templates 介绍
19.2 聊天机器人模板解析
19.3 文档问答模板解析
19.4 Agent 模板解析
19.5 如何修改模板适配业务
19.6 企业级架构分层建议(API 层、业务层、LLM 层)
19.7 安全与合规设计要点
19.8 【实战】基于模板快速部署客服系统
第20章 LangServe:部署为 REST API
20.1 什么是 LangServe?
20.2 将 Chain 转换为 FastAPI 服务
20.3 自动生成 OpenAPI 文档与 Swagger UI
20.4 请求/响应格式标准化
20.5 并发与异步支持
20.6 Docker 容器化部署
20.7 与 Nginx、Kubernetes 集成
20.8 【实战】将 RAG 系统发布为微服务
第21章 LangSmith:调试、测试与评估
21.1 LangSmith 平台功能概览
21.2 记录运行轨迹(Tracing)
21.3 创建测试数据集(Datasets)
21.4 自动化评估指标(Accuracy、Latency、Cost)
21.5 A/B 测试不同提示或模型
21.6 告警与监控配置
21.7 与 CI/CD 流程集成
21.8 【实战】优化一个问答链的准确率
第22章 项目实战:端到端企业知识助手
22.1 需求分析:企业内部知识问答场景
22.2 技术选型:模型、向量库、部署方式
22.3 数据准备:清洗、切分、嵌入
22.4 核心功能开发:RAG + Memory + Agent
22.5 安全加固:认证、脱敏、审计
22.6 性能压测与优化
22.7 部署上线:LangServe + Docker + Nginx
22.8 运维与迭代:基于 LangSmith 持续改进
说明: 每章 8 小节,共 176 个具体知识点,全部可实操。 覆盖 LangChain 最新生态(LangGraph、LangServe、LangSmith)。 强调 安全、性能、可观测性 等生产级要素。 每章结尾设【实战】小节,强化动手能力。