10. LangChain开发核心技巧,动态切换AI大模型参数

在 AI 应用开发中,若需动态切换大模型、调整温度等参数,可通过 init_chat_model 函数的 configurable_fields 核心配置字段实现。它支持在运行时动态修改模型参数,可基于配置规则精准控制参数的开放修改边界,配置生效后函数将返回 _ConfigurableModel 可配置模型实例,支撑全链路调用环节的参数动态调整。

如果喜欢看视频学习的,可以看这个《10. LangChain开发核心技巧,动态切换AI大模型参数》,喜欢看文章的接着往下看。

configurable_fields 的默认值为 None,对应关闭所有动态配置;传入字面量 'any' 时开放全量参数的动态修改权限;传入 list[str] / tuple[str, ...] 字符串序列时,仅开放显式声明的参数的修改权限。

复制代码
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

在 AI 大模型的参数配置体系中,90% 的常规业务场景,仅需配置model、temperature和max_tokens三个核心参数,即可完成模型的基础调用配置。

完成参数配置后,可直接通过invoke()方法调用 AI 大模型,接收并获取模型生成的回复结果。

若需灵活调整参数,我们可通过with_config()方法,在完整保留原有基础配置的前提下,快速修改目标参数并生成全新的模型实例;该实例无需额外冗余配置,同样可直接通过invoke()方法完成调用。

复制代码
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model
# @老陈说编程 今日头条 哔哩哔哩
load_dotenv()
config_llm = init_chat_model(model="qwen3.6-plus",
                             model_provider="openai",
                             base_url=os.getenv("QWEN_BASE_URL"),
                             api_key=os.getenv("QWEN_API_KEY"),
                             configurable_fields=["model", "temperature", "max_tokens"],
                             temperature=0.5,
                             max_tokens=200)
response = config_llm.invoke("你好,请用一句话介绍自己")
print(response.content)
print("-" * 50)
# 切换大模型
llm_plus = config_llm.with_config(
    configurable={"model": "deepseek-v4-pro", "temperature": 0.4, " max_tokens": 100}
)
response = llm_plus.invoke("你好,请用一句话介绍自己")
print(response.content)

以下为.env 环境配置文件的内容,记得必将其中的 API_KEY 占位值,替换为您自行在对应平台申请的有效API密钥。

复制代码
QWEN_API_KEY="你申请的API KEY"
QWEN_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"