Files
llm-compass/config.py
aszerW 4259478a37 feat: integrate LiteLLM for multi-provider support
使用 LiteLLM 统一接口支持多 LLM 提供商:
- 支持 OpenAI, Anthropic, Gemini, Ollama 等 100+ 提供商
- 统一模型配置 (MODEL_CONFIG)
- 新增 /models 端点列出可用模型
- 统计增加提供商分布
- 简化代码,移除 OpenAI 客户端初始化
2026-04-17 23:42:31 +08:00

46 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
简单配置管理
"""
import os
from typing import Literal
from dotenv import load_dotenv
# 加载 .env 文件
load_dotenv()
# 统一模型配置(支持多提供商)
# 格式: "统一模型名": {"provider": "litellm格式", "input_cost": x, "output_cost": y}
MODEL_CONFIG = {
# 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},
"gpt-4o": {"provider": "gpt-4o", "input_cost": 0.005, "output_cost": 0.015},
# Anthropic
"claude-3-haiku": {"provider": "claude-3-haiku-20240307", "input_cost": 0.00025, "output_cost": 0.00125},
"claude-3-sonnet": {"provider": "claude-3-sonnet-20240229", "input_cost": 0.003, "output_cost": 0.015},
"claude-3-opus": {"provider": "claude-3-opus-20240229", "input_cost": 0.015, "output_cost": 0.075},
# Gemini
"gemini-flash": {"provider": "gemini/gemini-1.5-flash", "input_cost": 0.000075, "output_cost": 0.0003},
"gemini-pro": {"provider": "gemini/gemini-1.5-pro", "input_cost": 0.00125, "output_cost": 0.005},
# 本地/开源
"llama3": {"provider": "ollama/llama3", "input_cost": 0, "output_cost": 0},
}
# 路由阈值token 数 -> 推荐模型)
ROUTING_THRESHOLDS = {
"simple": 100, # < 100 tokens
"medium": 500, # < 500 tokens
}
# 默认模型选择策略
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"
}
# API Keyslitellm 自动读取环境变量)
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY", "")
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "")