diff --git a/.env.example b/.env.example index af2df66..ead0a10 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,6 @@ +# DashScope API Key (阿里云 Qwen) +DASHSCOPE_API_KEY=sk-37e148fafdfb425f8cc1cfa4efcbc9e1 + # OpenAI API Key OPENAI_API_KEY=sk-your-openai-key-here diff --git a/config.py b/config.py index 6eb7f40..10fe86b 100644 --- a/config.py +++ b/config.py @@ -11,6 +11,10 @@ load_dotenv() # 统一模型配置(支持多提供商) # 格式: "统一模型名": {"provider": "litellm格式", "input_cost": x, "output_cost": y} 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 "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}, @@ -32,14 +36,17 @@ ROUTING_THRESHOLDS = { "medium": 500, # < 500 tokens } -# 默认模型选择策略 +# 默认模型选择策略(使用 Qwen 作为默认) DEFAULT_ROUTING = { - "simple": "gpt-3.5", # 或 "claude-3-haiku", "gemini-flash" - "medium": "gpt-4o-mini", # 或 "claude-3-haiku" - "complex": "gpt-4o", # 或 "claude-3-sonnet", "gemini-pro" + "simple": "qwen-flash", # 轻量级任务 + "medium": "qwen-plus", # 中等任务 + "complex": "qwen-max", # 复杂任务 } # API Keys(litellm 自动读取环境变量) +# Qwen (阿里云) +DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY", "") +# OpenAI OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "") ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY", "") GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "") diff --git a/main.py b/main.py index dfa1e0f..da73cd8 100644 --- a/main.py +++ b/main.py @@ -10,8 +10,15 @@ from typing import List, Dict, Any, Optional from fastapi import FastAPI, HTTPException from pydantic import BaseModel 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" # 调用历史记录