import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model
# 1. init_chat_model - 模型初始化
# init_chat_model 是 LangChain 1.0 中用于初始化聊天模型的统一接口。
# 基本语法
# 参数 类型 说明 默认值
# model str 必需。格式为 "provider:model_name",如 "groq:llama-3.3-70b-versatile" 无
# api_key str API 密钥。如果不提供,会从环境变量中读取(如 GROQ_API_KEY) None
# temperature float 控制输出随机性。范围 0.0-2.0。
# - 0.0:最确定性
# - 1.0:默认,平衡
# - 2.0:最随机 1.0
# max_tokens int 限制模型输出的最大 token 数量 模型默认值
# model_kwargs dict 传递给底层模型的额外参数 {}
def get_chat_model():
"""获取聊天模型实例"""
load_dotenv()
# 获取密钥
# 定义配置字典 (注意使用冒号 :)
qwen_config = {
"api_key": os.getenv("QWEN_API_KEY"), # 获取QWEN_API_KEY
"base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", # 请求地址
"model_name": "qwen3.5-flash",
}
model_config = qwen_config
# 2. 使用 init_chat_model 初始化模型
# 对于 DashScope 的 OpenAI 兼容接口,我们通常指定 model_provider="openai"
# 并通过 base_url 指向 DashScope,model 参数传入具体的模型名称
return init_chat_model(
model=f"{model_config['model_name']}", # 或者直接写 "qwen3.5-flash"
model_provider="openai", # 使用 openai 提供者来兼容 DashScope 接口
api_key=model_config["api_key"],
base_url=model_config["base_url"],
temperature=0.3,
)