掘金 人工智能 15小时前
深入浅出LangChain AI Agent智能体开发教程(二)—LangChain接入大模型
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了LangChain框架的核心模块、基本架构以及如何接入大模型。内容涵盖了LangChain的核心模块如Model I/O、Retrieval、Chains链、Memory、Agents和Callbacks,以及三层核心架构。文章还提供了使用LangChain接入硅基流动Qwen3-8B和DeepSeek大模型的实战案例,并解释了如何通过init_chat_model函数初始化和调用不同的大模型。最后,文章指出LangChain支持接入市面上几乎所有的大模型,并提供了接入其它大模型的方法和官方文档链接。

🔹LangChain的核心模块包括Model I/O、Retrieval、Chains链、Memory、Agents和Callbacks,这些模块通过模块化的方式对大模型能力进行高级抽象,设计出统一接口以适配各种大模型。

🔸LangChain的三层核心架构包括大模型API抽象层、LangChain自身框架层和应用层,这种架构设计使得LangChain能够灵活地接入和调用不同的大模型。

🔶LangChain通过编写统一的接口init_chat_model去调用不同的大模型,用户只需安装相关大模型的依赖库,即可使用init_chat_model初始化和调用大模型,简化了大模型应用开发的流程。

🔲LangChain支持接入市面上几乎所有的大模型,包括OpenAI、Qwen、Gemini、DeepSeek等,以及本地部署的Ollama、Vllm等大模型,为用户提供了丰富的选择。

🔴在接入DeepSeek大模型时,LangChain为其编写了完备的依赖库,用户只需安装langchain-deepseek依赖库,并修改model_provider参数和api_key,即可调用DeepSeek大模型。

前言

上篇内容认识LangChain&LangGraph分享了LangChain&LangGraph的核心原理和技术架构。从本期分享开始我们就正式围绕LangChain代码展开详细讲解,内容会涉及到LangChain框架的整体概览,如何用LangChain搭建智能体和本地知识库问答的完整流程,同时也会分享热门MCP工具如何接入LangChain框架的相关内容。

本系列分享是笔者结合自己学习工作中使用LangChain&LangGraph经验倾心编写的,力求帮助大家体系化快速掌握LangChain&LangGraph AI Agent智能体开发的技能!大家感兴趣可以关注笔者掘金账号和系列专栏。更可关注笔者同名微信公众号: 大模型真好玩, 每期分享涉及的代码均可在公众号私信: LangChain智能体开发获得。

一、LangChain核心模块和基本架构

每期分享开始前,希望大家都可以回顾一下LangChain的核心模块和基本架构。

从本质上分析,LangChain从大模型角度出发,通过开发人员在实践过程中对大模型能力的深入理解及其在不同场景下的涌现潜力,使用模块化的方式进行高级抽象,设计出统一接口以适配各种大模型。LangChain抽象出最重要的核心模块如下:

    Model I/O:标准化各个大模型的输入和输出,包含输入模板,模型本身和格式化输出;Retrieval:检索外部数据,然后在执行生成步骤时将其传递到 LLM,包括文档加载、切割、Embedding等;Chains链:LangChain框架中最重要的模块,链接多个模块协同构建应用,是实际运作很多功能的高级抽象;Memory:记忆模块,以各种方式构建历史信息,维护有关实体及其关系的信息;Agents :目前最热门的Agents开发实践,未来能够真正实现通用人工智能的落地方案;Callbacks :回调系统,允许连接到 大模型 应用程序的各个阶段。用于日志记录、监控、流传输和其他任务;

将上述的LangChain模块进一步抽象我们可以得到LangChain三层核心架构:

本期分享要介绍的就是最底层大模型API抽象层的内容,大家一起来学习市面上各种各样的大模型如何接入LangChain。

二、LangChain环境搭建

使用LangChain进行大模型应用开发,第一步要搭建LangChain的运行环境。本系列分享同样使用anaconda管理虚拟环境:

    命令行执行如下命令创建并激活名为langchainenv的虚拟环境:
conda create -n langchainenv python=3.12 #创建langchain开发环境conda activate langchainenv

    命令行执行pip install langchain安装LangChain依赖, 可以通过pip show langchain查看我们安装的langchain版本。

以上就是我们搭建LangChain基本环境的教程。

三、LangChain接入大模型实战

3.1 LangChain大模型API设计架构

LangChain支持接入市面上几乎所有的大模型,包括OpenAIQwenGeminiDeepSeek,甚至包括本地使用Ollama, Vllm部署的大模型。LangChain调用大模型的设计方案是针对每个模型编写相应的依赖库,但编写统一的接口init_chat_model去调用不同模型(用户不必再关心不同依赖库的实现)。设计架构图如下:

总结来说用户调用大模型基本都要遵循如下两个步骤:

    安装相关大模型的依赖库使用init_chat_model初始化大模型

3.2 LangChain调用硅基流动大模型

首先我们尝试使用LangChain接入硅基流动免费的Qwen3-8B模型

    注册登录硅基流动官网,并申请API Key用于请求Qwen3-8B大模型。

    硅基流动API可以通过openai请求格式进行访问,无需安装额外包,编写如下代码:
from langchain.chat_models import init_chat_modelmodel = init_chat_model(    model="Qwen/Qwen3-8B", # 模型名称    model_provider="openai", # 模型提供商,硅基流动提供了openai请求格式的访问    base_url="https://api.siliconflow.cn/v1/", #硅基流动模型的请求url    api_key="", # 填写你注册的硅基流动 API Key)question = "你好,请问你是"result = model.invoke(question) #将question问题传递给model组件, 同步调用大模型生成结果print(result)

运行结果如下图所示: 可以看到成功接受到了模型的返回结果,返回的结果类型是AIMessage, 这里说明一下,LangChain定义了三种消息类别,分别是SystemMessageHumanMessageAIMessage, 分别表示系统消息、用户消息和大模型消息。

3.3 LangChain调用DeepSeek大模型

    调用DeepSeek大模型前,大家需要到DeepSeek官网注册DeepSeek的API_Key:

    对于DeepSeek大模型,LangChain为其编写了完备的依赖库,所以需要按照LangChain的基本设计,首先安装langchain-deepseek依赖库, 在langchainenv环境下执行命令pip install langchain-deepseek:

    接入DeepSeek, 这部分代码与接入其它大模型代码几乎一样,只需要修改model_provider参数和api_key即可,返回的也是一个AIMessage对象。
from langchain.chat_models import init_chat_modelmodel = init_chat_model(    model='deepseek-chat', # deepseek-chat表示调用DeepSeek-v3模型,deepseek-reasoner表示调用DeepSeek-R1模型,    model_provider='deepseek',# 模型提供商写deepseek    api_key="", #你注册的deepseek api_key)question="你好,请介绍一下你自己"result = model.invoke(question)print(result)

    AIMessage中除了content内容字段,还包括其它有意义的字段,我们首先将以上代码中调用deepseek-v3模型改为调用deepseek-r1模型:
from langchain.chat_models import init_chat_modelmodel = init_chat_model(    model='deepseek-reasoner', # deepseek-chat表示调用DeepSeek-v3模型,deepseek-reasoner表示调用DeepSeek-R1模型,    model_provider='deepseek',# 模型提供商写deepseek    api_key="",#你注册的deepseek api_key)question="你好,请介绍一下你自己"result = model.invoke(question)print(result)

生成的结果如下图所示,我们常用的字段是:

关于AIMessage的更详细的字段说明大家可以查看官方文档python.langchain.com/api_referen…

3.4 LangChain接入其它大模型

理解了这个基本原理,如果大家想在用LangChain进行开发时使用其他大模型如Qwen3系列,则只需要先获取到Qwen3模型的API_KEY,然后安装Tongyi Qwen的第三方依赖包,即可同样通过init_chat_model函数来初始化模型,并调用invoke方法来得到模型的响应结果。关于LangChain都支持哪些大模型以及每个模型对应的是哪个第三方依赖包,大家可以在LangChain的官方文档中找到,访问链接为:python.langchain.com/docs/integr…

下图是官网中给出的接入谷歌Gemini模型的案例:

四、总结

本期分享我们讲解了LangChain接入大模型的基本架构,并列举了硅基流动和DeepSeek接入大模型的案例,最后还给出了LangChain官方文档接入其它大模型的方法。LangChain接入大模型是最基础的步骤,也是我们系列教程的开胃菜,下期分享我们将隆重介绍LangChain中最核心的概念——, 掌握的知识我们才真正具备搭建智能体的基础能力。

本系列分享预计会有20节左右的规模,保证大家看完一定能够掌握LangChain&LangGraph的开发能力,大家感兴趣可关注笔者掘金账号和专栏,更可关注笔者的同名微信公众号:大模型真好玩, 本系列分享的全部代码均可在微信公众号私信笔者: LangChain智能体开发 免费获得。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LangChain 大模型 AI开发
相关文章