【每天一个知识点】LangChain

"LangChain" 是一个用于构建由大语言模型(LLMs)驱动的可组合、可交互、多工具协作的智能应用开发框架。它不仅能管理 Prompt、上下文、记忆和工具,还支持构建复杂的"多步骤推理"任务流程。


一、LangChain 简介

1. 核心定位

LangChain 旨在把大语言模型作为决策引擎和控制中枢,支持你快速构建像 ChatGPT 插件、智能问答系统、智能体(Agent)等复杂任务应用。

2. 编程语言支持

主要支持 Python 和 JavaScript/TypeScript 两种语言版本,社区主要以 Python 为主。


二、LangChain 主要组成模块(Python版)

模块 作用描述
PromptTemplates 提示词模板构建与变量注入,适配不同任务语境
LLMs/ChatModels 封装 OpenAI、Anthropic、Cohere 等模型
Chains 把多个组件串联起来构成完整流程(如提问 → 搜索 → 回答)
Agents 引入"工具调用"能力,通过思考和行动完成任务(如 ReAct Agent)
Tools 第三方工具,如搜索引擎、Python 解释器、API 接口
Memory 会话记忆,适用于多轮对话场景
Retrievers 向量检索组件,支持 RAG 应用
Document Loaders & Text Splitters 文档读取与分块,用于知识库构建

三、典型使用场景

1. 文档问答系统(RAG)

  • 流程:文档 → 向量化 → 查询 → LLM 生成回答

  • 模块:Document Loaders + FAISS/Chroma + Retriever + Chain

2. Agent 多工具智能体

  • 通过 ReAct Agent 实现"观察-思考-行动"闭环

  • 可调用:Google 搜索、Python 执行、网页抓取、数据库查询等

3. 任务编排(Multi-step Reasoning)

  • 使用 SequentialChain、RouterChain、ConversationChain 等模块完成复杂任务分解与流程管理

四、LangChain 示例代码(RAG 简易文档问答)

复制代码
from langchain.chains import RetrievalQA
from langchain.chat_models import ChatOpenAI
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter

# 加载文档并切分
loader = TextLoader("example.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
texts = text_splitter.split_documents(documents)

# 构建向量库
embeddings = OpenAIEmbeddings()
db = FAISS.from_documents(texts, embeddings)

# 构建问答系统
retriever = db.as_retriever()
llm = ChatOpenAI(temperature=0)
qa = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)

# 测试提问
query = "这篇文档讲了什么?"
response = qa.run(query)
print(response)

五、LangChain 与智能体系统的关系

特性 LangChain 实现方式
工具调用 通过 Tools 与 AgentExecutor 完成
思维链推理(Chain of Thought) 通过 Chain 的分步提示构建多轮逻辑链
多Agent协同 支持 MultiAgentChain 和外部任务调度引擎集成
RAG 问答 与向量数据库 + Retriever 高度集成
相关推荐
IT_Octopus3 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
半个落月3 小时前
LangChain Agent 中间件实战(上):生命周期、状态、短路与工具包
javascript·langchain
半个落月3 小时前
LangChain Agent 中间件实战(下):DeepAgents文件权限、长期记忆与对话摘要
javascript·langchain
OnlineProxy5 小时前
为 LangChain 和 CrewAI 构建自定义工具:将代理 IP 轮换封装至智能体函数中
网络协议·tcp/ip·langchain
虎鲸不是鱼8 小时前
【RTX Pro 4500 Blackwell】Qwen3.8 27B NVFP4 MTP在dsh的真实表现
大模型·llm·qwen·lm studio·harness
for_ever_love__10 小时前
LangChain 降级、重试与超时:让服务在模型抽风时还能用
python·自然语言处理·langchain·agent·超时·重试·with_retry
liferecords10 小时前
PolyOCR-Venus:蚂蚁把 OCR 从『抄写员』练成『视觉智能体』,教师蒸馏还会自己下岗
大模型·ocr·强化学习·多模态
for_ever_love__12 小时前
LangChain 批量调用与并发控制:batch、abatch 与速率限制
人工智能·langchain·异步·config·invoke·abatch
for_ever_love__12 小时前
LangChain RunnableConfig 详解:运行时传参、并发控制与回调注入
语言模型·langchain·llm·prompt·config·invoke·运行时参数
for_ever_love__12 小时前
LangChain 模型参数调优:temperature、max_tokens 这些到底怎么设
python·语言模型·langchain·aigc·模型参数·temperature·max_tokens