LangChain:让大模型具备思考与行动能力的框架

LangChain:让大模型具备思考与行动能力的框架

一、LangChain 是什么?

LangChain 是一个 用于构建基于大语言模型(LLM)的应用框架

它的目标是:让开发者能轻松地将大模型(如 GPT、Claude、Qwen、Gemini 等)与外部工具、数据库、API 结合,构建"能理解、能记忆、能推理、能执行"的智能系统。

一句话概括:

LangChain = 大模型 + 记忆 + 工具 + 数据源 + 推理链


二、LangChain 的核心组成部分

LangChain 的结构清晰,可以分为五大核心模块:

模块 作用 举例
LLMs 调用语言模型 ChatOpenAI, ChatQwen, ChatAnthropic
Prompt Templates 统一管理提示词 把"任务说明 + 用户输入"拼接成模型输入
Chains 串联多个步骤形成"推理链" 如:先提取关键词 → 再搜索 → 再总结
Memory 保存对话历史或上下文 让模型"记得"之前说过什么
Agents & Tools 让模型能"调用外部工具" 如:上网搜索、算数学、查数据库

三、LangChain 的基本工作流程

下面是一个最小可运行示例:

复制代码
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.chains import LLMChain

# 1. 定义大模型
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.7)

# 2. 定义提示词模板
prompt = ChatPromptTemplate.from_template(
    "你是一位AI讲解员,请用通俗语言解释:{concept}"
)

# 3. 构建链
chain = LLMChain(llm=llm, prompt=prompt)

# 4. 运行
result = chain.invoke({"concept": "量子纠缠"})
print(result["text"])

运行结果:

复制代码
量子纠缠是一种奇怪的物理现象...

你会发现:LangChain 把 LLM 的输入输出逻辑化、结构化了


四、Prompt 模板系统:控制模型输出的关键

LangChain 支持多种提示模板,包括:

  • PromptTemplate:适用于单轮文本输入

  • ChatPromptTemplate:用于对话形式的输入

  • FewShotPromptTemplate:提供少量示例帮助模型学习风格

  • SystemMessagePromptTemplate / HumanMessagePromptTemplate:用于多角色提示(系统 + 用户)

示例:

复制代码
from langchain.prompts import (
    SystemMessagePromptTemplate,
    HumanMessagePromptTemplate,
    ChatPromptTemplate
)

system_prompt = SystemMessagePromptTemplate.from_template(
    "你是一名专业的AI健康顾问。"
)
human_prompt = HumanMessagePromptTemplate.from_template(
    "请用简明语言解释体检报告中{indicator}偏高意味着什么?"
)

chat_prompt = ChatPromptTemplate.from_messages([system_prompt, human_prompt])

这样,模型在调用时就会自动拼接出结构化的多角色提示。


五、Memory:让对话有"记忆"

默认的大模型是"无记忆"的,每次都从零开始。

LangChain 提供了 Memory 模块,让模型可以记住过去的上下文。

复制代码
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
from langchain_openai import ChatOpenAI

memory = ConversationBufferMemory()
llm = ChatOpenAI(model="gpt-4o-mini")

conversation = ConversationChain(llm=llm, memory=memory)

print(conversation.invoke("你好,我叫小明"))
print(conversation.invoke("我刚才说我叫什么名字?"))

输出:

复制代码
你好,小明!
你刚才说你叫小明。

这意味着模型"记住了"之前的内容。


六、Agents:让模型学会"调用工具"

LangChain 的 Agent 模型是它最强大的特性。

它允许大模型在思考过程中决定要不要调用外部工具(如搜索引擎、计算器、数据库等)。

例如:

复制代码
from langchain.agents import initialize_agent, load_tools
from langchain_openai import ChatOpenAI

# 加载工具
tools = load_tools(["llm-math"])

# 定义智能体
llm = ChatOpenAI(model="gpt-4o-mini")
agent = initialize_agent(tools, llm, agent_type="zero-shot-react-description")

# 让模型自主决定调用工具
result = agent.invoke({"input": "请计算 (3.14^2 + 2.71^2)/2 的值"})
print(result["output"])

模型会自动决定调用"数学计算工具",执行后返回结果。


七、LangChain 与外部知识库结合

LangChain 支持接入 本地文档、向量数据库、检索增强生成(RAG)

例如,用 Qdrant / FAISS / Chroma 存储文本向量,然后基于检索做问答:

复制代码
from langchain_community.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA

# 向量化文档
embeddings = OpenAIEmbeddings()
db = FAISS.from_texts(["LangChain是一个LLM框架", "RAG可以让模型查资料"], embeddings)

# 构建检索问答链
retriever = db.as_retriever()
qa_chain = RetrievalQA.from_chain_type(
    llm=ChatOpenAI(model="gpt-4o-mini"),
    retriever=retriever,
)

print(qa_chain.invoke("RAG 是做什么的?")["result"])

输出:

复制代码
RAG 用于增强大模型的知识能力,通过检索外部资料来回答问题。

八、实战案例:智能健康咨询系统(示例)

结合 Memory + Prompt + Agent + 外部知识,实现一个智能体检报告问答系统。

复制代码
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain_openai import ChatOpenAI

system_prompt = """
你是一位专业的健康咨询助理,擅长解释体检报告、饮食建议和运动指导。
当用户问问题时,请用温和专业的语气回答。
"""

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.5)
memory = ConversationBufferMemory()
chain = ConversationChain(llm=llm, memory=memory, verbose=True)

print(chain.invoke("我血脂有点高怎么办?"))
print(chain.invoke("那我平时能吃鸡蛋吗?"))

结果:

复制代码
血脂高说明血液中脂质水平偏高,建议少吃油炸食物,多吃蔬菜和全谷物。
你可以适量吃鸡蛋,一天1个问题不大,但要避免煎炸。

这就是一个小型 RAG-free 健康问答系统的雏形。


九、LangChain 与 OpenAI API 的关系

项目 职责
OpenAI API 提供语言模型(如 GPT-4、GPT-4o-mini)
LangChain 提供模型调用逻辑、记忆、工具调用、数据链路等封装

因此:

OpenAI = 大脑

LangChain = 神经系统 + 手脚 + 记忆系统


十、总结:LangChain 的价值

✅ 优点:

  • 快速构建复杂的多步推理应用

  • 模块化、扩展性强

  • 支持主流大模型(OpenAI、Qwen、Claude、Gemini 等)

  • 自带 Memory、Tools、RAG、Agents 等高级能力

⚠️ 缺点:

  • 框架抽象层多,调试相对繁琐

  • 对初学者来说理解 prompt 流程和 agent 执行机制有一定门槛


建议的学习路线

  1. 掌握基础 LLM 调用 (如 ChatOpenAI

  2. 熟悉 PromptTemplate 与 Chain

  3. 理解 Memory 与上下文管理

  4. 学习 Agent 的工具调用机制

  5. 掌握 RAG(检索增强生成)项目实战

相关推荐
被放养的研究生5 小时前
常见神经网络
人工智能·深度学习·神经网络
youcans_5 小时前
【医学影像 AI】一种用于生成逼真的3D血管的分层部件生成模型
论文阅读·人工智能·计算机视觉·3d·生成模型
软件测试小仙女5 小时前
AI驱动的测试:Cypress的cy.prompt功能实践
自动化测试·软件测试·人工智能·测试工具·cypress·ai测试·测试计划
文火冰糖的硅基工坊5 小时前
[人工智能-大模型-21]:“AI 编程工作流”模板(含 prompt 示例)
人工智能·科技·学习·大模型·prompt
我爱鸢尾花5 小时前
CNN基础理论讲解及Python代码复现
人工智能·python·深度学习·神经网络·算法·机器学习·cnn
2401_841495645 小时前
【语音识别】语音识别的发展历程
人工智能·神经网络·语音识别·商业应用·概率模型·早期探索·未来发展趋势
love530love6 小时前
【笔记】解决 ComfyUI 安装节点 ComfyUI-Addoor (葵花宝典)后启动报错:No module named ‘ComfyUI-Addoor’
linux·运维·前端·人工智能·windows·笔记·python
山川而川-R6 小时前
图像进行拼接-后进行ocr检测识别
人工智能·计算机视觉·ocr
CIO406 小时前
AI未来--AI在制造业的最佳落地实践
人工智能