snaily
|
cd5549e1aa
|
chore: 更新版本号至2.1.6
v2.1.6
|
2025-06-26 17:13:22 +08:00 |
|
snaily
|
f573c0255a
|
Update README.md
|
2025-06-18 23:59:48 +08:00 |
|
snaily
|
060d7fffe6
|
docs: 在README中添加对支持者的感谢,并新增DigitalOcean的logo文件
|
2025-06-18 22:49:18 +08:00 |
|
snaily
|
38dbcd1643
|
fix: 更新API请求URL,增加pageSize参数以支持更大模型列表的获取
|
2025-06-17 23:30:36 +08:00 |
|
snaily
|
241d97027c
|
Update README.md
|
2025-06-15 18:29:18 +08:00 |
|
snaily
|
d18689fe9f
|
Merge pull request #151 from sk163/main
|
2025-06-14 15:12:33 +08:00 |
|
sk163
|
b72298fef4
|
feat: 增加了代理列表使用策略选项,对于同一个API_KEY可以使用固定代理
|
2025-06-14 14:36:11 +08:00 |
|
snaily
|
2d73503b00
|
chore: 更新版本号至2.1.5
v2.1.5
|
2025-06-07 21:08:55 +08:00 |
|
snaily
|
fb106cd975
|
Merge branch 'pr/coulsontl/148'
|
2025-06-07 15:12:36 +08:00 |
|
snaily
|
5f74aacfdf
|
Merge branch 'pr/coulsontl/147'
|
2025-06-07 14:47:59 +08:00 |
|
coulsontl
|
d9729a8a89
|
chore: 修改批量验证结果弹窗错误信息的样式
|
2025-06-07 08:58:12 +08:00 |
|
snaily
|
0665d5227d
|
Update README.md
|
2025-06-07 01:32:38 +08:00 |
|
snaily
|
85a89669ff
|
Update README.md
|
2025-06-07 01:28:21 +08:00 |
|
coulsontl
|
a2a77e607c
|
chore: 优化UI为更耐看的浅色系主题
|
2025-06-06 20:03:55 +08:00 |
|
coulsontl
|
258df26399
|
feat(response_handler): 更新_extract_result函数以返回思考内容
|
2025-06-06 19:56:04 +08:00 |
|
snaily
|
df9c980ca1
|
Merge pull request #141 from happy-game/main
Fix: 修复使用 docker 运行时环境变量的错误解析
|
2025-06-01 19:13:52 +08:00 |
|
happy game
|
117f327e7b
|
fix(config): Fix SAFETY_SETTINGS parsing by removing quotes
|
2025-05-31 21:53:08 +08:00 |
|
happy game
|
d599ba6be3
|
fix(config): Move inline .env comments to prevent parsing errors
|
2025-05-31 21:48:29 +08:00 |
|
snaily
|
8484651fdd
|
Merge branch 'pr/coulsontl/135'
|
2025-05-26 01:24:16 +08:00 |
|
snaily
|
aab38648f8
|
Merge branch 'pr/Inblac/132'
|
2025-05-25 02:39:03 +08:00 |
|
snaily
|
9d4b45cf35
|
Merge pull request #131 from TroyMitchell911/main
Fix wrong commands in README
|
2025-05-24 17:03:34 +08:00 |
|
coulsontl
|
484e5cdc42
|
feat: 添加环境变量加载和思考配置处理
|
2025-05-24 09:26:20 +08:00 |
|
Nalvick
|
e37e11bf57
|
feat: 在OpenAI chat服务中,适配googleSearch内置工具调用支持
|
2025-05-23 23:45:03 +08:00 |
|
Troy
|
7661b71fcc
|
Fix wrong commands in README
In the readme, the parameters for mounting the sqlite volume are wrong, which does not match the comments
|
2025-05-23 21:58:14 +08:00 |
|
snaily
|
b3a4306332
|
chore: Add Chinese README for Gemini Balance project with detailed features and setup instructions
|
2025-05-19 16:29:58 +08:00 |
|
snaily
|
6aab140ec2
|
feat(vertex): 集成 Vertex AI Express API 支持
本次更新引入了对 Google Vertex AI Express API 的支持,允许用户配置和使用 Vertex AI 模型。
主要变更包括:
后端:
- 新增 `VERTEX_API_KEYS` 和 `VERTEX_EXPRESS_BASE_URL` 至系统配置 ([`.env.example`](.env.example:13), [`app/config/config.py:62`](app/config/config.py:62), [`app/database/models.py`](app/database/models.py), [`app/database/services.py`](app/database/services.py))。
- 实现 `VertexExpressChatService` ([`app/service/chat/vertex_express_chat_service.py`](app/service/chat/vertex_express_chat_service.py)) 用于处理与 Vertex AI Express API 的交互。
- 添加 `vertex_express_routes` ([`app/router/vertex_express_routes.py`](app/router/vertex_express_routes.py)) 来暴露 Vertex AI 相关的 API 端点,并集成到主应用 ([`app/core/application.py:36`](app/core/application.py:36), [`app/router/routes.py:15`](app/router/routes.py:15))。
- 更新密钥管理器 ([`app/service/key/key_manager.py`](app/service/key/key_manager.py)) 以支持 Vertex API 密钥的获取、检查和轮换。
前端 (配置编辑器):
- 在配置页面 ([`app/templates/config_editor.html:463`](app/templates/config_editor.html:463)) 添加了 Vertex API 密钥列表和 Vertex Express API 基础 URL 的表单字段。
- 实现了批量添加和删除 Vertex API 密钥的功能,包括相应的模态框和操作逻辑 ([`app/static/js/config_editor.js:550`](app/static/js/config_editor.js:550), [`app/static/js/config_editor.js:1097`](app/static/js/config_editor.js:1097), [`app/templates/config_editor.html:1657`](app/templates/config_editor.html:1657))。
- 确保新的配置项在初始化 ([`app/static/js/config_editor.js:598`](app/static/js/config_editor.js:598)) 和表单填充 ([`app/static/js/config_editor.js:671`](app/static/js/config_editor.js:671)) 时得到正确处理。
- 更新了数组项添加逻辑以识别 `VERTEX_API_KEYS` 为敏感字段 ([`app/static/js/config_editor.js:1235`](app/static/js/config_editor.js:1235))。
此功能扩展了应用支持的 AI 服务范围,为用户提供了更多模型选择。
|
2025-05-17 00:13:49 +08:00 |
|
snaily
|
e260ad02bf
|
feat(error_log): 添加清空所有错误日志的功能
主要变更:
- 在数据库服务层 ([`app/database/services.py:364`](app/database/services.py:364)) 添加了 `delete_all_error_logs` 函数。
- 在错误日志路由 ([`app/router/error_log_routes.py:186`](app/router/error_log_routes.py:186)) 中添加了新的 `DELETE /api/logs/errors/all` API 端点。
- 在前端 ([`app/static/js/error_logs.js`](app/static/js/error_logs.js)) 添加了“清空全部”按钮和相应的处理逻辑,并重构了删除确认模态框以支持此新功能。
- 将 [`app/core/application.py:42`](app/core/application.py:42) 中的 `initialize_database()` 调用从异步更改为同步。
|
2025-05-15 00:23:53 +08:00 |
|
snaily
|
4becc8d4d4
|
feat: 改进错误日志功能并优化应用初始化流程
本次提交主要包含以下更新:
- **错误日志页面增强**:
- 重构了 [`app/static/js/error_logs.js`](app/static/js/error_logs.js) 中的分页逻辑,将样式控制移至 CSS,简化了 JavaScript 代码。
- 更新了 [`app/templates/error_logs.html`](app/templates/error_logs.html) 中的分页样式,使其与 `keys_status.html` 保持一致,提升了视觉统一性。
- 在错误日志页面新增了“清空全部”按钮,方便用户一键清除所有错误记录。
- 调整了错误日志表格头部的文本颜色为白色,以改善深色主题下的可读性。
- **应用初始化与配置优化**:
- 调整了 [`app/config/config.py`](app/config/config.py) 中日志记录器的获取方式,确保在配置加载早期即可用。
- 在 [`app/core/application.py`](app/core/application.py) 中引入了更明确的数据库连接管理(连接、断开、初始化)逻辑。
- 优化了 [`app/utils/helpers.py`](app/utils/helpers.py) 中项目路径和版本文件路径的定义方式,使其在模块级别初始化。
- **依赖清理**:
- 从 [`requirements.txt`](requirements.txt) 中移除了不必要的注释。
这些更改旨在提升错误日志模块的用户体验和功能性,并优化应用程序的启动和配置管理流程。
|
2025-05-14 14:25:04 +08:00 |
|
snaily
|
67f87989db
|
更新版本号至 2.1.4
本次提交将版本号从 2.1.3 更新至 2.1.4,以反映最新的代码更改和功能增强。这是一个常规的版本更新,未涉及其他功能或修复。
v2.1.4
|
2025-05-12 00:40:55 +08:00 |
|
snaily
|
17738b39a7
|
更新Telegram交流群链接至README和底部导航
本次提交更新了项目的Telegram交流群链接,具体变更包括:
- **README.md**:
- 修改了Telegram交流群徽章的链接,确保用户能够访问最新的交流群。
- **base.html**:
- 更新了底部导航中的Telegram交流群链接,提升了用户获取支持的便利性。
这些更改旨在确保用户能够顺利访问交流群,增强社区互动。
|
2025-05-12 00:39:00 +08:00 |
|
snaily
|
1e5312f96b
|
feat: 添加Telegram交流群链接至README和底部导航
本次提交在项目的README文件和底部导航中添加了Telegram交流群的链接,旨在为用户提供更便捷的交流渠道。具体变更包括:
- **README.md**:
- 新增Telegram交流群徽章和链接,方便用户访问。
- **base.html**:
- 在底部导航中添加了Telegram交流群的链接,提升了用户获取支持的便利性。
这些更改旨在增强用户社区的互动性,促进用户之间的交流与支持。
|
2025-05-12 00:29:02 +08:00 |
|
BigUncleHomePC
|
548e69d87f
|
fix: 修复请求日志删除任务中的时区属性错误
|
2025-05-11 14:51:26 +08:00 |
|
snaily
|
90161a1f47
|
feat(ui): 更新密钥状态页面样式和API调用详情
本次提交对密钥状态页面的样式进行了调整,主要变更包括:
- **位置调整**:
- 将某些元素的位置从右上角移动至右下角,以改善布局。
- **API调用详情表格样式**:
- 移除API调用详情模态框表格最后一行单元格的边框。
- 恢复成功/失败状态颜色和图标颜色,确保在API调用详情表格中状态信息的清晰可见。
这些更改旨在提升用户界面的可用性和视觉效果,改善用户体验。
|
2025-05-10 12:27:35 +08:00 |
|
snaily
|
9ea3452b17
|
chore: 更新版本号至 2.1.3
本次提交将版本号从 2.1.2 更新至 2.1.3,以反映最新的代码更改和功能增强。这是一个常规的版本更新,未涉及其他功能或修复。
v2.1.3
|
2025-05-09 19:09:13 +08:00 |
|
snaily
|
11e45fca37
|
feat: 增强流式响应处理,支持使用元数据
本次提交对流式响应处理进行了增强,主要变更包括:
- **参数更新**:
- 在 `_handle_openai_stream_response` 方法中新增 `usage_metadata` 参数,以支持传递使用情况的元数据。
- **数据结构调整**:
- 在返回的响应中,若提供了 `usage_metadata`,则将其包含在返回的 JSON 结构中,确保更全面的响应信息。
- **伪流式逻辑更新**:
- 在 `OpenAIChatService` 中的多个方法中,更新了对流式响应的调用,确保在处理响应时也能传递和使用元数据。
这些更改旨在提升流式响应的灵活性和信息丰富性,改善用户体验。
|
2025-05-09 18:57:10 +08:00 |
|
snaily
|
c85fe979e5
|
feat(ui): 更新底部版权信息布局和样式
本次提交对底部版权信息的HTML结构和样式进行了重构,旨在提升用户界面的可读性和视觉效果。主要变更包括:
- **布局调整**:
- 将版权信息分为两行,使用Flexbox布局,使内容更加整齐。
- **样式优化**:
- 更新了链接和图标的样式,增强了悬停效果,提升了用户交互体验。
这些更改旨在改善用户体验,使底部信息更加清晰和美观。
|
2025-05-09 15:17:50 +08:00 |
|
snaily
|
a47edf1661
|
fix:修复伪流式传输中的数据块分隔符
本次提交主要修复了在伪流式传输中数据块的分隔符问题,将 `\n\` 修改为 `\n\n`,确保数据块的正确分隔。这一更改提高了数据传输的准确性,避免了潜在的解析错误。相关修改涉及 `OpenAIChatService` 类中的多个方法,确保在发送数据时遵循一致的格式。
|
2025-05-09 14:11:08 +08:00 |
|
snaily
|
814a2e66c0
|
feat(ui): 更新密钥状态页面样式和交互
本次提交主要对密钥状态页面的样式进行了调整,增强了用户界面的可用性和视觉效果。
主要变更包括:
- **悬停效果**:
- 调整了API调用统计项的悬停背景色,使其更暗以更好地融合主题。
- **密钥列表按钮样式**:
- 更新了有效、无效、复制、详情和删除按钮的背景色和悬停效果,确保在不同状态下的视觉一致性。
- **状态标签样式**:
- 调整了有效、失败和无效标签的颜色和样式,使其在密钥列表中更加醒目。
这些更改旨在提升用户体验,使密钥管理界面更加直观和美观。
|
2025-05-09 00:43:48 +08:00 |
|
snaily
|
a7d548a849
|
feat: 实现伪流式传输功能
本次提交引入了伪流式传输(Fake Streaming)功能,旨在为不支持原生流式响应的语言模型或特定场景提供类似流式的用户体验。
主要变更包括:
- **配置更新**:
- 在 `.env.example` 和 `app/config/config.py` 中添加了新的配置项 `FAKE_STREAM_ENABLED` 和 `FAKE_STREAM_EMPTY_DATA_INTERVAL_SECONDS`,用于控制伪流式功能的启用和心跳包发送间隔。
- 更新了 `README.md` 以包含新的伪流式配置说明。
- **核心服务逻辑**:
- 在 `app/service/chat/openai_chat_service.py` 中:
- 新增 `_fake_stream_logic_impl` 方法,用于处理伪流式调用的核心逻辑。当启用伪流式时,该方法会调用非流式接口,并在等待期间定期发送空数据块以维持连接。
- 修改 `_handle_stream_completion` 方法,使其能够根据 `FAKE_STREAM_ENABLED` 配置在真实流式和伪流式逻辑之间切换。
- 改进了流式处理中的重试逻辑、API密钥切换机制以及错误日志记录,使其更加健壮。特别是在伪流式场景下,确保了即使在非流式调用中也能正确处理和记录错误。
- **前端配置界面**:
- 在 `app/static/js/config_editor.js` 中添加了处理和填充伪流式配置项的逻辑。
- 在 `app/templates/config_editor.html` 中为伪流式配置添加了相应的表单控件,允许用户在配置编辑器中启用/禁用伪流式并设置空数据发送间隔。
该功能通过在后端模拟流式输出,即使底层模型不支持流式传输,也能向客户端提供持续的数据流,从而改善了用户体验,特别是在处理可能耗时较长的请求时。
|
2025-05-08 23:37:35 +08:00 |
|
snaily
|
b6a54190ed
|
feat(config): 更新数据库类型设置的同步逻辑
本次提交主要更改了 `sync_initial_settings` 函数,增加了对 `DATABASE_TYPE` 设置的处理逻辑。具体变更包括:
- 在从数据库更新内存设置时,跳过对 `DATABASE_TYPE` 的更新,并记录调试信息,说明该设置由环境变量控制。
- 在将内存设置同步到数据库时,同样跳过对 `DATABASE_TYPE` 的同步,并记录调试信息。
DATABASE_TYPE 配置项将不会从数据库加载,也不会被同步到数据库,确保了您可以通过环境配置来控制数据库类型。
|
2025-05-08 22:12:14 +08:00 |
|
snaily
|
920228d3aa
|
feat: 实现API密钥的单独和批量删除功能
本次更新引入了删除API密钥的功能,包括前端界面和后端逻辑。
主要变更:
- **API路由 (`app/router/config_routes.py`):**
- 添加了新的API端点 `/keys/{key_to_delete}` 用于删除单个密钥。
- 添加了新的API端点 `/keys/delete-selected` 用于批量删除选定的密钥。
- 增加了对请求体 `DeleteKeysRequest` 的Pydantic模型定义。
- 在删除操作前进行身份验证。
- **配置服务 (`app/service/config/config_service.py`):**
- 实现了 `delete_key` 方法来处理单个密钥的删除逻辑。
- 实现了 `delete_selected_keys` 方法来处理批量密钥的删除逻辑。
- 确保在删除操作后更新配置。
- **密钥管理器 (`app/service/key/key_manager.py`):**
- 更新了 `remove_key` 方法,以确保从活动密钥列表中正确移除密钥。
- 改进了 `reset_instance` 方法,在重置时保留下一个密钥提示(`_preserved_next_key_in_cycle`),以防止在配置重载后立即丢失轮换状态。
- **前端JavaScript (`app/static/js/keys_status.js`):**
- 添加了 `showSingleKeyDeleteConfirmModal` 函数,用于显示单个密钥删除的确认模态框。
- 添加了 `executeSingleKeyDelete` 函数,用于执行单个密钥的删除请求。
- 添加了 `showDeleteConfirmationModal` 函数,用于显示批量删除密钥的确认模态框。
- 添加了 `executeDeleteSelectedKeys` 函数,用于执行批量删除密钥的请求。
- 更新了UI交互,包括按钮状态(加载中、禁用)和结果通知。
- **HTML模板 (`app/templates/keys_status.html`):**
- 为有效密钥和无效密钥列表中的每个密钥添加了“删除”按钮。
- 为有效密钥和无效密钥列表添加了“批量删除”按钮。
- 添加了用于单个密钥删除和批量删除的确认模态框HTML结构。
- 调整了现有模态框的样式,以提高视觉一致性。
这些更改增强了密钥管理功能,允许用户更灵活地管理其API密钥。
|
2025-05-08 21:58:26 +08:00 |
|
snaily
|
f1f568afca
|
feat(config): 添加模型助手功能以选择和管理模型
本次提交主要包含以下更改:
1. **后端更新**:
- 在 `app/service/config/config_service.py` 中新增 `fetch_ui_models` 方法,用于获取可用于 UI 的模型列表,并处理相关的错误情况。
- 在 `app/router/config_routes.py` 中新增 `/ui/models` 路由,提供模型列表的 API 接口,并添加身份验证逻辑。
2. **前端更新**:
- 在 `app/static/js/config_editor.js` 中实现模型助手的功能,包括模型列表的加载、搜索和选择。
- 在 `app/templates/config_editor.html` 中添加模型助手的模态框和相关的 UI 元素,允许用户从列表中选择模型。
这些更改旨在增强用户体验,使用户能够更方便地选择和管理模型,提高配置界面的交互性和功能性。
|
2025-05-08 19:48:03 +08:00 |
|
snaily
|
30bf666a57
|
Merge branch 'pr/happy-game/96'
|
2025-05-08 19:14:05 +08:00 |
|
snaily
|
c65d5244d6
|
fix(stats): 修复状态码检查条件的比较方式
本次提交主要更改了 `StatsService` 中对 `RequestLog.status_code` 的比较方式,将 `== None` 修改为 `is None`,以符合 Python 的最佳实践。这一修复旨在提高代码的可读性和准确性。
|
2025-05-08 19:08:03 +08:00 |
|
snaily
|
4ad18e43ef
|
refactor(ui): 优化无效密钥列表头部布局,使“全选”组件右对齐
这个消息表明了以下几点:
1. **类型 (Type)**: `refactor` - 这是一次重构,主要改进了现有用户界面元素的布局,而不是添加新功能或修复错误。
2. **范围 (Scope)**: `ui` - 表明更改影响的是用户界面部分。
3. **主题 (Subject)**:
* `优化无效密钥列表头部布局`: 指出更改的具体位置是“无效密钥列表”的头部区域,并且是对其布局的优化。
* `使“全选”组件右对齐`: 明确了主要的视觉变化是将“全选”复选框及其标签对齐到该区域的右侧。
|
2025-05-08 19:06:46 +08:00 |
|
happy game
|
f17cd66127
|
feat(sqlite): 将 SQLite 数据库迁移到数据目录
- 创建 data 目录存放 SQLite 数据库
- 更新使用 SQLite 的文档
|
2025-05-08 11:05:00 +08:00 |
|
snaily
|
e1c068ed9e
|
feat: 实现日志自动删除功能并更新配置管理
本次提交主要包含以下内容:
1. **日志自动删除功能**:
* 新增环境变量 (`AUTO_DELETE_ERROR_LOGS_ENABLED`, `AUTO_DELETE_ERROR_LOGS_DAYS`, `AUTO_DELETE_REQUEST_LOGS_ENABLED`, `AUTO_DELETE_REQUEST_LOGS_DAYS`) 用于控制错误日志和请求日志的自动删除策略。
* 在 `app/config/config.py` 中添加了对这些新配置项的支持和验证逻辑 (Pydantic `validator` 更新为 `field_validator`)。
* 修改了 `app/log/logger.py` 以适应新的日志配置。
* 新增 `app/scheduler/scheduled_tasks.py` 用于执行定期的日志清理任务。
* 新增 `app/service/error_log/error_log_service.py` 和 `app/service/request_log/request_log_service.py` 来处理具体的日志删除逻辑。
* 更新了 `app/router/error_log_routes.py` 和 `app/router/scheduler_routes.py` 以集成新功能。
2. **前端配置页面更新**:
* 在 `app/templates/config_editor.html` 和 `app/static/js/config_editor.js` 中添加了用于配置日志自动删除选项的用户界面元素。
3. **代码和文件结构调整**:
* 删除了不再使用的 `app/scheduler/key_checker.py` 文件。
* 在 `.gitignore` 文件中添加了 `default_db` 以忽略该目录。
4. **其他**:
* 对 `app/core/application.py` 进行了相应调整。
该更新旨在增强应用的日志管理能力,提供更灵活的日志保留策略,并优化了配置界面的用户体验。
|
2025-05-08 00:31:17 +08:00 |
|
snaily
|
b86eac839d
|
Merge pull request #93 from happy-game/sqlite
支持 SQLite
|
2025-05-08 00:04:04 +08:00 |
|
happy game
|
83252cbf33
|
docs(readme): 优化数据库相关环境变量的说明
|
2025-05-07 22:26:31 +08:00 |
|
happy game
|
12f6665519
|
feat(database): 支持使用 SQLite 数据库
- 在 `.env.example` 文件中添加了 `DATABASE_TYPE` 变量,用于指定数据库类型,默认使用 mysql
- 添加了 `DATABASE_TYPE` 和 `SQLITE_DATABASE` 配置项
- 在使用 mysql 时,对其他 MySQL 配置进行验证
- 添加 `aiosqlite` 依赖
|
2025-05-07 22:19:46 +08:00 |
|