news 2026/7/8 8:46:27

【Agent智能体】24LangChain

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Agent智能体】24LangChain

章节二十四:LangChain

一、LangChain概述

了解LangChain是什么以及为什么需要它。

LangChain:2022年由哈佛大学的Harrison Chase发起的开源框架,专门用于开发由大语言模型驱动的应用程序。它的核心作用是把调用大模型的过程标准化,让你不用关心每个模型厂商的API差异。

为什么需要LangChain:直接调用GPT或DeepSeek的API当然可以,但不同厂商的API格式不同,切换模型时学习成本高。LangChain提供了统一的调用方式,你只需要改一行配置就能换模型,而且内置了提示词模板、链式调用、输出解析等常用功能,让你专注业务逻辑。

第一步:理解LangChain解决的核心问题——统一不同模型的调用接口
第二步:掌握四大核心模块——Model I/O、Chains、Retrieval、Agents
第三步:学会用LangChain调用模型、解析输出、组装流程


二、核心模块

掌握LangChain的四大核心模块及其作用。

Model I/O:标准化大模型的输入和输出。包含三个子模块

  • Format(格式化):通过模板管理提示词,把原始数据插入模板后送给模型
  • Predict(预测):调用模型进行生成
  • Parse(解析):把模型的自然语言输出转换成结构化数据(如JSON)

Chains(链条):把多个组件串成一个完整流程。比如"提示词模板 → 调用模型 → 解析输出"这三步可以组成一个Chain,一次invoke就能完成全部操作。

Retrieval(检索):RAG的核心能力,从外部数据源检索相关信息,作为上下文喂给模型,让回答更准确。

Agents(智能体):让模型自主规划步骤、调用工具来完成复杂任务。Agent会根据用户输入判断需要什么工具,然后一步步执行。

第一步:根据需求选择核心模块——简单调用用Model I/O,多步流程用Chains,需要查资料用Retrieval,需要自主决策用Agents


三、环境准备

掌握API-Key配置和虚拟环境搭建。

API-Key:调用大模型API的身份凭证,相当于"密码"。不同平台(OpenAI、DeepSeek、阿里云等)都有自己的API-Key,注册后生成。

BASE_URL:模型服务的网络地址。不同平台的地址不同,调用时需要同时提供API-Key和BASE_URL。

环境变量:把敏感信息(API-Key)存放在系统环境变量中,避免硬编码到代码里导致泄露。

第一步:在模型服务平台注册账号,生成API-Key
第二步:在项目根目录创建.env文件,写入API-Key和BASE_URL
第三步:安装python-dotenv包,在代码中用load_dotenv()加载环境变量
第四步:用os.getenv()读取环境变量,传入LangChain的模型配置

安全提示:不要把.env文件提交到Git仓库,在.gitignore中加上.env


四、调用在线模型

掌握通过LangChain调用各大模型平台的方法。

ChatCompletion API:最经典的OpenAI风格API,传入消息列表,返回模型回复。大部分国产模型(DeepSeek、通义千问等)都兼容这个接口。

Responses API:OpenAI 2025年发布的新API,支持服务端内置工具调用和状态维护,是目前最先进的接口。

init_chat_model:LangChain提供的统一初始化方法,一行代码就能创建模型实例,只需要指定模型名和厂商。

第一步:安装对应的LangChain集成包,如langchain-openailangchain-deepseek
第二步:用init_chat_model(model="gpt-4o", model_provider="openai")创建模型实例
第三步:传入消息列表(包含SystemMessage、HumanMessage等)调用模型
第四步:获取模型返回的AIMessage,提取文本内容

调用方式:除了普通调用,还支持——

  • 异步调用await llm.ainvoke(...),适合高并发场景
  • 流式调用llm.stream(...),实现打字机效果,逐字输出
  • 批次调用llm.batch([...]),一次发多个请求,并行处理

五、调用本地模型

了解如何通过Ollama在本地运行大模型。

Ollama:一个开源的本地大模型运行框架,支持Qwen、DeepSeek等主流模型。主要用来本地开发和原型验证,生产环境一般用vLLM。

第一步:从ollama.com下载对应系统的安装包并安装
第二步:命令行执行ollama run qwen3:8b下载并运行模型
第三步:在LangChain中配置base_url="http://localhost:11434"指向本地Ollama服务
第四步:正常调用模型,和在线模型用法完全一样


六、模型输出解析

掌握让模型输出结构化数据的方法。

结构化输出:让模型按指定格式(如JSON)输出结果,而不是自由发挥。这在生产环境中非常重要,因为程序需要解析模型的输出做后续处理。

方法一——Prompt约束:在提示词中明确要求输出JSON格式,配合JSONOutputParser自动解析。但这对模型能力有要求,小模型容易输出格式错误的JSON。

方法二——厂商结构化输出:主流模型API提供了专门的参数限制输出格式。LangChain通过with_structured_output()方法统一封装了各家厂商的能力,不管底层是OpenAI还是Google,调用方式都一样。

Pydantic:Python的数据校验库。先用Pydantic定义好JSON结构(字段名、类型),然后传给with_structured_output(),模型就会按这个结构输出。

第一步:用Pydantic定义输出数据结构(如包含"城市"和"天气"两个字段的类)
第二步:调用llm.with_structured_output(Pydantic类)得到新的模型实例
第三步:正常调用,输出自动解析为Pydantic对象,直接访问属性即可


七、提示词模板

掌握PromptTemplate和ChatPromptTemplate的使用。

提示词模板:把固定文字和变量分开,运行时动态填充变量。比如模板是"你是一位{角色},请评价{主题}“,运行时传入"角色=美食家、主题=火锅”,就生成完整提示词。

PromptTemplate:字符串模板,适合单轮对话场景。

ChatPromptTemplate:聊天消息模板,可以定义SystemMessage、HumanMessage、AIMessage的模板,适合多轮对话场景。

第一步:创建模板,用{变量名}占位
第二步:传入字典填充变量,生成PromptValue
第三步:PromptValue可以直接传给模型,也可以转成字符串或消息列表


八、Chains链式调用

理解Chains的核心思想和Runnable接口。

Runnable接口:LangChain最底层的统一接口,定义了invoke、stream、batch等标准方法。模型、解析器、模板、检索器都实现了这个接口,所以可以像拼积木一样组合。

链式组装:用管道符|把多个组件串起来。比如prompt | llm | parser就是一个完整的Chain——先填充模板,再调用模型,最后解析输出。一次invoke走完整个流程。

第一步:准备组件(提示词模板、模型实例、输出解析器)
第二步:用管道符连接——chain = prompt | llm | parser
第三步:调用chain.invoke({"变量": "值"}),自动走完整个流程
第四步:获取结构化输出结果


九、LangChain生态包

了解LangChain相关的包及其作用。

langchain:主包,包含构建LLM应用的核心实现。

langchain-core:核心接口和抽象,定义了Runnable、Message等基础类。

langchain-openai/deepseek:与各模型厂商的集成包,封装了具体模型的调用逻辑。

langchain-text-splitters:文档切分工具,用于RAG场景下的长文档处理。

langchain-mcp-adapters:连接MCP工具的适配器,让LangChain应用可以调用外部工具。


名词解释

LangChain:开源框架,用统一的接口封装不同大模型的调用差异,让你像搭积木一样组装AI应用。

Model I/O:LangChain的核心模块,负责模型的输入格式化、调用预测和输出解析三步。

Chain:把多个组件串成一个完整流程,一次调用自动走完。比如"模板→模型→解析器"。

PromptTemplate:提示词模板,把固定内容和变量分开,运行时动态填充,避免重复写提示词。

Pydantic:Python的数据校验库,用来定义数据结构(字段名、类型),LangChain用它来做结构化输出。

结构化输出:让模型按指定格式(如JSON)输出,而不是自由发挥,方便程序解析处理。

Ollama:本地运行大模型的工具框架,适合开发和测试,生产环境用vLLM。

环境变量:存放敏感配置(如API-Key)的地方,避免直接写在代码里造成泄露。

BASE_URL:模型服务的网络地址,不同厂商地址不同,调用API时需要指定。

Runnable:LangChain的统一接口,所有组件(模型、模板、解析器)都实现了它,所以可以链式组合。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 8:44:42

2026好用的投票平台盘点,综合测评优选推荐|实操教程

在校园评优、企业评选、社区活动等场景中,投票平台是高效收集民意、开展评选活动的核心工具。2026 年主流投票平台功能迭代迅速,本文从免费程度、功能完整性、防刷能力、操作难度四大核心维度,深度测评 3 款热门平台(评选星、天天…

作者头像 李华
网站建设 2026/7/8 8:42:41

2026申博「假性方向匹配」避坑指南|导师研究方向真假适配核验方法

多数考生择校套磁的核心误区,是仅通过导师官网简介判定方向匹配,最终陷入假性匹配陷阱:纸面方向一致,实际研究赛道、技术方法、课题领域完全不符,导致初审低分、复试被刷、导师拒收。2026年申请考核制招录中&#xff0…

作者头像 李华
网站建设 2026/7/8 8:42:22

Windows安装Claude Code,并接入deepseek

简介: Claude Code 是 Anthropic 推出的代码助手,支持在 Windows 通过 WSL(Windows Subsystem for Linux)运行。本文介绍如何在 Windows 系统中启用 WSL、安装 Ubuntu 子系统、配置 Python 与 Node.js 环境,并最终安装…

作者头像 李华
网站建设 2026/7/8 8:38:19

新手也能上手!盘点2026年深得人心的AI论文网站

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文网站正在席卷学术圈,覆盖选题构思、文献整理、内容生成、降重润色等核心场景,真正帮你高效搞定论文。 一、全流程王者:一站式搞定论文全链路(一天…

作者头像 李华
网站建设 2026/7/8 8:37:32

传统算法提取音频特征

在训练模型时,我们通常先用卷积网络从音频中提取特征。在数据充足的场景下,它的效果一般优于传统方法,但计算和存储开销也更大。本文探讨如何用传统信号处理算法替代这一步,从而降低资源消耗。本文主要是借鉴RNNoise来做介绍。 音…

作者头像 李华
网站建设 2026/7/8 8:35:42

流鼻涕,一擦了之就行了吗?

经常流鼻涕的人习惯用柔软手巾或纸巾擦拭。但鼻腔皮肤娇嫩,反复擦拭易致鼻头红肿疼痛,处理不当还会使鼻黏膜轻度受损,更易受病菌侵袭。一、为何总拖着长长的鼻涕冷空气刺激:冬天寒气侵入肺部,会导致流清鼻涕。若只有流…

作者头像 李华