Lazy loaded image
LangChain Python Tutorial
Words 2176Read Time 6 min
2026-2-10
2026-2-11
type
Post
status
Published
date
Feb 10, 2026
slug
summary
Complete, systematic, production-ready LangChain Python notes (2026 Edition)
tags
AI
开发
推荐
category
技术分享
icon
password
😀
Here is the complete, systematic, production-ready LangChain Python notes (2026 Edition) Fully in English, structured exactly as your 7 Notion folders, much more detailed, up-to-date, and practical.

🦜️ LangChain 学习笔记

📖 目录

  1. Chapter 01: LangChain 概述
  1. Chapter 02: Model I/O (模型输入输出)
  1. Chapter 03: Chains (链)
  1. Chapter 04: Memory (记忆)
  1. Chapter 05: Tools (工具)
  1. Chapter 06: Agents (智能体)
  1. Chapter 07: Retrieval (检索/RAG)
  1. 项目实战:基于知识库的AI问答助手

Chapter 01: LangChain 概述

1.1 什么是 LangChain?

LangChain 是一个用于开发由大语言模型(LLMs)驱动的应用程序的开源框架。
  • 类比:LangChain 之于 LLMs,类似于 Spring 之于 Java,或 Django 之于 Python。
  • 核心作用:将大模型与外部数据和各种组件连接成“链”,构建 AI 应用。
  • 解决痛点:解决大模型无法联网、数据滞后、无法查询私有数据库、无法对接外部工具等问题。

1.2 核心架构

  1. LangChain-Core:基础抽象和 LCEL(LangChain Expression Language)。
  1. LangChain-Community:第三方集成(Model I/O, Retrieval, Tools 等)。
  1. LangChain:构成应用程序的 Chains, Agents, Retrieval 策略。
  1. LangGraph:用于构建多智能体和复杂状态机。
  1. LangSmith:用于调试、测试和监控(DevOps)。
  1. LangServe:将 Chain 部署为 REST API。

1.3 环境安装

推荐使用 Python 3.10+ 和 Anaconda 管理环境。
Bash
# 安装 LangChain pip install langchain langchain-openai langchain-community # 安装其他依赖 pip install python-dotenv

Chapter 02: Model I/O (模型输入输出)

Model I/O 是与 LLM 交互的核心组件,包含三个环节:Format (Prompt) -> Predict (Model) -> Parse (Output)

2.1 模型分类 (Models)

  • LLMs (非对话模型):输入字符串,输出字符串(如 gpt-3.5-turbo-instruct)。
  • Chat Models (对话模型):输入消息列表,输出消息对象(推荐使用,如 gpt-4o)。
代码示例:调用 ChatModel
 

2.2 提示词模板 (Prompts)

用于管理大模型的输入,支持变量替换。
  • PromptTemplate: 适用于 LLMs。
  • ChatPromptTemplate: 适用于 Chat Models(支持角色管理)。
代码示例:ChatPromptTemplate

2.3 输出解析器 (Output Parsers)

将模型的文本输出转换为结构化数据。
  • StrOutputParser: 转为纯字符串。
  • JsonOutputParser: 转为 JSON 对象。

Chapter 03: Chains (链)

Chain 用于将多个组件(Prompt, Model, Parser)串联起来。

3.1 LCEL (LangChain Expression Language)

使用管道符 | 进行声明式编程。
基本语法: chain = prompt | model | output_parser
代码示例:

3.2 Runnable 协议

所有 LCEL 对象都实现了 Runnable 协议,支持统一的调用方法:
  • invoke(): 单次调用。
  • stream(): 流式输出。
  • batch(): 批量处理。
  • ainvoke(): 异步调用。

3.3 其他传统链 (Legacy)

  • LLMChain: 基础链(已逐渐被 LCEL 取代)。
  • SequentialChain: 顺序链,上一个输出作为下一个输入。
  • RouterChain: 路由链,根据输入动态选择处理路径。

Chapter 04: Memory (记忆)

模型本身是无状态的,Memory 组件用于在多轮对话中保存上下文。

4.1 核心类型

  1. ChatMessageHistory: 基础类,直接存储消息列表。
  1. ConversationBufferMemory: 存储完整对话历史(最常用,但 Token 消耗大)。
  1. ConversationBufferWindowMemory: 仅保留最近 K 轮对话(滑动窗口)。
  1. ConversationSummaryMemory: 利用 LLM 对历史对话进行摘要压缩。

4.2 使用示例

ConversationBufferMemory 结合 LLMChain:

Chapter 05: Tools (工具)

Tools 是 AI 与外部世界交互的接口(如搜索、计算、数据库)。

5.1 自定义工具

可以使用 @tool 装饰器快速定义。

5.2 常用内置工具

  • TavilySearchResults: 搜索引擎工具(适合 Agent)。
  • PythonREPL: 执行 Python 代码。

Chapter 06: Agents (智能体)

Agent 利用 LLM 作为推理引擎(Brain),自主决定采取什么行动(调用什么工具)、顺序以及如何处理结果。

6.1 Agent 类型

  1. ReAct (Reasoning + Acting): 推理 -> 行动 -> 观察 -> 再推理。
  1. OpenAI Functions / Tool Calling: 利用模型原生的函数调用能力(更高效、稳定)。

6.2 创建 Agent (通用方式)

代码示例:创建一个能够联网搜索的 Agent

Chapter 07: Retrieval (检索 / RAG)

RAG (Retrieval-Augmented Generation) 用于解决大模型幻觉和知识过时问题。

7.1 RAG 核心流程

  1. Source (数据源): PDF, TXT, Web, DB 等。
  1. Load (加载): 使用 DocumentLoaders 加载为 Document 对象。
  1. Transform (分割): 使用 TextSplitters 将长文本切分为 Chunks。
  1. Embed (嵌入): 使用 Embedding Models 将文本转为向量。
  1. Store (存储): 存入 VectorStore (如 Chroma, FAISS)。
  1. Retrieve (检索): 根据 Query 检索相关片段。
  1. Generate (生成): 将检索内容 + Query 喂给 LLM 生成答案。

7.2 代码实战:构建 RAG 应用

 

7.3 常用切分器与数据库

  • Splitters: RecursiveCharacterTextSplitter (最常用,按语义/字符递归切分)。
  • VectorStores: Chroma (轻量级,本地), FAISS (高效), Milvus (生产级)。
 

项目实战:基于知识库的AI问答助手

📎 参考文章

 
💡
有关Langchain或开发相关的问题,欢迎您在底部评论区留言,一起交流~
上一篇
如何用NotionNext搭建个人博客
下一篇
🌍 How to integrate next-intl to achieve multi-language support in Next.js (App Router)

Comments
Loading...