Repository navigation
v1.4.0
v1.4.0
新功能: 在内存模式下支持通过逗号分隔的 PASSWORD 环境变量配置多个中转用户 Key。
每个配置的密码/Key都作为一个独立的用户标识符,拥有独立的上下文。
更新了 Web UI 登录和 API 认证逻辑,以验证用户提供的凭证是否在配置的 PASSWORD 列表中。
上下文管理现在在内存模式下与用户提供的密码/Key关联。
文档更新: 更新了 readme.md,说明了内存模式下多中转用户 Key 的配置和使用方法。
v1.3.1
修复: 解决了在内存数据库模式下,Web UI 删除上下文后应用可能意外关闭的问题。通过为共享内存数据库连接引入 asyncio.Lock,并更新相关数据库操作函数为异步,避免了并发访问冲突。
v1.3.0
Web UI 认证重构: 使用 JWT (JSON Web Token) 替代 Session Cookie 进行 Web UI 认证,解决登录持久性问题,特别是 Hugging Face Spaces 环境。
新增 /login API 端点处理密码验证和 JWT 签发。
新增 login.html 模板及前端 JavaScript 实现异步登录和 Token 存储 (localStorage)。
更新 /manage/context 等受保护路由,使用新的 JWT 依赖项 (verify_jwt_token) 进行验证。
基础模板 (_base.html) 添加登出按钮和逻辑。
功能调整: 添加了 /manage/keys Web UI 用于在文件存储模式下管理代理 Key。API 客户端认证方式保持不变(内存模式使用 PASSWORD,文件模式使用数据库 proxy_keys)。
核心上下文管理功能实现: 完善并最终确定了基于认证凭证的上下文管理机制,包括:SQLite 存储(支持内存/文件模式切换)、基于模型 Token 限制的自动截断、TTL 自动清理、内存模式记录数限制、以及通过 STREAM_SAVE_REPLY 控制流式响应保存行为。
代码结构优化:
将认证逻辑拆分到 app/core/security.py 和 app/web/auth.py。
将数据库设置管理从 context_store.py 拆分到 app/core/db_settings.py。
将报告和后台任务逻辑从 reporting.py 拆分到 app/core/daily_reset.py, app/core/usage_reporter.py, 并将 Key 分数刷新移至 app/core/key_management.py。
确保核心 Python 文件行数大致控制在 300 行以内。
本地化: 将核心 Python 代码中剩余的英文注释和日志消息更新为简体中文。
依赖更新: 添加 python-jose[cryptography] 依赖;移除 SessionMiddleware 和 fastapi-csrf-protect。
安全增强: (CSRF 防护已移除)。
模型限制更新: 更新 app/data/model_limits.json 以符合最新的 Google Gemini API 速率限制政策 (Free Tier),包括调整现有模型 (gemini-2.5-pro-exp-03-25) 限制和添加新模型 (gemini-2.5-flash-preview-04-17)。
(旧版本信息更新): 更新了 README 中关于上下文管理和 API 认证的说明,以反映 JWT 认证的变化(例如,Web UI 不再需要代理 Key,API 认证方式不变)。
修复: 修复了状态页面“启动时无效密钥数”显示不正确的问题 (此问题在 v1.3.0 重构前已修复,此处保留记录)。
v1.2.2
修复: 增加对 Gemini API 请求的读超时时间至 120 秒 (原 httpx 默认为 5 秒),尝试解决处理大型文档或长时生成任务时流式响应可能提前中断的问题 (app/core/gemini.py)。