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
snaily
1ff494416b
Refactor: 大幅清理代码注释并优化配置提示
...
本次提交主要包含以下更改:
- 代码清理:
- 移除了 `app/router/` 目录下多个路由文件 ([`config_routes.py`](app/router/config_routes.py:1), [`error_log_routes.py`](app/router/error_log_routes.py:1), [`gemini_routes.py`](app/router/gemini_routes.py:1), [`openai_compatiable_routes.py`](app/router/openai_compatiable_routes.py:1), [`openai_routes.py`](app/router/openai_routes.py:1), [`routes.py`](app/router/routes.py:1), [`scheduler_routes.py`](app/router/scheduler_routes.py:1), [`stats_routes.py`](app/router/stats_routes.py:1), [`version_routes.py`](app/router/version_routes.py:1)) 中的大量解释性注释、TODO 注释和多余的日志标记。
- 清理了 [`scheduler_routes.py`](app/router/scheduler_routes.py:31) 中被注释掉的认证逻辑。
- 这些清理旨在提高代码的整洁度和可维护性。
- UI 优化:
- 在 [`app/templates/config_editor.html`](app/templates/config_editor.html:327) 中,为 Gemini 模型的安全过滤级别设置增加了一条重要的提示信息,建议用户将其设置为 "OFF" 以避免影响输出速度,并强调非必要不应随意改动。
2025-05-07 14:47:22 +08:00
snaily
8ec1d16e9d
refactor: 优化 JS 结构、API 调用和密钥管理
...
此次提交引入了重要的重构和改进:
- JavaScript ([`app/static/js/config_editor.js`](app/static/js/config_editor.js:1), [`app/static/js/keys_status.js`](app/static/js/keys_status.js:1), [`app/static/js/error_logs.js`](app/static/js/error_logs.js:1)):
- 通过初始化函数(例如 [`initializeKeyPaginationAndSearch()`](app/static/js/config_editor.js:985),[`initializeAutoRefreshControls()`](app/static/js/config_editor.js:936))实现代码模块化,以实现更好的组织。
- 通过采用 `fetchAPI` 辅助函数(在 [`showApiCallDetails()`](app/static/js/config_editor.js:1097),[`fetchAndDisplayLogs()`](app/static/js/error_logs.js:68),[`fetchKeyStatus()`](app/static/js/keys_status.js:283) 中可见其用法)标准化 API 交互。
- 改进了分页、搜索和 DOM 元素管理,尤其是在 [`config_editor.js`](app/static/js/config_editor.js:1) 和 [`keys_status.js`](app/static/js/keys_status.js:1) 中。
- 在 [`config_editor.js`](app/static/js/config_editor.js:1029) 中通过 [`registerServiceWorker()`](app/static/js/config_editor.js:1018) 添加了 service worker 注册。
- Gemini API ([`app/router/gemini_routes.py`](app/router/gemini_routes.py:1)):
- 在 [`verify_selected_keys()`](app/router/gemini_routes.py:328) 端点内的 `GeminiRequest` 中添加了 `generation_config`(包含 `temperature`、`top_p`、`max_output_tokens`),以实现更可控和一致的 API 密钥验证调用。
- 配置用户界面 ([`app/templates/config_editor.html`](app/templates/config_editor.html:1)):
- 将 `sensitive-input` 类应用于各种 API 密钥和令牌字段(例如 [`AUTH_TOKEN`](app/templates/config_editor.html:149),[`PAID_KEY`](app/templates/config_editor.html:339),[`SMMS_SECRET_TOKEN`](app/templates/config_editor.html:364)),以启用特定的客户端处理(例如屏蔽或特殊验证)。
这些更改旨在提高代码的可维护性,标准化前端后端通信,增强 API 交互的稳健性,并优化用于应用程序配置和 API 密钥状态管理的用户界面。
2025-05-07 13:58:05 +08:00
snaily
f13a4fba5f
feat: 在 OpenAI 聊天响应中集成 usage_metadata 以跟踪 token 使用情况
...
此更改将 `usage_metadata` 参数添加到了 `app/handler/response_handler.py` 和 `app/service/chat/openai_chat_service.py` 中的相关函数。
`usage_metadata`(通常包含 token 计数:prompt_tokens, completion_tokens, total_tokens)现在会从 OpenAI API 响应中提取,并用于填充标准化响应格式中的 `usage` 字段。
这样可以更准确地跟踪 OpenAI 聊天完成接口的 token 消耗。
2025-05-06 18:32:47 +08:00
snaily
d4a3ed3a57
refactor(gemini): 优化 Gemini API 请求中可选参数的处理
...
- 调整 `gemini_chat_service` 中的 `_build_payload` 函数,使其在请求中未明确提供 `generationConfig` 和 `systemInstruction` 时,不会向 Gemini API 发送默认的空值(例如 `{}` 或 `""`)。现在将传递 `None`,这更符合 API 的预期行为。
- 在 `gemini_routes` 的 `verify_key` 函数中,为测试 API 密钥有效性的示例请求添加了明确的 `generationConfig`,以确保验证调用的健壮性。
2025-05-06 17:32:46 +08:00
snaily
a6a1e7fb52
refactor(retry): 统一管理 API 最大重试次数配置
...
将 API 调用的最大重试次数 (`MAX_RETRIES`) 的配置移至 `app.config.config.settings`。
- 修改 `RetryHandler` 以直接从全局设置读取 `MAX_RETRIES`。
- 更新使用 `RetryHandler` 的路由装饰器,移除冗余的 `max_retries` 参数传递。
这使得重试次数的配置更加集中和易于管理。
2025-05-06 12:38:31 +08:00
snaily
c01bc242aa
fix(config): 将 MYSQL_SOCKET 的默认值从 None 更改为 ""
2025-05-06 11:20:29 +08:00
snaily
ab06627d3f
docs(readme): 添加 SAFETY_SETTINGS 环境变量说明
...
在 README.md 文件中增加了对 `SAFETY_SETTINGS` 环境变量的配置说明,用于配置内容安全阈值。
2025-05-06 11:14:30 +08:00
snaily
631d054d9e
Merge pull request #79 from DullJZ/main
...
feat: 支持mysql socket连接
2025-05-05 22:36:52 +08:00
snaily
d835085e61
Merge branch 'main' of https://github.com/snailyp/gemini-balance
2025-05-05 18:26:40 +08:00
snaily
7c3ebe7e8b
feat(config): 更新 .env.example 中的默认安全设置
...
将骚扰、仇恨言论、色情、危险内容的阈值从 BLOCK_NONE 调整为 OFF,并添加公民诚信类别(阈值为 BLOCK_NONE)。
2025-05-05 18:26:35 +08:00
DullJZ
7e76d07e28
feat: 支持mysql socket连接
2025-05-05 09:45:34 +00:00
snaily
d21fb6c455
更新 README.md
2025-05-05 10:21:17 +08:00
snaily
56f6f5e198
feat: 支持图像生成流式响应并优化配置
...
- 为 OpenAI 兼容路由的图像生成聊天添加流式支持。
- 重构 `gemini-2.0-flash-exp` 安全设置,使用常量统一管理。
- 更改图像生成默认响应格式为 `url`。
- 启用 `.env.example` 中的 `AUTH_TOKEN`。
- 清理部分代码注释。
2025-05-03 20:37:09 +08:00
snaily
929592bbc4
chore: 更新版本号至 2.1.2
v2.1.2
2025-05-02 22:49:50 +08:00
snaily
2225a40bbe
feat: 增加 Gemini 安全设置支持
...
- 新增 `SAFETY_SETTINGS` 配置项,允许用户通过环境变量或数据库配置 Gemini 模型的安全过滤级别。
- 更新后端服务 (`config.py`, `constants.py`, `gemini_routes.py`, `openai_routes.py`, `openai_chat_service.py`, `api_client.py`, `model_service.py`) 以支持和传递 `safety_settings` 参数。
- 在配置编辑器前端 (`config_editor.js`, `config_editor.html`) 添加了用于管理安全设置的用户界面。
- 将模型获取逻辑 (`model_service.py`, `api_client.py`) 改为异步。
- 优化 Service Worker (`service-worker.js`) 的缓存策略为 "cache then network"。
Bump version to 2.1.2
2025-05-02 22:49:36 +08:00
snaily
3480fa3b0f
Merge branch 'pr/tbphp/74'
2025-05-02 18:17:50 +08:00
tbphp
d7113f5fc4
fix: 修复安全设置对输出速度的影响
2025-05-02 17:07:50 +08:00
snaily
2072f54ca1
refactor: 重构错误处理并优化路由与服务结构
...
主要变更:
- 新增 `app/handler/error_handler.py`,引入 `handle_route_errors` 异步上下文管理器,用于统一处理路由中的错误和日志记录。
- 在 `openai_routes` 和 `openai_compatiable_routes` 中应用 `handle_route_errors`,移除冗余的 try-except 块,简化路由逻辑。
- 将 `OpenAICompatiableService` 移动到 `app/service/openai_compatiable/` 目录下。
- 将 `StatsService` 移动到 `app/service/stats/` 目录下,并更新相关导入路径。
- 修复 `response_handler` 中处理 Gemini API 响应时 `inlineData` 字段的错误(原为 `inline_data`)。
- 修复 `openai_routes` 和 `openai_compatiable_routes` 中处理图像生成聊天(如 imagen3-chat)时未正确使用付费 API key 的问题。
- 在 `requirements.txt` 中将 `httpx` 更改为 `httpx[socks]`,以增加 SOCKS 代理支持。
2025-05-02 01:20:05 +08:00
snaily
7c9b721164
chore:更新 README.md,在 API 端点部分添加新的 OpenAI 兼容接口信息。
v2.1.1
2025-04-30 20:49:14 +08:00
snaily
83ce50975a
feat: 实现 OpenAI 兼容 API 端点和批量代理删除
...
新增与 OpenAI 规范兼容的 API 端点:
- `/openai/v1/models`
- `/openai/v1/chat/completions` (支持流式传输、重试和密钥切换)
- `/openai/v1/embeddings`
- `/openai/v1/images/generations`
包含:
- 在 `app/router/openai_compatiable_routes.py` 中新增路由。
- `OpenAICompatiableService` 用于处理请求逻辑、日志记录和错误管理。
- 更新 `OpenaiApiClient` 以支持新方法和代理使用。
- 修改 `app/domain/openai_models.py` 以实现兼容性。
- 为新 API 添加专用日志记录器 (`openai_compatible`)。
- 为新路由 (`/openai`, `/api/version/check`) 添加认证中间件豁免。
增强配置编辑器 UI:
- 在 `app/static/js/config_editor.js` 和 `app/templates/config_editor.html` 中添加批量代理删除功能。
2025-04-30 20:39:47 +08:00
snaily
7da9110704
feat: 添加代理支持 (HTTP/SOCKS5)
...
为应用程序添加了通过代理服务器访问 Gemini API 的功能。
主要变更包括:
* **配置**:
* 在 `.env.example` 和 `app/config/config.py` 中添加了 `PROXIES` 配置项,允许用户指定一个或多个 HTTP 或 SOCKS5 代理服务器列表。
* 更新 `README.md` 以包含关于代理配置的说明。
* **后端**:
* 修改 `app/service/client/api_client.py` 中的 `GeminiApiClient`,使其在发起请求时能从配置的 `PROXIES` 列表中随机选择一个代理使用。
* 添加了 `app/log/logger.py` 中的 `get_api_client_logger`,用于记录 API 客户端(包括代理使用)的相关日志。
* **前端**:
* 在 `app/templates/config_editor.html` 配置编辑器页面添加了代理列表的显示区域和“添加代理”按钮。
* 实现了用于批量添加代理的模态框 UI。
* 在 `app/static/js/config_editor.js` 中添加了处理代理列表显示、打开/关闭模态框以及处理批量添加代理(包括提取、去重和更新 UI)的 JavaScript 逻辑。
* 确保在初始化配置时为 `PROXIES` 设置默认空列表。
此功能使得用户可以在需要通过代理访问外部网络的环境下使用该应用。
2025-04-30 10:57:17 +08:00
snaily
e9d19de7c6
refactor: 迁移媒体常量并重构相关处理逻辑
...
将音频/视频相关的配置(支持格式、大小限制、MIME类型)从 `config.py` 移动到 `core/constants.py`,以集中管理常量。
更新 `message_converter.py`:
- 从 `core.constants` 导入媒体常量。
- 添加并使用 `message_converter` 的专用日志记录器。
- 清理导入和代码格式。
更新 `openai_chat_service.py`:
- 调整 `_has_media_parts` 函数以正确检测 `inline_data`。
- 清理导入和代码格式。
在 `log/logger.py` 中添加 `get_message_converter_logger` 函数。
对 `config.py` 和 `response_handler.py` 进行了相关的移除和微小的代码清理。
2025-04-29 17:54:48 +08:00
Your Name (aider)
e822831178
fix: remove duplicate convert method in message converter
2025-04-26 03:35:16 +00:00
Your Name (aider)
775930edce
feat: add support for audio and video input via base64
...
This commit adds configuration and conversion logic to handle audio and video inputs in base64 format, similar to existing image support. It includes:
1. Added supported formats and size limits in config
2. Implemented media validation and conversion in message converter
3. Updated payload building to handle media parts
4. Improved error handling and logging for media processing
2025-04-26 03:07:54 +00:00
snaily
cb40848c04
chore: 更新版本号至2.1.0
v2.1.0
2025-04-26 03:34:06 +08:00