一、模型初始化概述

简单来说,模型初始化就是回答一个问题:用谁家的 API、以什么方式、创建存放在哪个位置的大模型。

可以从三个角度分类:

角度

分类

推荐

调用谁家的 API

使用模型提供商的库 / 使用 LangChain 统一方式

LangChain 统一方式

参数书写位置

配置文件(.env)/ 硬编码写在代码

配置文件

模型所在位置

在线部署 / 本地部署

视需求而定

LangChain 本身不提供任何 LLM,而是依赖第三方集成。它只是一个"工具",帮你统一调用各家大模型。

二、在线大模型服务平台

平台

网址

备注

OpenRouter

https://openrouter.ai/

全球主流,含国外模型

CloseAI

https://platform.closeai-asia.com/

亚洲最大,含国外模型

阿里云百炼

https://bailian.console.aliyun.com/

企业端友好

硅基流动

https://www.siliconflow.cn/

性价比高,适合个人

百度千帆

https://console.bce.baidu.com/qianfan/

主打百度生态

火山引擎

https://console.volcengine.com/ark/

主打字节多模态

每个平台配置都需要三个要素:模型名(model)、api-key、base-url。

三、DeepSeek 部署流程(重点)

DeepSeek 官网:https://www.deepseek.com/

步骤一:安装依赖

# 切换 python 环境
conda activate langchain1.2

# 安装 ChatDeepSeek 依赖包(会自动拉取 langchain-openai 依赖)
pip install langchain-deepseek

# 安装 ChatOpenAI 依赖包
pip install langchain-openai

# 环境变量管理包
pip install python-dotenv

步骤二:配置 .env 文件

在项目根目录创建 .env 文件(API Key 从 DeepSeek 官网获取):

DEEPSEEK_API_KEY=<Your API Key>
DEEPSEEK_BASE_URL=https://api.deepseek.com

生产环境推荐使用 .env 配置,并将 .env 加入 .gitignore 避免密钥泄露。

步骤三:初始化模型

方式一:显式读取环境变量

from langchain_deepseek import ChatDeepSeek
import os
from dotenv import load_dotenv
​
# 将 .env 中的变量加载为环境变量,override=True 表示强制覆盖同名变量
load_dotenv(override=True)
​
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
​
deepseek_llm = ChatDeepSeek(
    api_key=DEEPSEEK_API_KEY,
    api_base=DEEPSEEK_BASE_URL,   # 注意:这里是 api_base,不是 base_url
    model_name="deepseek-v4-flash",
)
​
print(deepseek_llm.invoke("请介绍一下你自己"))

方式二:依靠默认行为读取 .env(推荐,更简洁)

from langchain_deepseek import ChatDeepSeek
from dotenv import load_dotenv
​
load_dotenv(override=True)
​
deepseek_llm = ChatDeepSeek(
    model="deepseek-v4-flash",
)
​
print(deepseek_llm.invoke("请介绍一下你自己"))

ChatDeepSeek 要求系统存在名为 DEEPSEEK_API_KEY 的环境变量,URL 有默认值 https://api.deepseek.com/v1。

方式三:硬编码(不推荐)

from langchain_deepseek import ChatDeepSeek
​
deepseek_llm = ChatDeepSeek(
    api_key="sk-xxxxxxxx",          # 明文暴露密钥,有泄露风险
    api_base="https://api.deepseek.com",
    model="deepseek-v4-flash",
)

硬编码仅适用于临时测试,生产环境严禁使用。

四、用 init_chat_model 统一初始化(推荐)

init_chat_model 是 LangChain 1.x 推出的统一模型初始化接口,会根据模型名称自动选择对应的模型类。

from langchain.chat_models import init_chat_model
​
model = init_chat_model(
    "provider:model_name",   # 提供商:模型名称
    api_key="your-api-key",  # API 密钥(可选,可从环境变量读取)
    temperature=0.7,         # 温度参数(可选)
    max_tokens=1000,         # 最大 token 数(可选)
)

优势:统一接口、易于切换(只改模型字符串)、语法简洁、自动适配驱动类。

调用 DeepSeek 官网模型

from langchain.chat_models import init_chat_model
from dotenv import load_dotenv
import os
​
load_dotenv(override=True)
​
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
​
model = init_chat_model(
    model="deepseek:deepseek-v4-flash",   # 前缀指定提供商
    api_key=DEEPSEEK_API_KEY,
    base_url=DEEPSEEK_BASE_URL,
)
​
response = model.invoke("你好,用一句话回答")
print(response)

model_provider 支持哪些 provider?

model_provider 支持的 providers 有:anthropic、azure_openai、cohere、deepseek、google_genai、huggingface、ibm、mistralai、nvidia、ollama、openai、openrouter、perplexity、together、xai 等。

  • model_provider="openai" → 自动加载 langchain-openai,底层调用 ChatOpenAI;

  • model_provider="deepseek" → 自动加载 langchain-deepseek,底层调用 ChatDeepSe

五、模型初始化常用参数

参数

类型

说明

默认值

model

str

模型名称(必需),如 openai:gpt-4o

无

model_provider

str

模型提供商名称

无

api_key

str

API 密钥,不提供则从环境变量读取

None

base_url

str

API 请求地址

None

temperature

float

输出随机性,范围 0.0–2.0,越高越随机

0.7

max_tokens

int

限制最大输出 token 数

None

timeout

float

超时时间(秒)

None

max_retries

int

失败最大重试次数

6

temperature 选择建议

  • 0.0–0.3:需一致性和准确性的任务(数学计算、数据提取、分类、代码生成);

  • 0.5–0.7:平衡创造性和一致性(聊天、问答);

  • 0.8–1.5:创造性任务(写作、头脑风暴);

  • 1.5–2.0:高度创造性(诗歌、故事创作)。

相关链接