news 2026/6/24 2:39:10

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零学会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)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 2:38:21

出生医学证明公证如何办理?出生医学证明公证和出生公证区别?

打算办理留学申请、移民签证,或是给孩子办境外入学手续的朋友,大概率都会接触到出生相关的公证。很多人都会搞混:出生医学证明公证和出生公证到底有啥区别?办错了不仅浪费钱,还可能耽误行程。尤其对于人在异地、身处境…

作者头像 李华
网站建设 2026/6/24 2:34:48

PyCryptodome完全指南:Python加密库的终极入门教程

PyCryptodome完全指南:Python加密库的终极入门教程 【免费下载链接】pycryptodome A self-contained cryptographic library for Python 项目地址: https://gitcode.com/gh_mirrors/py/pycryptodome PyCryptodome是一个功能强大的Python加密库,为…

作者头像 李华
网站建设 2026/6/24 2:34:12

5分钟掌握Chatterbox:开源语音合成的完整实践指南

5分钟掌握Chatterbox:开源语音合成的完整实践指南 【免费下载链接】chatterbox SoTA open-source TTS 项目地址: https://gitcode.com/GitHub_Trending/chatterbox7/chatterbox 你是否曾想过,只需几行代码就能让计算机用任意语言、任意声音朗读文…

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

5分钟搭建企业级网站:MCMS开源Java CMS完整实战指南

5分钟搭建企业级网站:MCMS开源Java CMS完整实战指南 【免费下载链接】MCMS 完整开源!Java快速开发平台!基于Spring、SpringMVC、Mybatis架构,MStore提供更多好用的插件与模板(文章、商城、微信、论坛、会员、评论、支付…

作者头像 李华
网站建设 2026/6/24 2:28:30

基于 Python 的手机品牌销售数据分析与可视化系统

有需要本项目的代码、文档、完整资源,或者需要部署调试的朋友,可以私信博主。图 1 系统整体技术链路展示一、项目起点:把手机销售数据变成可以行动的判断我做这个系统的出发点很直接:手机销售数据量大、字段杂、变化快&#xff0c…

作者头像 李华