3-LangChain Chat Model 调用控制参数

一、说明

在调用模型时会用到各类控制参数,合理配置可以精准约束模型生成逻辑、输出形式、网络请求行为,更好地控制模型的行为,适配问答、代码生成、文案创作、结构化输出等业务场景。

二、Chat Model 通用核心参数速查表

表格

参数 类型 默认值 作用与适用场景
model str None 指定模型名称,如 hunyuan-litehunyuan-pro
api_key str None OpenAI 兼容接口鉴权密钥,必填
base_url str 厂商官方地址 私有化大模型、中转代理、腾讯混元兼容 API 时填写
temperature float 模型内置默认 控制生成随机性0~0.3:问答、代码、数据提取,输出稳定0.7~1.0:创意写作、闲聊,发散性更强
max_tokens int 模型上下文上限 限制单次回复最大输出 token,节约计费、避免超长文本
top_p float 1.0 核采样,和 temperature 二选一使用;数值越小输出越保守
stop liststr 空列表 自定义停止标识符,匹配文本后模型立刻停止生成,用于截断冗余内容
streaming bool False 是否开启流式输出True:逐段实时返回,适合聊天界面False:一次性返回完整结果
timeout int/float None 请求超时时间(秒),生产环境必须配置,防止接口阻塞
max_retries int 厂商默认 网络波动、接口限流时自动重试,推荐 2~3 次

三、代码示例

示例 1:ChatOpenAI 对接腾讯混元兼容接口(基础完整版)

python

运行

复制代码
import os
from langchain_openai import ChatOpenAI

from dotenv import load_dotenv

# 加载环境变量
loaded = load_dotenv()
if not loaded:
    print("警告:.env 文件未找到")


# 读取环境变量密钥,禁止代码硬编码密钥
hunyuan_api_key = os.getenv("HUNYUAN_API_KEY")

# 初始化混元模型
model = ChatOpenAI(
    # 基础接口鉴权配置
    model="hunyuan-lite",
    api_key=hunyuan_api_key,
    base_url="https://api.hunyuan.cloud.tencent.com/v1",

    # 模型生成行为控制参数
    temperature=0.3,
    max_tokens=1024,
    top_p=0.9,
    stop=["###", "结束回答"],

    # 输出模式控制
    streaming=False,  # 关闭流式输出,一次性返回完整结果

    # 生产环境网络容错参数
    timeout=15,
    max_retries=3
)

# 同步调用获取完整回答
response = model.invoke("介绍LangChain ChatOpenAI常用配置参数")
print("完整输出结果:\n", response.content)

示例 2:init_chat_model 工厂函数初始化混元兼容接口

python

运行

复制代码
import os
from langchain.chat_models import init_chat_model
 
from dotenv import load_dotenv
 
# 加载环境变量
loaded = load_dotenv()
if not loaded:
    print("警告:.env 文件未找到")
 
 

 
chat_model = init_chat_model(
    model="hunyuan-lite",
    model_provider="openai",
    base_url="https://api.hunyuan.cloud.tencent.com/v1",
    api_key=os.getenv("HUNYUAN_API_KEY"),  # 直接传入
    temperature=0.3,
    streaming=False,
    max_tokens=1024,
    top_p=0.9,
    stop=["###", "结束回答"],
    timeout=15,
    max_retries=3
)
 
res = chat_model.invoke("讲解temperature参数作用")
print(res.content)

示例 3:开启 streaming 流式输出演示

python

运行

复制代码
import os
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv

# 加载环境变量
loaded = load_dotenv()
if not loaded:
    print("警告:.env 文件未找到")


# 开启流式输出
model = ChatOpenAI(
    model="hunyuan-lite",
    api_key=os.getenv("HUNYUAN_API_KEY"),
    base_url="https://api.hunyuan.cloud.tencent.com/v1",
    temperature=0.7,
    streaming=True,
    timeout=10,
    max_retries=2
)

# 逐块打印实时返回内容
print("流式输出内容:")
for chunk in model.stream("写一段简短Python入门介绍"):
    print(chunk.content, end="", flush=True)

四、使用小贴士

  1. streaming 仅控制默认调用模式:streaming=False 使用 invoke() 一次性返回;streaming=True 搭配 stream() 实现实时打字效果。
  2. temperaturetop_p 不建议同时大幅调整,日常业务仅配置其中一个即可。
  3. 线上业务必须配置 timeoutmax_retries,提升接口调用稳定性。
  4. stop 参数多用于 JSON、Markdown 结构化输出,截断模型多余续写内容。