Files
litellm-config/README.md
T
2026-01-30 09:01:03 +08:00

180 lines
4.7 KiB
Markdown

# VolcSync - LiteLLM 火山引擎每日限制管理系统
## 项目概述
VolcSync 是一个专为 LiteLLM 代理服务器设计的智能每日限制管理系统,专注于火山引擎 API 的使用限制控制和资源包同步。它提供了动态限制计算、自动模型路由管理和资源包余额实时同步功能。
## 核心功能
### 1. 智能限制管理
- **动态限制计算**:基于资源包余额和使用模式自动调整每日限制
- **硬性限制配置**:支持静态配置特定模型的每日硬限制
- **北京时区优化**:完全按照北京时间 (UTC+8) 进行每日限制计算
- **多层级限制策略**:支持精确匹配、模糊匹配和默认策略
### 2. 自动模型路由管理
- **软驱逐机制**:当模型达到每日限制时自动禁用路由
- **自动恢复机制**:定期检查已禁用模型的配额恢复情况
- **恢复策略优化**:根据时间段动态调整检查频率
### 3. 资源包同步
- **火山引擎 API 集成**:实时同步资源包余额
- **智能缓存策略**:基于余额和使用模式动态调整同步频率
- **突发流量检测**:自动检测异常流量并触发紧急同步
- **资源包去重**:处理火山引擎 API 响应中的重复项
### 4. 监控与日志
- **详细使用统计**:实时跟踪每个模型的使用情况
- **多级别日志**:支持 DEBUG、INFO、WARNING、ERROR 级别
- **可视化指标**:使用 emoji 图标增强日志可读性
- **配置自动发现**:自动从 config.yaml 中发现火山引擎模型
## 安装与配置
### 1. 依赖安装
```bash
pip install litellm redis requests
```
### 2. 环境变量配置
```bash
# 火山引擎认证
VOLC_ACCESS_KEY="your-access-key"
VOLC_SECRET_KEY="your-secret-key"
# Redis 连接
REDIS_HOST="localhost"
REDIS_PORT="6379"
REDIS_PASSWORD="your-password"
# 日志级别
DAILY_LIMIT_LOG_LEVEL="INFO"
```
### 3. 配置文件
系统会自动读取 `config.yaml` 文件中的火山引擎模型配置。
## 使用方法
### 1. 作为模块导入
```python
from volc_limit_sync import proxy_handler_instance
```
### 2. 直接运行监控
```bash
python volc_limit_sync.py
```
### 3. 集成到 LiteLLM 代理服务器
系统会自动作为回调函数注册到 LiteLLM 的 input_callback 和 callbacks 中。
## 架构设计
### 核心组件
1. **DailyLimitHandler**:使用记录和限制检查
2. **QuotaInterceptor**:请求前的配额检查
3. **SoftEvict/Restore**:模型路由管理
4. **ActiveMonitorLoop**:资源包同步和动态限制计算
5. **Util Functions**:工具函数集合(哈希、清理、签名)
### 关键策略
#### 动态限制算法
```python
# 基于资源包峰值 - 安全缓冲计算有效限制
effective_limit = max(0, current_peak - safety_margin)
```
#### 同步频率调整
- 高余额时:低频同步(每小时)
- 低余额时:高频同步(每2分钟)
- 突发流量:立即同步
#### 北京时区处理
```python
beijing_time_ts = now + (8 * 3600)
date_str = time.strftime("%Y-%m-%d", time.gmtime(beijing_time_ts))
```
## 配置说明
### 硬限制配置
```python
HARD_DAILY_LIMITS = {
"doubao-seed-code-preview-251028": 4_800_000,
"__DEFAULT__": 1_800_000,
}
```
### 模型映射
```python
VOLC_MODEL_MAP = {
"doubao-seed-1-6": ["doubao-seed-1-6-250615", "doubao-seed-1-6-251015"],
"deepseek-v3": "deepseek-v3-250324",
}
```
### 同步参数
```python
BUFFER = 300000 # 安全缓冲
SYNC_INTERVAL = 60 # 基础同步间隔
CHECK_INTERVAL = 10 # 检查间隔
THRESHOLD = 300000 # 硬阈值
```
## 高级功能
### 1. 模型别名处理
支持一个火山引擎模型映射到多个 LiteLLM 模型。
### 2. API Base 哈希
通过对 API Base 进行哈希处理,支持多端点配置。
### 3. 资源包清理
自动清理响应中的后缀(如"_pack_data_collaboration")。
### 4. 配置自动发现
从 config.yaml 中自动发现火山引擎配置的模型。
## 故障排除
### 常见问题
1. **Redis 连接失败**
- 检查环境变量配置
- 确保 Redis 服务正在运行
2. **模型未被识别**
- 检查 config.yaml 中的模型配置
- 确保 api_base 包含"volcengineapi"或"HUOSHAN_BASE_URL"
3. **同步失败**
- 检查火山引擎 API 密钥
- 验证网络连接
## 开发与维护
### 项目结构
```
litellm/
├── volc_limit_sync.py # 主文件
├── daily_limit.py # 每日限制计算
├── debug_volc_sync.py # 调试工具
├── debug_volc_sync_manual.py # 手动同步工具
└── config.yaml # LiteLLM 配置
```
### 调试模式
```bash
DAILY_LIMIT_LOG_LEVEL="DEBUG" python volc_limit_sync.py
```
## 许可证
MIT License
## 作者
OpenCode 社区