Skip to content

v1.2.1

Choose a tag to compare

@MisonL MisonL released this 14 Apr 00:41
· 69 commits to main since this release

v1.2.1 (本次更新)

  • 优化: 根据 Gemini API 免费层级限制 (RPD, RPM, TPD_Input, TPM_Input) 优化 Key 选择、评分、跟踪和报告逻辑。
  • 翻译: 将项目代码中的英文注释和日志信息翻译为中文(简体)。
  • 修复: 修复了 gemini.py 中流式处理 finish_reason 的传递问题,以提高 Roo Code 兼容性。
  • 修复: 修复了 models.py 中 Choice 模型的类型提示错误。
  • 修复: 修复了 endpoints.py 中多个缺失的导入错误 (daily_rpd_totals, daily_totals_lock, ip_daily_counts, ip_counts_lock, random, config)。
  • 修复: 修复了 gemini.py 中缺失的 StreamProcessingError 导入错误。
  • 优化: 优化了 Dockerfile,移除了冗余指令。
  • 现代化: 将 main.py 中的启动/关闭事件处理从弃用的 @app.on_event 迁移到推荐的 lifespan 上下文管理器。
  • 安全: 添加 PROTECT_STATUS_PAGE 环境变量,允许为根路径 / 的状态页面启用密码保护。
  • 美化: 优化了根路径 / 状态页面的 HTML 和 CSS,改善视觉效果。

v1.2.0

  • 代码重构:
    • 将 app/main.py 按功能拆分为多个模块 (config, key_management, reporting, error_handlers, middleware, endpoints)。
    • 引入新的子目录结构 (api/, core/, handlers/, data/) 以更好地组织代码。
    • 更新了所有受影响文件中的导入语句以适应新结构。
  • Roo Code 兼容性增强:
    • 修复了 Gemini API 响应缺少助手消息时可能导致 Roo Code 报错的问题(自动补充空助手消息)。
    • 修复了 Gemini 调用 write_to_file 工具时缺少 line_count 参数可能导致 Roo Code 报错的问题(自动计算并补充)。
    • 增强了 ResponseWrapper 以提取工具调用信息。
  • 性能优化:
    • 将 app/core/gemini.py 中的 complete_chat 函数改为异步 httpx 调用,提高非流式请求效率。
    • 优化了 app/core/reporting.py 中 report_usage 函数的深拷贝逻辑,减少内存占用。
  • 文档与注释:
    • 在 readme.md 中添加了 RPD, RPM, TPM 的术语解释。
    • 将所有新增和修改的代码文件及计划文件中的注释翻译为简体中文。
    • 术语统一:为减少混淆,文档和代码注释中原先指代服务访问凭证的“密码” (Password) 已统一更名为“API 密钥” (API Key)。相关环境变量名 PASSWORD 保持不变,但其作用是设置服务的 API 密钥。
  • 其他:
    • API 使用情况跟踪 (RPM, RPD, TPM) 与智能 Key 选择功能。
    • 修复流式请求 TPM 计数不准确的问题。
    • 修复 APIKeyManager 中移除无效 Key 时的线程安全问题。
    • 修复 protect_from_abuse 函数中的缩进错误。
    • 优化图片处理逻辑。
    • 其他原有修复和改进。