1. 为什么需要模型切换能力?
在开发基于大语言模型的应用时,我们经常面临一个现实问题:不同场景下需要调用不同的大模型。比如在翻译任务中,可能需要对比DeepSeek和通义千问的效果;在创意写作时,可能需要同时测试多个模型的生成质量。传统实现方式会导致代码重复、维护困难,这正是我们需要模型热切换能力的原因。
实际开发中,我曾接手过一个项目,代码里到处散落着不同模型的调用逻辑,光是维护API密钥就让人头疼。后来通过统一接口改造,不仅代码量减少了60%,新模型接入时间也从半天缩短到10分钟。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与模型封装
2.1 基础环境搭建
首先确保已安装必要依赖:
bash复制pip install langchain-core langchain-openai python-dotenv
创建.env文件存储API密钥:
env复制DEEPSEEK_API_KEY=your_deepseek_key
DASHSCOPE_API_KEY=your_qwen_key
2.2 模型统一接口设计
核心思路是利用LangChain的适配器模式,将不同厂商的API统一到ChatOpenAI接口:
python复制from langchain_openai import ChatOpenAI
import os
def get_llm(model_name="deepseek", temperature=0.7):
"""统一模型接口工厂函数
Args:
model_name: 模型标识符 (deepseek/qwen)
temperature: 生成温度系数
Returns:
配置好的LLM实例
"""
common_params = {
"temperature": temperature,
"max_tokens": 2000,
"model_kwargs": {"top_p": 0.9}
}
if model_name == "deepseek":
return ChatOpenAI(
