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

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

it_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统一入口即可完成底层适配。

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

下面通过代码实战,带你彻底搞懂。首先打开命令行窗口,使用 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/1070117/

相关文章:

  • 2026年,APP依然是用户离不开的使用工具——而ASO,决定了它能否被看见
  • Redis安装指南:单机、主从、哨兵、集群模式详解
  • ABB 控制器 4LA41100102V1.3
  • HarmonyOS ArkUI 自定义跑道布局:CustomMultiChildLayout 模式深度实践
  • 如何用last30days-skill在30秒内完成全网信息调研:AI驱动的市场洞察工具完全指南
  • 如何用Powercalc的查找表策略实现精确到瓦特的智能家居能耗监控
  • Go 语言结构体详解:从定义到高级用法
  • E5071C矢量网络分析仪的工作原理
  • GEO避坑指南,蒲公英AI白帽合规运营
  • 3d云渲染多少钱?新手怎么用才更省钱?
  • 基于 Python 的手机品牌销售数据分析与可视化系统
  • 最新评估 AI 量化工具,先看概念、代码、回测、模拟
  • AI企业实际开发经验,我是如何把生产环境的意图识别准确率从 86% 优化到 97%
  • 内存池:从减少 malloc 开销到工程化内存管理
  • BOM的模块化与标准化——大规模定制的“乐高”基石
  • Home Assistant Powercalc查找表策略:终极能耗监测解决方案
  • 成都天府广场的光,藏着城市照明的升级密码
  • CSDN_Blog_Post
  • CLI 编程代理横向分析报告研究时间
  • 题解:洛谷 AT_abc463_d [ABC463D] Maximize the Gap
  • tvm cuda后端编译路径
  • iNeuOS_Doctor,一款基于人工智能在医疗领域的病情咨询及医学影像分析平台,例如CT\X光片\病理成像\诊断病历等 项目介绍
  • 从驱动到服务,DevCloud 上 ROCm 7.x 全链路部署复盘
  • 【OpenClaw】一台 Windows 主机部署双 Gateway:两个微信 + 一台主机 + 模型隔离完整踩坑实录
  • Harness 教程 08:日志查看与故障排查:Execution History、Step Log、Delegate 日志与 Kubernetes 事件定位:国内网络环境落地版
  • 一条产线该不该上机器人——给集成商/工程师的决策框架与算账逻辑
  • 亮相国际应急顶级平台|百分点科技发布应急救援智能体ResQ-AI
  • VRTK v4农场示例:基于Tilia架构的现代VR开发实践
  • 判断闰年日期
  • 什么是HVV行动(网络攻防演习)?什么是红蓝对抗?(非常详细)零基础入门到精通,收藏这一篇就够了