news 2026/6/19 22:49:26

LangChain中实例化模型的方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain中实例化模型的方式

在LangChain中实例化模型,主要包括两种方式:直接初始化特定提供商的原生类,以及使用统一的初始化函数。核心区别在于:是想专注于开发,用最简洁的API;还是需要完全掌控模型的各项底层参数。

两种方式如下:

特性直接初始化init_chat_model()函数
核心代码ChatOpenAI(model="gpt-4o", temperature=0.7)init_chat_model("openai:gpt-4o", temperature=0.7)
主要优点直观,所用模型和参数一目了然。统一接口,切换提供商(如从OpenAI换到Anthropic)仅需修改模型标识符,无需改变实例化代码 。
配置方式显式,在__init__方法中直接配置。统一,通过kwargs传递,框架会分发到具体的模型提供商 。
灵活性,能使用特定提供商的所有独有参数。中高,覆盖大部分通用参数,可通过model_kwargs传递专属参数。

方式一:直接初始化

这是最标准、最直接的方式。需要从特定模型提供商的集成包中导入对应的类。

这种方式非常直观,并且能最大限度地利用特定模型的高级功能,因为可以直接在类的构造函数中设置该模型独有的参数 。

from langchain_openai import ChatOpenAI from langchain_anthropic import ChatAnthropic from langchain_google_genai import ChatGoogleGenerativeAI # 1. 实例化 OpenAI 模型 openai_model = ChatOpenAI( model="gpt-4o", temperature=0.7, max_tokens=1000, timeout=60, ) # 2. 实例化 Anthropic 模型 anthropic_model = ChatAnthropic( model="claude-3-5-sonnet-20240620", temperature=0.5, max_tokens=1024, ) # 3. 实例化 Google 模型 google_model = ChatGoogleGenerativeAI( model="gemini-1.5-pro", temperature=0.9, )

方式二:使用统一的初始化函数 (init_chat_model)

这是LangChain官方推荐的更现代、更灵活的方式 。它的核心价值在于解耦代码和具体的模型提供商

如果应用可能会因为成本、性能或功能等原因切换模型,这种方式会极大地降低修改成本。

它使用"provider:model_name"的字符串格式来指定模型 。

from langchain.chat_models import init_chat_model # 1. 初始化 OpenAI 模型 # 你只需要修改字符串,实例化代码无需改动 openai_model = init_chat_model( "openai:gpt-4o", # 格式: "提供商:模型名" temperature=0.7, max_tokens=1000, ) # 2. 切换到 Anthropic 模型 # 仅需修改第一个参数,下面的配置参数会根据新模型的语法进行传递 anthropic_model = init_chat_model( "anthropic:claude-3-5-sonnet-20240620", temperature=0.7, # temperature 等通用参数仍然有效 ) # 3. 切换到本地 Ollama 模型 ollama_model = init_chat_model( "ollama:llama3", # 前提是本地已运行 Ollama 服务 temperature=0.8, )

两种方式怎么选?

  • 为了快速开发或验证想法,使用“直接初始化”。这种方式代码清晰,对于熟悉特定模型(如OpenAI)API的开发者来说,上手最快 。

  • 为了构建健壮、易于维护的生产级应用,优先选择init_chat_model。它将应用逻辑与模型供应商解耦,未来更换模型时,只需修改配置文件中的模型名字符串,而不是大动干戈地修改核心业务代码。

进阶用法

模型实例化后,通常会用invokestreambatch方法来调用 。

此外,实例化模型后,通常可以直接用于构建更复杂的组件。

  • 集成到智能体 (Agent):实例化的模型是智能体的核心推理引擎 。

from langchain.agents import create_agent from langchain_openai import ChatOpenAI model = ChatOpenAI(model="gpt-4o") def get_weather(city: str) -> str: return f"{city}的天气是晴朗的。" # 将实例化后的模型传入智能体 agent = create_agent(model=model, tools=[get_weather])
  • 用于构建检索链 (Retrieval Chain):在检索增强生成(RAG)应用中,模型负责根据检索到的上下文生成最终答案 。
from langchain.chains import RetrievalQA from langchain_openai import ChatOpenAI from langchain.vectorstores import FAISS model = ChatOpenAI(model="gpt-3.5-turbo") # 假设 vector_store 已经准备好 # qa_chain = RetrievalQA.from_chain_type(llm=model, retriever=vector_store.as_retriever())
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 22:45:31

MPC5200嵌入式处理器:架构解析、外设集成与系统设计实战

1. MPC5200:一个被低估的嵌入式“瑞士军刀”在嵌入式系统开发的江湖里,选型处理器就像给项目挑选心脏。十几年前,当ARM Cortex-A系列还未一统江湖时,PowerPC架构在工业控制、网络通信和汽车电子领域,绝对是高性能和可靠…

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

BepInEx终极指南:5步解决Unity游戏插件框架启动失败问题

BepInEx终极指南:5步解决Unity游戏插件框架启动失败问题 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 你是否曾经为Unity游戏安装BepInEx插件框架后,点击…

作者头像 李华
网站建设 2026/6/19 22:23:58

Halcon 24.11 安装配置全攻略:从环境准备到深度学习部署

1. 项目概述:为什么Halcon 24.11值得你花时间安装如果你正在机器视觉、工业自动化或者图像处理领域工作,那么对MVTec HALCON这个名字一定不会陌生。它不是一个简单的图像处理库,而是一个集成了上千种算子的综合开发环境,从基础的图…

作者头像 李华
网站建设 2026/6/19 21:58:44

多模态AI驱动文档重排版:在打印机边缘设备上落地Qwen 2.5 VL

1. 项目概述:让打印机自己“读懂”并“重排版”文档,这件事为什么值得认真做你有没有遇到过这样的场景:客户发来一份扫描的PDF合同,页面歪斜、文字模糊、表格错位,你得花二十分钟手动调格式、校对、重新排版&#xff0…

作者头像 李华
网站建设 2026/6/19 21:37:50

深入解析M68060 MMU:从地址转换到内存保护与性能优化

1. 项目概述:从程序员视角看MMU的“翻译官”角色如果你写过C语言程序,用过malloc申请内存,或者调试过“段错误”(Segmentation Fault),那你其实已经和内存管理单元(MMU)打过交道了&a…

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

深入解析ColdFire BDM调试:硬件断点与串行接口实战指南

1. 项目概述与BDM调试的价值在嵌入式开发的深水区,尤其是面对像Freescale(现NXP)ColdFire这类广泛应用于工业控制、汽车电子和网络设备的微控制器时,传统的软件仿真和打印日志调试手段常常显得力不从心。当你的代码在实时操作系统…

作者头像 李华