首页
/
工具详情
LangChain 全指南
一、平台介绍
LangChain 是 2022 年创立、基于 MIT 开源协议的大模型应用开发生态框架。
- 官网地址:https://www.langchain.com
- 核心定位:主打模型无关、模块化积木式开发,是 RAG 知识库、AI 智能体行业的通用开发底座。
- 开发语言:支持 Python 和 JavaScript 双语言。
- 生态规模:全球集成 700+ 生态组件。
1. 四大核心产品
- LangChain:高封装的链式框架,适合快速搭建线性流程应用(如 RAG、普通对话机器人)。
- LangGraph:底层有向图框架,适合构建带循环/分支/断点续跑的复杂智能体(生产级自主 Agent)。
- LangSmith:云端观测调试平台(唯一付费模块),用于追踪调用链路、评测 Agent 效果。
- LangServe:一键部署工具,将开发好的 Chain/Agent 转为 HTTP 接口,开源免费。
二、核心主要功能
1. 统一模型接入(模型 I/O)
- 多模型支持:一套代码可对接国内外 100+ 大模型。
- 包含模型:OpenAI/GPT、Claude、Gemini、文心一言、通义千问、ChatGLM、Ollama 本地开源模型等。
- 优势:切换模型仅需修改一行配置,无厂商锁定。
2. Prompt 提示词工程
- 内置模板:提供基础模板、少样本 FewShot、对话 Chat 模板、多级流水线模板。
- 管理功能:统一管理提示词、动态变量填充。
- 优化工具:配套 LangSmith PromptHub 在线调试优化提示词。
3. Memory 对话记忆管理
- 短时记忆:使用内存缓存、滑动窗口(仅保留最近 N 轮对话)。
- 长时记忆:对话落库至向量库,实现跨会话检索历史,解决大模型上下文窗口限制。
4. Chain 链式编排(LCEL 语法)
- 核心语法:
prompt | llm | parser管道式写法。 - 原生支持:流式输出、异步处理、批处理、失败重试。
- 编排类型:支持顺序链、并行链、路由分支链。
- 应用场景:快速搭建 RAG、文档摘要、数据解析流水线。
5. RAG 检索增强生成
- 落地知识库核心:开箱即用的全流程组件。
- 全链路处理:文档加载 (PDF/Word/网页/数据库) → 文本切块 → Embedding 向量化 → 存入向量库 (Chroma/Pinecone/FAISS) → 检索 → 拼接上下文喂给大模型。
- 优势:无需自研文档解析与向量逻辑。
6. Agent 自主智能体
- LangChain Agent:零样本 Agent、ReAct 思考 + 工具调用(联网查资料、调用计算器/API)。
- LangGraph Agent:有状态 Agent,支持循环、自主规划、人工介入、断点保存(适合自动化办公、数据分析机器人)。
7. 生态集成(700+ 插件)
- 覆盖范围:文档加载器、全品类向量数据库、搜索引擎 (谷歌/SerpAPI)、第三方 API、SQL 数据库、代码解析工具。
三、适用人群
- AI 个人开发者/学生:自学大模型落地、快速做知识库问答、小型 AI 工具原型,低成本验证想法。
- 算法/后端工程师:企业落地 RAG 知识库、智能客服、内部 AI 助手,避免重复封装大模型接入代码。
- 产品/创业团队:快速 MVP 验证 AI 产品,低成本搭建 Agent 产品,缩短开发周期。
- 政企数字化团队:私有知识库落地、业务系统嵌入 AI 能力、自动化流程 Agent。
- AI 科研人员:快速组合模型 + 工具,验证 Agent 算法、RAG 优化方案。
注意:不适合纯无代码小白(需要 Python 基础)、只想要现成成品 AI 软件的用户。
四、免费与付费详情
1. 核心规则
- 开源库:LangChain、LangGraph、LangServe 永久免费(MIT 协议,商用无限制)。
- 云服务:仅 LangSmith 云端服务分级收费。
- 第三方成本:大模型 API、商用向量库由第三方单独计费,框架不抽成。
2. 开源代码(永久全免费)
- 包含内容:LangChain Core、LangChain、LangGraph、LangServe 本地部署。
- 权益:无版权费、无功能阉割,代码开源在 GitHub,可二次修改私有化部署。
3. LangSmith 云端服务套餐
- Developer(免费个人版)费用:$0/月
- 额度:1 个账号,每月 5000 条 Trace 调用日志
- 限制:超出收费 0.5 美元/千条,数据存 14 天
- 场景:个人开发、原型测试、学生学习
- Plus(团队版)费用:39 美元/账号/月
- 额度:单账号每月 10000 条 Trace,最多 10 个账号
- 赠送:1 个 LangGraph 云部署、邮件客服
- 场景:中小团队生产项目、多人协作开发
- Enterprise(企业定制)费用:报价面议
- 权益:自定义 Trace 额度、私有化部署、SSO 单点、专属技术支持、SLA 保障
- 场景:中大型企业、合规私有化需求、大批量 Agent 上线
4. 额外隐性成本
- 大模型 API:调用 OpenAI/通义千问等第三方模型按 token 计费。
- 商用向量库:如 Pinecone 等云向量数据库按需付费。
- 服务器:项目部署上线的云主机成本。
五、完整使用步骤(Python 主流)
步骤 1:环境安装
bash
# 安装核心包 pip install langchain langchain-core langchain-community langchain-openai # RAG 额外依赖(文档 + 本地向量库) pip install pypdf faiss-cpu chroma python-dotenv # 安装核心包 pip install langchain langchain-core langchain-community langchain-openai # RAG 额外依赖(文档 + 本地向量库) pip install pypdf faiss-cpu chroma python-dotenv
步骤 2:配置模型密钥
- 推荐方式:新建
.env文件,禁止硬编码 Key。 - 配置内容:
- env
OPENAI_API_KEY=sk-xxx OPENAI_API_BASE=https://api.openai.com/v1 # 国内代理接口必填 LANGSMITH_API_KEY=ls_xxx # 如需使用 LangSmith LANGSMITH_TRACING=true # 如需开启追踪 OPENAI_API_KEY=sk-xxx OPENAI_API_BASE=https://api.openai.com/v1 # 国内代理接口必填 LANGSMITH_API_KEY=ls_xxx # 如需使用 LangSmith LANGSMITH_TRACING=true # 如需开启追踪
- 代码加载:
- python
from dotenv import load_dotenv load_dotenv() from dotenv import load_dotenv load_dotenv()
步骤 3:快速入门经典案例
案例 ① 基础对话(LCEL 链式)
python
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
# 初始化模型
llm = ChatOpenAI(model="gpt-3.5-turbo")
# 定义 Prompt
prompt = ChatPromptTemplate.from_template("回答问题:{question}")
# 串联链条
chain = prompt | llm
# 调用
res = chain.invoke({"question":"LangChain 是什么"})
print(res.content)
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
# 初始化模型
llm = ChatOpenAI(model="gpt-3.5-turbo")
# 定义 Prompt
prompt = ChatPromptTemplate.from_template("回答问题:{question}")
# 串联链条
chain = prompt | llm
# 调用
res = chain.invoke({"question":"LangChain 是什么"})
print(res.content)
案例 ② 最简 RAG 本地知识库
python
# 加载 PDF → 切块 → 存 Chroma → 检索问答
from langchain.document_loaders import PyPDFLoader
from langchain.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
loader = PyPDFLoader("xxx.pdf")
docs = loader.load_and_split()
# 创建向量数据库
vectordb = Chroma.from_documents(docs, OpenAIEmbeddings(), persist_directory="./chroma_db")
# 创建检索器
retriever = vectordb.as_retriever()
# 加载 PDF → 切块 → 存 Chroma → 检索问答
from langchain.document_loaders import PyPDFLoader
from langchain.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
loader = PyPDFLoader("xxx.pdf")
docs = loader.load_and_split()
# 创建向量数据库
vectordb = Chroma.from_documents(docs, OpenAIEmbeddings(), persist_directory="./chroma_db")
# 创建检索器
retriever = vectordb.as_retriever()
案例 ③ LangGraph 简易自主 Agent
- 文档参考:参考官网 QuickStart 指南 (https://www.langchain.com/quickstart-agents)
- 实现方式:使用 Graph 节点 + 状态实现循环工具调用。
步骤 4:接入 LangSmith 调试
- 开启追踪:运行代码自动在 LangSmith 后台查看全链路调用日志。
- 环境变量:确保
LANGSMITH_TRACING=true。
步骤 5:项目部署上线
- 工具:使用 LangServe 一键封装为 API。
- 代码示例:
- python
from langserve import add_routes # 假设 app 为你的 FastAPI 实例 add_routes(app, runnable=chain) from langserve import add_routes # 假设 app 为你的 FastAPI 实例 add_routes(app, runnable=chain)
- 配合 FastAPI:对外提供 HTTP 服务。
六、高频避坑清单(实战总结)
1. 版本大坑(最高发)
- 问题:网上旧教程代码导入报错(路径失效),LangChain 从 0.x 到 1.0 重构了包结构(拆分
langchain-core/community/openai)。 - 解决:固定依赖版本,使用
requirements.txt锁定,优先看官网最新文档,不照搬 2023 年前的旧代码。
2. API 密钥与代理配置
- 问题:国内调用 OpenAI 报错连接失败,
OPENAI_API_BASE地址配置错误。 - 解决:统一在
.env配置base_url,不用代码硬写,国内转发接口务必核对域名,排查网络代理。
3. RAG 问答效果差
- 误区:认为框架问题导致答案不准。
- 真相:90% 问题出在文档切块不合理、Embedding 模型不匹配中文、检索 TopK 参数、Prompt 未约束模型。
- 解决:优化 chunk_size=300~800、添加重排 Rerank、提示词强制“仅参考提供文档回答”。
4. Agent 乱调用工具
- 问题:Agent 频繁错选工具、编造参数、无限循环调用。
- 解决:完善 Tool 描述文案、强制入参 Schema 校验、调低模型 temperature=0(降低随机性)、添加工具调用次数上限。
5. 内存与上下文溢出
- 问题:多轮对话超长触发
ContextWindowExceededError超限。 - 解决:改用滑动窗口 Memory(只保留最近 5 轮)、长对话摘要压缩、超长内容分段检索。
6. 向量库异常
- 问题:Chroma 数据库损坏、加载失败。
- 解决:异常时删除
chroma_db文件夹重新入库,生产环境不用本地 Chroma,改用 PGVector 或云向量库。
7. LangSmith 计费踩坑
- 问题:免费额度用完超额扣费,忘记关闭调试追踪。
- 解决:开发环境开启
LANGSMITH_TRACING=true,生产环境关闭追踪避免 Trace 计费;免费版注意 14 天日志过期无法回溯排查问题。
七、官方学习入口
- 快速上手:https://www.langchain.com/quickstart-agents(一键跑通 Agent 示例)
- LangGraph 文档:https://www.langchain.com/langgraph
- 定价页:https://www.langchain.com/pricing-langsmith
- 完整文档:https://python.langchain.com/docs/introduction
暂无评论