LangChain 调用大模型实战:从跑通到服务商与模型选型

TL;DR

模型是产品,服务商是卖家,兼容标准是通用语言。

  • ChatOpenAI 显式传 api_key + base_url + model万能兜底,硅基/百炼/DeepSeek 官方都能用
  • init_chat_model("驱动名:模型名"),代码更简洁;硅基等代理平台没有专属驱动,必须借 openai: 前缀
  • 换模型只改 model换服务商只改 api_key + base_url 配对——同一套代码通调全网
  • 范围说明:LangChain 覆盖文本对话图像理解;生图、视频、TTS 同 Key 不同 API 端点,本文仅作选型参考

本文带你 5 分钟跑通 LangChain 调用大模型,搞清三个核心概念,并给出服务商和模型的选型参考。完整可运行示例见项目根目录 use-model.py


一、准备工作

跟着做一遍,5 分钟跑通第一次调用。

1. 注册硅基流动并充值

  1. 打开 硅基流动控制台,注册账号并登录
  2. 进入 API 密钥 页面,新建一个 Key,复制保存(只显示一次)
  3. 进入 账户余额,充值 1 元 即可(够跑很多次调试)

2. 配置环境变量

写入 ~/.zshrc(或 ~/.bashrc),然后执行 source ~/.zshrc

export SILICON_KEY="sk-xxx"
export SILICON_BASE_URL="https://api.siliconflow.cn/v1"

也可以用 .env 文件 + python-dotenv 加载,本文示例直接用 os.getenv() 读取 shell 环境变量。

3. 检查 Python 环境

python3 --version

能正常输出版本号(建议 3.10+,推荐 3.12)就可以继续。如果没有 python3 或版本过低,macOS 推荐:

brew install python@3.12
# 或打开 https://www.python.org/downloads/ 下载安装包

4. 安装依赖包

建议先建虚拟环境,避免污染系统 Python:

python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip3 install langchain langchain-openai python-dotenv
包名用途
langchain新版 init_chat_model 等核心 API
langchain-openaiChatOpenAI(OpenAI 兼容协议驱动)
python-dotenv可选,从 .env 文件加载密钥

5. 快速自检

python3 -c "import langchain, langchain_openai; print('环境 OK')"

二、第一次调用:ChatOpenAI

silli.png

新建 use-model.py,复制以下代码运行:

import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    api_key=os.getenv("SILICON_KEY"),       # 服务商的密钥
    base_url=os.getenv("SILICON_BASE_URL"), # 服务商的接口地址
    model="deepseek-ai/DeepSeek-V3",        # 具体要调的大模型
    temperature=0.7,
)

print(llm.invoke("用一句话介绍你自己").content)
python3 use-model.py
# 或在编辑器里点击左上角执行图标

看到模型回复,说明环境全部 OK。


三、三个核心概念

上面代码里三个参数,对应三个最容易混淆的概念:

代码参数概念一句话举例
model大模型具体的 AI 产品,能力由它决定deepseek-ai/DeepSeek-V3
api_key + base_url服务商谁帮你跑模型、谁给你计费硅基流动、百炼、DeepSeek 官方
ChatOpenAI 调用方式兼容标准统一的接口规范OpenAI 兼容标准

换模型(同一服务商)

密钥和地址不用动,只改 model。模型名到 硅基模型广场 复制:

# DeepSeek → Qwen,一行搞定
llm = ChatOpenAI(..., model="Qwen/Qwen2.5-7B-Instruct")

DeepSeek、Qwen、GLM 等国产模型,同一套代码通调。

换服务商(同一模型)

api_key + base_url 配对model 可以仍是 DeepSeek(各平台模型名可能略有差异):

# 以下示意三种服务商,实际代码中用 os.getenv(...) 读取对应 Key

# 硅基流动
ChatOpenAI(api_key=os.getenv("SILICON_KEY"),   base_url="https://api.siliconflow.cn/v1",                      model="deepseek-ai/DeepSeek-V3")

# 阿里云百炼
ChatOpenAI(api_key=os.getenv("DASHSCOPE_KEY"), base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", model="deepseek-r1")

# DeepSeek 官方(必须配官方 Key)
ChatOpenAI(api_key=os.getenv("DEEPSEEK_KEY"),  base_url="https://api.deepseek.com/v1",                      model="deepseek-chat")

代码结构完全不变——这就是 OpenAI 兼容标准 的价值:换「卖家」只换密钥和地址,不用重写调用逻辑。


四、第二种写法:init_chat_model

LangChain 1.0+ 提供了更简洁的工厂函数,适合在多个官方模型间切换。

import os
from langchain.chat_models import init_chat_model

# init_chat_model 读 OPENAI_* 环境变量,把硅基配置映射过去
os.environ["OPENAI_API_KEY"] = os.getenv("SILICON_KEY")
os.environ["OPENAI_BASE_URL"] = os.getenv("SILICON_BASE_URL")

llm = init_chat_model("openai:deepseek-ai/DeepSeek-V3", temperature=0.7)
print(llm.invoke("用一句话介绍你自己").content)

换模型同样只改冒号后面的名字:

llm = init_chat_model("openai:Qwen/Qwen2.5-7B-Instruct", temperature=0.7)

为什么写 openai: 开头?

格式是 驱动名:模型名。前缀不是服务商,而是 LangChain 内置的驱动标识

前缀含义示例
openai:OpenAI 官方,或任意 OpenAI 兼容平台openai:gpt-4o(官网)
openai:deepseek-ai/DeepSeek-V3(硅基)
deepseek:仅 DeepSeek 官方接口deepseek:deepseek-chat
anthropic:Claude 官方anthropic:claude-3-5-sonnet-20241022
google_genai:Gemini 官方google_genai:gemini-2.0-flash
tongyi:通义千问官方tongyi:qwen-max
ollama:本地 Ollamaollama:llama3

为什么不能写 silicon:bailian:

LangChain 没有为硅基、百炼注册专属驱动,写 silicon:xxx 会直接报错。它们接口兼容 OpenAI 标准,只能 借用 openai: 驱动,再通过环境变量把请求指向硅基/百炼的地址。

这里的 openai 是协议驱动名,不是 OpenAI 官网。前缀决定驱动类型,环境变量决定实际请求发到哪家服务商。

只有直连 DeepSeek 官方 API 时,才能写 deepseek:。通过硅基/百炼调 DeepSeek,必须写 openai:deepseek-xxx


五、两种写法怎么选

对比项ChatOpenAIinit_chat_model
本质直接实例化 OpenAI 兼容驱动统一工厂函数,按前缀自动选驱动
配置方式代码里显式传 api_keybase_urlmodel前缀:模型名 + 环境变量
兼容范围任意 OpenAI 兼容平台官方原生可简写;代理平台需借 openai:
推荐场景硅基/百炼等代理、多 Key 并存、参数要精确控制官方原生模型、代码简洁、配合 Agent 等新特性
  • 个人调试、代理平台、拿不准 → 优先 ChatOpenAI
  • 已确定用 DeepSeek/OpenAI 官方、追求简洁init_chat_model
  • 建议路径:先用 ChatOpenAI 跑通,再按需迁移

六、常用服务商与选型

代码写法统一,选哪家服务商取决于你的场景和预算:

服务商base_url适合谁特点
硅基流动https://api.siliconflow.cn/v1个人开发、本地调试价格低、模型全、上新快、充值方便,1 元就能跑
阿里云百炼https://dashscope.aliyuncs.com/compatible-mode/v1企业上线、商用项目大厂合规、SLA 稳定、对账方便、支持审计
DeepSeek 官方https://api.deepseek.com/v1只用 DeepSeek、要原厂直连官方 Key,init_chat_model 可写 deepseek: 前缀
火山方舟https://ark.cn-beijing.volces.com/api/v3字节生态、企业内网豆包等模型,企业集成方便
OpenAI 官方https://api.openai.com/v1海外业务、要 GPT 原厂需海外账号和网络
聚合 API(CloseAI、DMXAPI 等)各平台不同个人测国外模型单 Key 通吃 GPT/Claude/Gemini,无需海外信用卡

服务商怎么选?

你的情况推荐
个人学习、原型验证、批量测国产模型硅基流动
公司项目正式上线、要合规发票和 SLA阿里云百炼
只要 DeepSeek,且想走官方通道DeepSeek 官方
个人想试 GPT / Claude,没有海外账号聚合 API
企业商用国外模型厂商官方企业通道,别用小众聚合
  • 只用国产模型 → 个人硅基、企业百炼
  • 国内外混用 → 同一套 ChatOpenAI,切换 key + base_url 即可
  • 所有第三方代理 → LangChain 无专属驱动,统一借 openai: 前缀

不确定就从 硅基流动 开始——本文示例全部基于它,跑通后换服务商只改两行配置。


七、常用模型与选型

服务商定好后,选哪个模型取决于你要干什么。模型名因平台而异,到 硅基模型广场 按标签筛选并复制。

LangChain 覆盖范围ChatOpenAI / init_chat_model 用于文本对话图像理解(多模态消息)。图像生成、视频生成、语音合成 Key 通用,但走不同 API 端点,需 OpenAI SDK 或 HTTP 调用。

按能力选型

能力常用模型硅基 model 示例适合场景
文本对话DeepSeek-V3、Qwen2.5、GLM-4deepseek-ai/DeepSeek-V3日常问答、写代码、Agent,默认首选
GPT-4o、Claude 3.5 Sonnetgpt-4o(需对应服务商)更高质量、英文场景
DeepSeek-R1deepseek-ai/DeepSeek-R1数学推理、复杂逻辑分析
图像理解Qwen2.5-VLQwen/Qwen2.5-VL-72B-Instruct看图说话、OCR、图表分析
GPT-4o、DeepSeek-VL2gpt-4o / deepseek-ai/deepseek-vl2多模态综合理解
图像生成FLUX.1、FLUX.2black-forest-labs/FLUX.1-schnell(快)
black-forest-labs/FLUX.2-pro(好)
文生图、海报、插画
Qwen-ImageQwen/Qwen-Image中文 prompt 友好、文字渲染好
视频生成Wan 2.2Wan-AI/Wan2.2-T2V-A14B(文生视频)
Wan-AI/Wan2.2-I2V-A14B(图生视频)
短视频、动画片段
语音合成CosyVoice2FunAudioLLM/CosyVoice2-0.5B中文 TTS、方言、情感控制
MOSS-TTSDfnlp/MOSS-TTSD-v0.5双人对话、中英混合朗读

API 端点对照(硅基为例)

能力端点LangChain 支持
文本对话 / 图像理解/v1/chat/completionsChatOpenAI / init_chat_model
图像生成/v1/images/generations❌ 需 OpenAI SDK 或 HTTP
视频生成/v1/video/submit❌ 需 HTTP 异步轮询
语音合成/v1/audio/speech❌ 需 OpenAI SDK 或 HTTP

按任务快速选

你要做什么推荐模型
写代码、改 BugDeepSeek-V3Claude 3.5 Sonnet
上传图片让它分析Qwen2.5-VLGPT-4o
文字描述生成图片FLUX.1-schnell(快)/ FLUX.2-pro(好)
文字或图片生成短视频Wan2.2-T2V / Wan2.2-I2V
文字转语音、配音CosyVoice2
大量简单请求、控成本Qwen2.5-7B 等小参数模型

按预算

  • 几乎免费调试 → Qwen2.5-7B + FLUX.1-schnell
  • 日常开发够用 → DeepSeek-V3 + Qwen2.5-VL,单次几分钱
  • 追求最高质量 → GPT-4o / Claude 3.5 + FLUX.2-pro

八、常见问题

报错 / 现象原因处理
Unknown provider: silicon写了 silicon:xxx 前缀改用 openai:模型名,并配置正确的 base_url
401 UnauthorizedKey 无效或未 export检查 echo $SILICON_KEY,重新 source ~/.zshrc
model not found模型名错误或平台未上架到控制台复制准确 model 名
环境变量读不到IDE 终端未加载 shell 配置重启终端,或在代码同目录建 .env + load_dotenv()
init_chat_model 连到 OpenAI 官网未设置 OPENAI_BASE_URL映射硅基地址:os.environ["OPENAI_BASE_URL"] = os.getenv("SILICON_BASE_URL")

九、小结

你现在已经掌握:

  1. 环境搭建 — 硅基 Key、Python 虚拟环境、LangChain 依赖
  2. 两种写法ChatOpenAI(万能兜底)和 init_chat_model(新版简写)
  3. 三个概念 — 模型是产品,服务商是卖家,兼容标准是通用语言
  4. 灵活切换 — 换模型改 model,换服务商改 key + base_url
  5. 选型参考 — 个人硅基 + DeepSeek-V3,企业百炼;按能力和预算选模型
  6. 能力边界 — LangChain 管对话和图像理解;生图/视频/TTS 同 Key 不同端点,另行调用