一、什么是 LangChain

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

在这里插入图片描述

解决的核心痛点

  1. 原生调用OpenAI/通义千问/DeepSeek等模型API代码重复、切换模型要大量改代码;
  2. 大模型没有外部知识库,容易幻觉,难以读取PDF/Excel/业务数据库;
  3. 无法自主调用计算器、接口、搜索引擎等工具;
  4. 多轮对话无记忆、复杂业务流程难以编排。

产品生态四大模块

  1. langchain-core:核心抽象、LCEL链式语法、标准接口(所有组件底层基础)
  2. langchain:Chain、RAG、Agent基础封装
  3. LangGraph:复杂智能体编排(多步骤循环、人机介入、持久会话,替代旧版Agent)
  4. LangSmith:可视化调试、日志监控、提示词评测(生产环境必备)
    配套集成包:langchain-openailangchain-ollamalangchain-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)

解决大模型幻觉、私有数据问答,企业最常用场景,完整流程:

  1. DocumentLoader:读取PDF/TXT/Word/数据库文档
  2. TextSplitter:文本分块(避免超长上下文)
  3. Embedding:文本转向量
  4. VectorStore(向量库):Chroma/Pinecone/FAISS存储向量
  5. Retriever:用户提问→相似度检索匹配相关文档
  6. 把检索到的文档上下文塞进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 新旧版本重要区别

  1. v1.0+ 抛弃旧链式写法,统一 LCEL | 管道;
  2. 废弃老Agent,推荐 LangGraph 做智能体;
  3. 模型、向量库拆分独立包,轻量化,按需安装;
  4. 所有组件统一 invoke() 执行方法,不再混用run/call;
  5. LangSmith原生接入,一键调试每一步输入输出。

六、LangChain vs LangGraph

  • LangChain:快速开发简单线性流程、RAG、单轮工具调用,开箱即用;
  • LangGraph:复杂多分支、循环、多智能体、需要人工介入、长会话持久化的高级场景,底层图状态编排。

七、常见配套工具

  1. 向量数据库:Chroma(本地轻量)、FAISS、Milvus、Pinecone;
  2. 本地大模型:Ollama(一键跑Llama/Qwen);
  3. 文档加载:PyPDF2、UnstructuredLoader;
  4. 可观测:LangSmith(日志、调试、prompt优化);
  5. 部署:LangServe(把Chain/Graph快速转API接口)。
Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐