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

保姆级】从零学会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)
复制代码

http://www.jsqmd.com/news/1218132/

相关文章:

  • 基于Cache替换算法的LRU缓存实现
  • BTT Pi上位机与Klipper实战:3D打印硬件解析与配置指南
  • 2026年最新教程:抖音视频文案怎么提取 亲测好用的免费方法 - 玩机日常
  • uni-im-sample结构分析
  • edge://surf 发力了!
  • 做个好人心正身安魂梦稳,行些善事天知地鉴鬼神钦
  • 高效复习法:艾宾浩斯遗忘曲线与知识管理实践
  • 心理的研究,我从何来?
  • WD-40润滑防锈剂核心功能与使用技巧全解析
  • 2026萍乡武功山旅游本地人私藏的家常菜馆,口味绝佳
  • 原生JavaScript钩子(Hook)系统:从原理到实战的流程管控方案
  • C#面向对象实战:三公扑克游戏控制台项目完整实现
  • C++双向链表调试实战:用GDB和Valgrind解决内存泄漏与指针错误
  • 2026年7月户外照明灯实力厂家推荐,智能工矿灯/节能灯管/工厂防爆灯/灯管/工程照明灯/冷库照明灯,户外照明灯工厂推荐 - 品牌推荐师
  • Alpha Vantage股票数据下载器:稳定、归一化、生产就绪的API封装实践
  • 基于视频动态目标无感定位技术智慧城市整体解决方案
  • Qt开发环境配置与界面性能优化实战
  • 如何快速将Figma界面转为中文:FigmaCN完整安装与使用指南
  • Unity跨平台ZIP解压工具类实现:解决invalid zip archive与异步解压难题
  • 企业文档安全防护实战指南:从加密到权限管理
  • Android Studio创建HelloWorld(kotlin版本)
  • 腾讯混元Hy3大模型:MoE架构与快慢思考机制深度解析
  • C++ chrono计时器:从基础概念到性能剖析实战
  • AI驱动下的企业邮箱安全攻防:从传统防御到智能协同体系
  • PHP通过SOAP协议实现短信接口开发实战
  • 基于视频动态目标无感定位技术智慧城市全栈解决方案
  • ShaderGraph反正弦节点深度解析:从数学原理到高级特效应用
  • 2026亲测教程:视频里说的话怎么变成文字的实用方法 - 玩机日常
  • React Native开发环境搭建全指南
  • COM3D2.MaidFiddler:5分钟上手COM3D2实时角色编辑器