当前位置: 首页 > news >正文

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 ChatOpenAImemory = 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 ChatOpenAIsystem_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(检索增强生成)项目实战

http://www.dtcms.com/a/520407.html

相关文章:

  • MySQL 及 SQL 注入详细说明
  • 医院移动护理系统源码,JAVA移动护理系统源码,医院移动护士站源码
  • 网站建设营销型新型塑料建筑模板图片
  • Linux 有哪些功能相似的命令
  • 外贸推广网站冲压加工瑞安有做网站吗
  • 【开题答辩实录分享】以《租房小程序的设计和实现》为例进行答辩实录分享
  • vscode debug Transformer源码说明
  • 仓颉语言核心特性深度解析:类型系统与内存安全实践
  • IP 地址 (Internet Protocol Address) 详细介绍
  • PHP网站开发常用函数房城乡建设部网站
  • 开源的SSR框架都是怎么实现的?
  • RLVR训练多模态文档解析模型-olmOCR 2技术方案(模型、数据和代码均开源)
  • AI 领域热门方向或代表性技术/模型
  • MySQL 体系结构、SQL 执行与设计范式
  • 个人网站如何搭建国家企业信用信息网官网
  • MySQL学习之SQL语法与操作
  • “麻烦您了”英语怎么说?
  • 临时上线没有回滚方案会怎样
  • 哪个网站做高仿衣服中小学网站建设建议
  • Linux 中的 DNS 工作原理(二):各级 DNS 缓存
  • vip影视网站如何做app建设电子商务网站的预期收益
  • 从 DeepWalk 到 Node2Vec:如何让图学习“更聪明”?
  • leetcode合并有序链表
  • 知识图谱遇上大语言模型:天作之合还是理想泡影?
  • Kafka入门:基础架构讲解,安装与使用
  • 深圳seo网站推广报价wordpress导航栏的文件在哪
  • 电手术刀VS神经调音师:解密电刺激技术差异
  • lance + duckdb 替代 parquet + pandas
  • CHIA考试报告手册
  • Linux操作系统学习之---线程互斥(互斥锁)