feat: add Qwen (DashScope) support as default provider

- 添加 Qwen flash/plus/max 三个等级模型
- 设置 Qwen 为默认路由策略
- 配置 DashScope API 接口
- 更新 .env.example 包含 Qwen API Key
This commit is contained in:
2026-04-17 23:47:06 +08:00
parent 4259478a37
commit ba63394e22
3 changed files with 22 additions and 5 deletions

View File

@@ -1,3 +1,6 @@
# DashScope API Key (阿里云 Qwen)
DASHSCOPE_API_KEY=sk-37e148fafdfb425f8cc1cfa4efcbc9e1
# OpenAI API Key # OpenAI API Key
OPENAI_API_KEY=sk-your-openai-key-here OPENAI_API_KEY=sk-your-openai-key-here

View File

@@ -11,6 +11,10 @@ load_dotenv()
# 统一模型配置(支持多提供商) # 统一模型配置(支持多提供商)
# 格式: "统一模型名": {"provider": "litellm格式", "input_cost": x, "output_cost": y} # 格式: "统一模型名": {"provider": "litellm格式", "input_cost": x, "output_cost": y}
MODEL_CONFIG = { MODEL_CONFIG = {
# Qwen (阿里云)
"qwen-flash": {"provider": "openai/qwen-turbo", "input_cost": 0.0003, "output_cost": 0.0006},
"qwen-plus": {"provider": "openai/qwen-plus", "input_cost": 0.0008, "output_cost": 0.002},
"qwen-max": {"provider": "openai/qwen-max", "input_cost": 0.002, "output_cost": 0.006},
# OpenAI # OpenAI
"gpt-3.5": {"provider": "gpt-3.5-turbo", "input_cost": 0.0005, "output_cost": 0.0015}, "gpt-3.5": {"provider": "gpt-3.5-turbo", "input_cost": 0.0005, "output_cost": 0.0015},
"gpt-4o-mini": {"provider": "gpt-4o-mini", "input_cost": 0.00015, "output_cost": 0.0006}, "gpt-4o-mini": {"provider": "gpt-4o-mini", "input_cost": 0.00015, "output_cost": 0.0006},
@@ -32,14 +36,17 @@ ROUTING_THRESHOLDS = {
"medium": 500, # < 500 tokens "medium": 500, # < 500 tokens
} }
# 默认模型选择策略 # 默认模型选择策略(使用 Qwen 作为默认)
DEFAULT_ROUTING = { DEFAULT_ROUTING = {
"simple": "gpt-3.5", # 或 "claude-3-haiku", "gemini-flash" "simple": "qwen-flash", # 轻量级任务
"medium": "gpt-4o-mini", # 或 "claude-3-haiku" "medium": "qwen-plus", # 中等任务
"complex": "gpt-4o", # 或 "claude-3-sonnet", "gemini-pro" "complex": "qwen-max", # 复杂任务
} }
# API Keyslitellm 自动读取环境变量) # API Keyslitellm 自动读取环境变量)
# Qwen (阿里云)
DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY", "")
# OpenAI
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "") OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY", "") ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY", "")
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "") GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "")

View File

@@ -10,8 +10,15 @@ from typing import List, Dict, Any, Optional
from fastapi import FastAPI, HTTPException from fastapi import FastAPI, HTTPException
from pydantic import BaseModel from pydantic import BaseModel
from litellm import acompletion from litellm import acompletion
import litellm
from config import MODEL_CONFIG, ROUTING_THRESHOLDS, DEFAULT_ROUTING from config import MODEL_CONFIG, ROUTING_THRESHOLDS, DEFAULT_ROUTING, DASHSCOPE_API_KEY
# 配置 LiteLLM 使用 DashScope (Qwen)
if DASHSCOPE_API_KEY:
litellm.api_key = DASHSCOPE_API_KEY
# Qwen 使用 OpenAI 兼容接口,但需要通过 api_base 指定
litellm.api_base = "https://dashscope.aliyuncs.com/compatible-mode/v1"
# 调用历史记录 # 调用历史记录