惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
D
Docker
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
U
Unit 42

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间 C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12)
10. LangChain开发核心技巧,动态切换AI大模型参数
老陈说编程 · 2026-05-05 · via 博客园_首页

在 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

image

在 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"