news 2026/7/19 6:27:59

保姆级】从零学会LangChain调用大模型!统一接口+代码实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级】从零学会LangChain调用大模型!统一接口+代码实战

为提升开发效率,新版 LangChain1.2.x+将不同厂商 AI 大模型的调用逻辑做了统一封装,整合到init_chat_model中完成统一调用,大幅简化多模型适配开发。核心参数仅需关注两个:

model:指定具体的模型名称,如 gpt-5.5、deepseek-v3;

model_provider:指定模型提供商标识,如 openai、deepseek。若未指定,系统将根据 model 参数的前缀推断模型提供商,如model=“openai:gpt-5.5”,会推断为openai。

复制代码
init_chat_model(
model: str | None = None,
*,
model_provider: str | None = None,
configurable_fields: Literal[‘any’] | list[str] | tuple[str, …] | None = None,
config_prefix: str | None = None,
**kwargs: Any = {}
) -> BaseChatModel | _ConfigurableModel
复制代码
统确定大模型提供商后,便会自动实例化对应厂商的原生实现类 —— 比如 OpenAI 对应 ChatOpenAI、Anthropic 对应 ChatAnthropic、DeepSeek 对应 ChatDeepSeek 等,开发者无需手动引入,只需通过init_chat_model统一入口即可完成底层适配。

image

在实现类对象上,常用invoke和stream两种调用方法。invoke 会让大模型一次性返回完整响应对象,stream则逐Token输出内容片段。

image

下面通过代码实战,带你彻底搞懂。首先打开命令行窗口,使用 pip 命令安装 LangChain和langchain-openai开发库。

pip install langchain langchain-openai
通过dotenv库的load_dotenv()方法,自动读取项目里的.env配置文件,把文件中所有键值对自动载入系统环境变量os.environ,后续可直接读取模型地址、密钥等配置,避免硬编码。

import os
from dotenv import load_dotenv

load_dotenv()
使用 LangChain 内置的init_chat_model初始化大模型,通过两个核心参数配置:model指定模型名称,model_provider指定模型对接厂商。

import os
from dotenv import load_dotenv

load_dotenv()
llm = init_chat_model(model=“qwen3.6-plus”, model_provider=“openai”)
print(type(llm))
当厂商参数设为openai时,底层会自动调用ChatOpenAI实现类,并从环境变量自动读取API密钥和接口地址。这里打印模型实例类型和请求基准地址,方便查看底层配置。

复制代码
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model

load_dotenv()
llm = init_chat_model(model=“qwen3.6-plus”, model_provider=“openai”)
print(type(llm))
print(“base_url:”, llm.root_client.base_url)
复制代码
可以省略model_provider参数,直接在模型名称前加上厂商前缀,格式为厂商:模型名,一行代码即可完成大模型初始化,写法更简洁。

复制代码
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model

load_dotenv()
llm = init_chat_model(model=“openai:qwen3.6-plus”)
print(type(llm))
print(“base_url:”, llm.root_client.base_url)
复制代码
大模型初始化完成后,使用invoke()方法发起对话请求。该方式会等待模型生成完整内容后,一次性返回全部结果。

复制代码
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model

load_dotenv()
llm = init_chat_model(model=os.getenv(“MODEL”))
result = llm.invoke(“你是谁呀?”)
print(result)
复制代码
想要实现打字机实时输出效果,改用stream()方法循环遍历模型返回内容。end=""保证文字连续不换行,flush=True强制即时打印,实现流畅的流式对话效果。

复制代码
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model

load_dotenv()
llm = init_chat_model(model=os.getenv(“MODEL”))
for chunk in llm.stream(“详细介绍AI大模型的应用”):
if chunk.content:
print(chunk.content, end=“”, flush=True)
复制代码

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

Unity手游微信登录与分享功能集成实战:从环境配置到真机调试

1. 项目概述与核心价值 最近在做一个Unity手游项目,需要接入微信登录和分享功能。说实话,第一次在Unity里搞微信SDK集成,踩的坑比预想的要多得多。网上资料虽然不少,但要么是官方文档语焉不详,要么是零散的代码片段&am…

作者头像 李华
网站建设 2026/7/19 6:27:30

Java开发环境搭建与JDK配置全攻略

1. Java开发环境搭建全指南 作为Java开发者,正确安装JDK并配置环境变量是入门的第一个门槛。虽然看似简单,但很多新手在实际操作中总会遇到各种"诡异"问题——明明按照教程一步步操作,运行时却报错;或者在不同终端窗口出…

作者头像 李华
网站建设 2026/7/19 6:26:33

Godot 4项目模板:模块化架构与工程化开发实践指南

1. 项目概述:为什么我们需要一个Godot 4项目模板?如果你和我一样,用Godot 4做过几个中小型项目,从简单的2D平台跳跃到稍复杂的3D探索,你可能会发现一个现象:每次新建项目,都像是一次轮回。你得重…

作者头像 李华
网站建设 2026/7/19 6:25:33

SDRAM控制器核心模块解析:防火墙、旋转引擎与内存优化实战

1. 项目概述与核心价值在嵌入式系统,尤其是移动设备和图形处理单元的设计中,SDRAM控制器远不止是一个简单的内存接口。它更像是一个交通枢纽,负责协调处理器、显示引擎、DMA控制器等多个“发起者”对有限内存带宽的并发访问。其性能的优劣&am…

作者头像 李华
网站建设 2026/7/19 6:24:41

盘锦浴室玻璃门找哪家?选材安装售后细节一次看明白

盘锦浴室玻璃门并不是只看款式和价格就能决定的产品。卫生间长期处在潮湿、温差和高频开合环境中,玻璃安全、五金耐用、挡水收口和后期售后都会影响使用体验。对正在比较盘锦拉门、淋浴房、淋浴屏的家庭来说,更稳妥的做法是先明确空间条件,再…

作者头像 李华
网站建设 2026/7/19 6:24:06

2026年嵌入式核心板选型指南与国产化趋势

1. 2026年嵌入式核心板选型背景与趋势2026年的嵌入式核心板市场正经历着从"能用"到"好用"的关键转型阶段。作为工业控制、网络安防、智能终端等领域的核心部件,嵌入式核心板的选型策略已经从单纯关注芯片性能参数,转向综合考虑国产化…

作者头像 李华