LangChain 入门指南
·
一、什么是 LangChain
LangChain 是 Python / TypeScript 开源大模型应用开发框架,2022年推出,核心作用:把大模型(LLM)和本地文件、数据库、API、工具串联,落地企业级AI应用。

解决的核心痛点
- 原生调用OpenAI/通义千问/DeepSeek等模型API代码重复、切换模型要大量改代码;
- 大模型没有外部知识库,容易幻觉,难以读取PDF/Excel/业务数据库;
- 无法自主调用计算器、接口、搜索引擎等工具;
- 多轮对话无记忆、复杂业务流程难以编排。
产品生态四大模块
- langchain-core:核心抽象、LCEL链式语法、标准接口(所有组件底层基础)
- langchain:Chain、RAG、Agent基础封装
- LangGraph:复杂智能体编排(多步骤循环、人机介入、持久会话,替代旧版Agent)
- LangSmith:可视化调试、日志监控、提示词评测(生产环境必备)
配套集成包:langchain-openai、langchain-ollama、langchain-community(向量库、文档加载器)
二、六大核心组件(必学)
1. Models 模型层
统一封装所有大模型,一套代码无缝切换:
- LLM:纯文本输入输出(老一代文本模型)
- ChatModel:对话格式(
HumanMessage/AIMessage,GPT/通义/文心一言主流)
支持:云端API(OpenAI/通义千问)、本地私有化(Ollama/Llama)、开源模型
# 最简调用示例
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
res = model.invoke("什么是RAG")
print(res.content)
2. Prompts 提示词模板
标准化管理提示词,支持变量填充、少样本示例、系统角色设定,避免硬编码prompt:
from langchain_core.prompts import PromptTemplate
prompt = PromptTemplate.from_template("用{lang}简单解释{topic}")
print(prompt.format(lang="中文", topic="LangChain"))
3. Chains 链式流水线(LCEL | 管道语法)
LangChain核心设计,前一步输出=后一步输入,用 | 串联组件,替代复杂回调。
完整问答链:提示词模板 | 大模型 | 输出解析器
from langchain_core.output_parsers import StrOutputParser
# 构建链
chain = prompt | model | StrOutputParser()
# 执行
result = chain.invoke({"lang":"中文","topic":"RAG"})
print(result)
4. Memory 对话记忆
存储多轮聊天上下文,实现连续对话,支持内存/Redis持久化:
- ConversationBufferMemory:完整存储所有对话
- SummaryMemory:长对话自动压缩摘要,节约token
5. RAG 检索增强(Retrieval)
解决大模型幻觉、私有数据问答,企业最常用场景,完整流程:
- DocumentLoader:读取PDF/TXT/Word/数据库文档
- TextSplitter:文本分块(避免超长上下文)
- Embedding:文本转向量
- VectorStore(向量库):Chroma/Pinecone/FAISS存储向量
- Retriever:用户提问→相似度检索匹配相关文档
- 把检索到的文档上下文塞进Prompt,再交给LLM回答
# 极简RAG骨架
loader = TextLoader("产品手册.txt")
splitter = RecursiveCharacterTextSplitter(chunk_size=800)
docs = splitter.split_documents(loader.load())
vector_store = Chroma.from_documents(docs, OpenAIEmbeddings())
retriever = vector_store.as_retriever()
# RAG链:检索文档+提问一起传入prompt
rag_chain = {"context": retriever, "question": RunnablePassthrough()} | prompt | model
6. Agents & Tools 智能体+工具
让大模型自主判断什么时候调用外部工具(计算器、搜索引擎、业务API、数据库查询),自主规划步骤。
- Tool:自定义函数/第三方工具封装,附带描述让模型理解用途
- LangGraph:新一代Agent编排框架,支持循环、分支、人工审核,替代老旧AgentExecutor
# 自定义工具示例
from langchain.tools import tool
@tool
def calc(a: float, b: float) -> float:
"""计算两个数字相乘,参数a、b是数字"""
return a * b
# 模型绑定工具,可自主调用
model_with_tool = model.bind_tools([calc])
三、两大核心应用场景
1. RAG 私有知识库问答(最主流)
企业文档、产品手册、内部数据库问答,精准不胡说,不需要微调模型。
流程:文档入库向量库 → 用户提问检索相关片段 → 片段+问题交给大模型生成答案。
2. Agent 自动化智能助手
能自主调用工具完成复杂任务:数据分析、联网搜索、工单处理、多步骤业务流程,复杂场景用LangGraph做状态编排。
四、安装基础依赖
# 基础包 + OpenAI集成
pip install -U langchain langchain-openai
# 本地向量库Chroma
pip install chromadb
# 本地大模型Ollama支持
pip install langchain-ollama
五、LangChain 新旧版本重要区别
- v1.0+ 抛弃旧链式写法,统一 LCEL
|管道; - 废弃老Agent,推荐 LangGraph 做智能体;
- 模型、向量库拆分独立包,轻量化,按需安装;
- 所有组件统一
invoke()执行方法,不再混用run/call; - LangSmith原生接入,一键调试每一步输入输出。
六、LangChain vs LangGraph
- LangChain:快速开发简单线性流程、RAG、单轮工具调用,开箱即用;
- LangGraph:复杂多分支、循环、多智能体、需要人工介入、长会话持久化的高级场景,底层图状态编排。
七、常见配套工具
- 向量数据库:Chroma(本地轻量)、FAISS、Milvus、Pinecone;
- 本地大模型:Ollama(一键跑Llama/Qwen);
- 文档加载:PyPDF2、UnstructuredLoader;
- 可观测:LangSmith(日志、调试、prompt优化);
- 部署:LangServe(把Chain/Graph快速转API接口)。
更多推荐
所有评论(0)