当前位置: 首页 > 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.cnnetsun.cn/news/3509001.html

相关文章:

  • Unity手游微信登录与分享功能集成实战:从环境配置到真机调试
  • Java开发环境搭建与JDK配置全攻略
  • Godot 4项目模板:模块化架构与工程化开发实践指南
  • SDRAM控制器核心模块解析:防火墙、旋转引擎与内存优化实战
  • 盘锦浴室玻璃门找哪家?选材安装售后细节一次看明白
  • 2026年嵌入式核心板选型指南与国产化趋势
  • AM62L嵌入式开发实战:VTM温度监控与PLL时钟配置详解
  • Apex OS 实战RAD快速构建(建模)工具详解
  • 还在为开题报告头秃?这5个AI写作辅助平台让你效率翻倍!
  • vJoy虚拟摇杆终极指南:5个简单步骤让电脑变身专业游戏控制器 [特殊字符]
  • AI Agent AB测试效能跃迁手册(从无效对照到 statistically significant 结果的7天闭环)
  • Unity性能优化实战:从Stats面板到CPU/GPU瓶颈诊断
  • 批量视频截图工具2.0:三种截帧模式详解与高效批量处理实践
  • AM/FM信号调制度测量与解调系统设计
  • HTTP基础认证与浏览器登录框机制详解
  • java运算符和变量,scanner
  • WPS AI写文档效率翻倍:实测7类高频场景,92%用户忽略的5个隐藏技巧
  • CC35xx通用定时器GPT深度解析:从PWM生成到输入捕获的嵌入式实战
  • STM32串口通信基础与HAL库实现
  • ARM GIC中断路由机制与GICD_IROUTER寄存器配置详解
  • 安卓网络请求框架android-async-http详解与优化
  • Android面试核心知识体系与高频问题解析
  • TI ISP寄存器深度解析:CBUFF与CSI1B模块配置实战指南
  • 会计与大数据专业大学四年最好的规划
  • ChatGPT Work实战:如何把一次性对话改造成可复用的任务工作流
  • 深入解析OMAP4460时钟与电源管理:寄存器配置与低功耗设计实战
  • JavaScript 异常捕获完全指南
  • Ubuntu 22.04编译AOSP Android 13完整指南
  • Wallpaper Engine资源逆向全解析:3步掌握PKG解密与TEX纹理转换技术
  • Winform多线程UI操作简化与优化实践