LangChain攻略:LLM 应用框架事实标准。
LangChain 是目前 LLM 应用开发领域的事实标准框架。它由美国团队 LangChain 公司出品,定位为“大语言模型应用开发框架”,本质是一套 Python/TypeScript 库,帮助开发者将 LLM 与外部数据、工具、记忆、Agent 等组件串联成完整应用。
它适合以下几类人:
不适合:完全没有编程基础、只想用现成聊天界面的普通用户;对底层原理无感、只想“一键生成”的纯产品经理。
目标:理解 LangChain 的核心抽象——Chain(链)、Prompt(提示词)、LLM(模型)、Output Parser(输出解析器)。
pip install langchain langchain-community langchain-openaifrom langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
model = ChatOpenAI(model="glm-4", openai_api_key="your_key", openai_api_base="https://open.bigmodel.cn/api/paas/v4")
prompt = ChatPromptTemplate.from_template("请用{language}写一段关于{topic}的介绍")
chain = prompt | model | StrOutputParser()
result = chain.invoke({"language": "中文", "topic": "人工智能"})
print(result)
| 管道符:把 Prompt、LLM、Parser 串成一条流水线,输入输出自动传递。重点攻克三个模块:
1. 文档加载与分割(RAG 基础)
DocumentLoader 加载 PDF/网页/数据库RecursiveCharacterTextSplitter 按段落、句子、字符数分割2. 记忆模块
ConversationBufferMemory 记录历史ConversationSummaryMemory 自动总结历史,节省 Token3. Agent 与工具
create_react_agent 让 LLM 自主决定调用哪个工具实践项目:做一个“文档问答助手”,用户上传 PDF 后能提问,答案引用原文段落。
Runnable 类,实现 invoke 方法,插入预处理/后处理逻辑RunnablePassthrough、RunnableParallel 实现并行调用、条件分支chain.stream() 实现打字机效果,提升用户体验CacheBackedLLM 减少重复调用,RateLimiter 控制 API 频率chain.ainvoke() 配合 asyncio 提升高并发场景性能Runnable 接口,组合灵活,便于测试和替换LangChain 本身完全免费开源,无隐藏费用。但使用它需要调用底层 LLM 或向量数据库,这部分成本取决于你选择的模型服务商:
建议:学习阶段先用国内模型的免费额度,或部署本地小模型(如 Qwen2.5-7B)。
如果 LangChain 的抽象让你感到窒息,或项目规模较小,可以尝试以下替代方案:
LlamaIndex(专注数据索引与 RAG,上手更快)、Haystack(面向搜索场景,文档更清晰)openai 库 + 自己写函数编排,控制力更强Dify(开源)、Coze(字节出品),拖拽式搭建,无需写代码AutoGen(微软)、CrewAI(多 Agent 协作),如果主要做 Agent 场景选型建议:如果你是 Python 老手且项目复杂(多模型、多工具、多 Agent),LangChain 值得投入;如果只是单个 RAG 或简单对话,直接调 API 或 LlamaIndex 更高效。