19-RAG检索增强生成
19 - RAG 检索增强生成 本章课程目标: 把 第 2 章 RAG-搭建企业私有/个人知识库 里建立的 RAG 与知识库直觉,继续推进到 LangChain 代码实现层。 掌握 LangChain 中构建 RAG 最常见的几类组件:文档加载器、文本分割器、嵌入模型、向量数据库、检索器、提示词模板与聊天模型。 跑通并理解本章全部案例:多种文档加载、文本切分、Redis 向量检索、完整 RAG 智能运维助手,把 第 18 章 向量数据库与 Embedding 实战 的内容真正串成一个可落地的问答系统。 学习建议: RAG 最好分成两段看:离线把文档处理成可检索知识,在线根据用户问题召回并组装上下文。读本章时可以用两种颜色标出来:哪些代码属于“建库”,哪些代码属于“问答”。文档加载、切分、Embedding、向量库、Prompt 这些组件的位置清楚了,换任何框架都能读懂。 官方文档与资源:详见 工具导航与参考资料索引 - RAG与向量检索。 1、RAG 简介1.1 定义 如果你已经读过 第 2 章,那么这里可以不再从“知识库产品怎么用”重新讲起,而是直接把 RAG ...
18-向量数据库与Embedding实战
18 - 向量数据库与 Embedding 实战 本章课程目标: 理解 向量(Vector)、向量化(Embedding)、向量数据库(Vector Store / Vector Database) 这三件事分别是什么,以及它们之间的关系。 建立一条清晰主线:文本先向量化,再写入向量库,再做相似性检索;学完本章后,可以自然衔接到 第 19 章 RAG 检索增强生成。 学习建议: 这章先画链路,再看代码:文本经过 Embedding 模型变成向量,向量进入数据库,查询时再用相似度找回来。API 名称可以后记,但要弄清“存进去的是什么、查出来的是什么、相似度为什么能代表相关性”。如果有余力,用两三条短文本手算或打印一次相似度,会比空背概念扎实。 官方文档与资源:详见 工具导航与参考资料索引 - RAG与向量检索。 1、向量与向量化1.1 向量的定义向量(Vector) 本来是数学概念,指的是:用一组有顺序的数字来表示某个对象在空间中的位置或特征。 比如: 二维向量可以写成 (x, y) 三维向量可以写成 (x, y, z) 在 AI 场景里,常见的是几百维、上千维的...
17-Tools工具调用
17 - Tools 工具调用 本章课程目标: 理解 Tool(工具)、Tool Calling(工具调用)、Function Calling(函数调用) 分别是什么,建立“模型负责决策,程序负责执行”这条最核心的分工认知。 掌握使用 @tool 装饰器定义 LangChain 工具,会配合 Pydantic 编写参数 schema,并能看懂 name、description、args、tool_calls、ToolMessage 这些关键对象。 跑通并理解本章全部案例:基础加法工具、Pydantic 参数 schema、天气查询工具、天气助手完整链路,为后续 记忆与对话历史、Agent 智能体、MCP 模型上下文协议 打基础。 学习建议: 学工具调用时先守住边界:模型负责判断要不要调用工具和填参数,程序负责真正执行工具并把结果交回去。读本章可以按 @tool、bind_tools、tool_calls、ToolMessage、业务闭环这条线走。Pydantic 不是装饰,它是在帮工具参数变成一份更可靠的契约。 官方文档与资源:详见 工具导航与参考资料索引 - 工具调用、MC...
16-记忆与对话历史(含Redis基础)
16 - 记忆与对话历史(含 Redis 基础) 本章课程目标: 理解本章所说的**记忆(Memory)**到底是什么,知道它为什么在多轮对话中不可缺少。 掌握“读历史 → 拼入提示 → 调模型 → 写回历史”这条最核心的实现主线,理解 RunnableWithMessageHistory 与 BaseChatMessageHistory 的职责分工。 对 Redis 在本章中的定位建立清晰认识:它不是让模型“变聪明”,而是让会话历史可持久化、可跨进程、可跨实例共享。 学习建议: 这章最好用两轮对话来学:先看没有记忆时模型为什么“忘事”,再看同一个 session_id 下历史消息如何被读出、拼进提示词、调用模型、写回存储。Redis 先别当重点,它只是把内存版的历史保存得更持久。只要能讲清“读历史 -> 拼提示 -> 调模型 -> 写历史”,后面的实现类就不散。 官方文档与资源:详见 工具导航与参考资料索引 - LangGraph。 1、记忆简介1.1 为什么需要记忆如果你只做单轮问答,那么每次请求都是一次独立调用,模型只看当前输入,答完就结束。但只要你...
15-LCEL与链式调用
15 - LCEL 与链式调用 本章课程目标: 理解 Runnable 的定位,知道 LangChain 为什么要把 Prompt、Model、Parser、Tool、Chain 都抽象成统一的“可执行组件”。 理解 LCEL(LangChain Expression Language,LangChain 表达式语言)到底解决了什么问题,掌握 | 管道符背后的链式组合思想。 能读懂并运行本章全部案例:顺序链、分支链、多步串行链、并行链、函数链,建立后续学习 记忆与对话历史、Tools 工具调用、RAG、Agent 的基础。 学习建议: 先亲手跑通 prompt | model | parser,再谈分支、并行和自定义函数节点。读代码时盯住两件事:每个 Runnable 收什么、吐什么;组合之后还能不能继续被 invoke、stream、batch 调用。这样看 LCEL,就不会只把它当成一个管道符语法。 1、Runnable 与统一调用方式1.1 前置知识点:抽象基类(ABC)如果你第一次接触 抽象基类,不用把它想得太复杂。对这一章来说,你只需要先建立一个足够实用的理解: ...
14-输出解析器
14 - 输出解析器 本章课程目标: 理解**输出解析器(Output Parser)**是什么、为什么需要它,以及它在 Model I/O 中所处的位置。 会使用 StrOutputParser、JsonOutputParser 处理字符串与 JSON 输出。 理解 LangChain 官方的**结构化输出(Structured Output)**思路,掌握 TypedDict、Pydantic、JSON Schema 三种 schema 方式的差异。 学习建议: 这章要解决的是“模型说的话,程序怎么放心使用”。可以从 StrOutputParser 跑到 JsonOutputParser,再跑到 Pydantic,边跑边看哪里只是解析,哪里才发生校验。读完后能分清 Parser、Structured Output、TypedDict、Pydantic、JSON Schema 的边界,就已经抓住重点了。 官方文档与资源:详见 工具导航与参考资料索引 - 提示词与结构化输出。 1、输出解析器简介本章对应 Model I/O 中的输出解析(Parse)部分...
13-提示词与消息模板
13 - 提示词与消息模板 本章课程目标: 理解 Prompt 是什么,知道它为什么会从“一段字符串”逐步演化成“多角色消息 + 模板 + 占位符”。 掌握 LangChain 中与输入组织最相关的三块内容:消息类型(Message)、模型调用方式(invoke / stream / batch)、提示词模板(PromptTemplate / ChatPromptTemplate)。 会运行并理解本章全部案例:输入类型、同步与异步调用、文本模板、对话模板、消息占位符、从 JSON / YAML 加载提示词,为后续 输出解析器、LCEL 与链式调用、记忆与对话历史 打基础。 学习建议: 读这一章时,拿一条普通用户问题练手,把它改造成消息列表:系统消息放规则,用户消息放任务,历史消息放上下文。先理解模型到底吃进去什么,再看 PromptTemplate、ChatPromptTemplate、MessagesPlaceholder 怎么帮你复用这些结构。读完后最好能判断:什么时候写死提示词,什么时候抽成模板,什么时候需要把模板放到文件里。 官...
12-Ollama本地部署与调用
12 - Ollama 本地部署与调用 本章课程目标: 理解 Ollama 是什么、解决什么问题,以及它在整套 LangChain / Agent 学习路线里的位置。 掌握 Ollama 的安装、模型目录配置、常用命令、模型拉取与验证,并建立“本地模型运行”这条完整思路。 学会使用 LangChain 里的 ChatOllama 调用本机 Ollama 服务,理解它与 第 11 章 Model I/O 与模型接入 中云端模型调用的异同。 学习建议: Ollama 的重点不是多背几个命令,而是亲手确认“本地模型能被服务化调用”。先装好 Ollama,拉取一个小模型,用命令行验证能回答,再接到 LangChain 的 ChatOllama。读代码时顺手记下模型名称、模型存放位置和机器资源限制,这些才是本地部署最常见的排障入口。 官方文档与资源:详见 工具导航与参考资料索引 - 模型接入与本地运行。 1、Ollama 简介1.1 定义Ollama 是一个用于在本地运行开源大模型的工具,本质是把模型下载、管理、加载、运行、暴露 API 这几件事封装起来的本地大模...
11-Model-I-O与模型接入
11 - Model I/O 与模型接入 本章课程目标: 理解 Model I/O 是什么,它为什么是 LangChain 中最基础、最核心的一层。 理解 LangChain 的 Model I/O 模块:输入提示(Prompt)、调用模型(Model)、输出解析(Parser)三件套。 掌握 LangChain 里最常见的模型分类、标准化参数、返回值结构,尤其是 Chat Model 与 AIMessage。 学习建议: 第 10 章解决“能不能调通”,这一章解决“怎么把调用写得可换、可管、可复用”。读的时候按输入、参数、返回值、接入方式这条线走,并留意哪些代码和具体模型供应商绑定,哪些可以保持通用。后面看 第 13 章 和 第 14 章 时,再把它们接回 Model I/O 这条主链。 官方文档与资源:详见 工具导航与参考资料索引 - 模型接入与本地运行。 1、Model I/O 简介1.1 定义Model I/O 是 LangChain 中专门负责“如何和模型打交道”的模块。它关心的就是:模型输入怎么组织、模...
10-LangChain快速上手与HelloWorld
10 - LangChain 快速上手与 HelloWorld 本章课程目标: 从“知道 LangChain 是什么”真正走到“亲手跑通第一次 LangChain 调用”,完成从环境准备到 HelloWorld 的闭环。 理解接入大模型最重要的 调用三件套:API Key、模型名、Base URL,并以 LangChain 1.x 写法作为主线,同时能读懂旧资料里的 classic 写法。 会运行并理解本章全部案例:环境检查、HelloWorld、多模型共存、企业级封装、流式输出,为后续 Model I/O、Ollama 本地调用、提示词与消息模板、输出解析器 打基础。 学习建议: 这一章的目标很朴素:先让一次模型调用真的跑起来。学习时先确认依赖、模型名、API Key、Base URL 这几项,再看代码结构;第一次成功后,再比较多模型共存和工程化封装。遇到旧教程里的 0.x 写法,重点看它和本章 1.x 写法在入口和对象组织上有什么差别。 官方文档与资源:详见 工具导航与参考资料索引 - LangChain。 1、LangChain 环境与约定1.1 支持的大模...