cxyfer
c9fca1561c
Merge remote-tracking branch 'origin/main' into feature/upload-compatibility
2025-07-12 03:36:46 +08:00
cxyfer
5eb2dfd822
feat: Add Files API support with upload, list, get and delete operations
...
- Implement complete Files API compatible with Gemini API format
- Support resumable file uploads with chunked transfer (tested with 15MB video)
- Create file management service with database tracking
- Add file domain models and API request/response objects
- Implement file routes with proper authentication
- Use fixed API key for Files API requests (due to Google API restrictions)
- Support file state management (PROCESSING, ACTIVE, FAILED)
- Add scheduled task for automatic expired file cleanup
- Integrate seamlessly with existing key management and load balancing
2025-07-12 03:33:39 +08:00
snaily
a6cfc12443
feat: 更新响应处理逻辑以支持推理内容
...
- 修改了 response_handler.py 中的 _handle_openai_stream_response 和 _handle_openai_normal_response 方法,增加了对推理内容 (reasoning_content) 的支持。
- 更新了 _extract_result 方法的返回值,确保能够提取推理内容。
- 在 gemini_chat_service.py 和 openai_chat_service.py 中,调整了生成配置以包含思考过程的选项。
- 在 vertex_express_chat_service.py 中,增强了对客户端思考配置的处理逻辑,确保优先使用客户端提供的配置。
2025-07-10 21:21:55 +08:00
snaily
f6d64dd850
feat: 添加 TTS 语音名称常量并更新 TTS 服务逻辑
...
- 在 constants.py 中新增 TTS_VOICE_NAMES 列表,包含多个语音名称。
- 更新 tts_service.py 中的语音配置逻辑,确保使用请求中的语音名称(如果有效),否则回退到默认配置。
2025-07-10 01:03:20 +08:00
snaily
eed62caa78
refactor: 移除 ApiClient 中的 count_tokens 抽象方法
...
- 从 ApiClient 类中删除了 count_tokens 方法的抽象定义,以简化接口。
2025-07-10 00:53:06 +08:00
ripper
204d41d6f3
feat: add JSON Schema cleaning function to remove unsupported fields in Gemini API
2025-07-09 10:29:42 +08:00
ripper
858df0548e
fix: ensure generationConfig is not None in payload
2025-07-09 10:17:32 +08:00
snaily
b3da021803
refactor: 优化配置解析逻辑,增强对泛型类型的支持
...
- 在 config.py 中引入 get_args 和 get_origin 函数,以更好地处理 List 和 Dict 类型的解析。
- 更新了对 List[str] 和 List[Dict[str, str]] 的解析逻辑,增加了错误处理和日志记录。
- 在 keys_status.js 中将 filterValidKeys 函数替换为 filterAndSearchValidKeys,保留旧函数以避免破坏潜在的遗留调用。
- 在 keys_status.html 中新增选项以支持更多项目选择。
2025-07-08 16:35:56 +08:00
snaily
d234f826f4
chore: 更新 Vertex API 相关注释和正则表达式为 Vertex Express API,确保一致性和准确性。修改了多个文件中的相关描述和提示信息,以反映 API 名称的变化。
2025-07-08 15:27:16 +08:00
snaily
231b69ecf8
feat: 添加自定义 Headers 功能
...
- 在配置中添加 `CUSTOM_HEADERS` 选项,允许用户定义全局请求头。
- 更新 API 客户端,将自定义 `header` 应用于所有出站请求。
- 在配置页面上为 `CUSTOM_HEADERS` 添加了完整的前端编辑功能。
2025-07-08 13:58:05 +08:00
lc631017672
da8f7539a1
Fix: Handle empty parts in CountTokensRequest and improve payload filtering
2025-07-07 14:13:16 +08:00
lc631017672
64a68f1176
refactor: Remove debug logging for security checks
2025-07-07 10:27:48 +08:00
lc631017672
1199d7cc3c
feat: Add support for countTokens API and improve debug logging
2025-07-07 10:08:57 +08:00
ry
8a827d2acb
feat: 支持CloudFlare图床自定义上传文件夹路径
...
- 新增CLOUDFLARE_IMGBED_UPLOAD_FOLDER环境变量配置
- 用户可通过该配置项指定图片在CloudFlare图床中的上传路径
2025-07-05 23:32:45 +08:00
snaily
f38b5ae870
feat: 添加TTS相关配置和功能
...
- 在.env.example中添加TTS模型、语音名称和语速的配置选项
- 更新README文件,增加TTS相关配置的说明
- 在配置类中添加TTS相关设置
- 新增TTS请求模型以支持文本转语音功能
- 更新智能路由中间件以支持音频请求
- 在路由中添加处理TTS请求的API接口
- 更新前端配置编辑器以支持TTS配置选项
2025-07-05 00:47:55 +08:00
snaily
418b3ca13c
Merge branch 'pr/BigLiao/172'
2025-07-03 23:44:02 +08:00
jesonliao
09bfa85e69
fix: 修复api中对role的校验
...
官方给的demo是不传role的
2025-07-03 23:08:31 +08:00
jesonliao
62b132208b
fix: 修复数据库密码中包含特殊字符串时的问题
2025-07-03 22:23:47 +08:00
snaily
f79a52f839
fix:优化智能路由中间件,增强URL处理逻辑
...
- 增加对新路径模式的支持,包括对`v1beta/models`的处理
- 统一日志记录格式,提升调试信息的可读性
- 规范化代码风格,确保一致性和可维护性
- 修复了请求体和查询参数的模型名称提取逻辑
2025-07-03 17:25:50 +08:00
chinrain
ada32d526a
refactor: 简化智能路由中间件,优化混合格式URL处理
...
- 重构智能路由逻辑,在保证聊天的同时尽量简化
- 只会修改常见错误,其余的透传(方便以后维护或者不用维护)
- 常见错误都能正常聊天
- 统一前端样式
2025-07-03 03:01:10 +08:00
chinrain
e18aa73456
添加gemini前缀模型列表
2025-07-02 23:52:03 +08:00
chinrain
24747a5f09
移除重复配置
2025-07-02 23:41:48 +08:00
chinrain
621dac22dc
Merge remote-tracking branch 'origin/main' into feat/AutoRoute
2025-07-01 02:41:18 +08:00
chinrain
23d7004b60
- 增加vertex-express支持
...
- 移除了不必要的判断流式请求的方法
2025-07-01 02:25:32 +08:00
snaily
c3b3d34127
Merge branch 'pr/stevessr/160'
2025-06-30 23:54:42 +08:00
chchchchc1023
18a166afb0
feat: 添加智能路由中间件,支持API路径自动规范化
...
- 新增SmartRoutingMiddleware智能路由中间件
- 支持OpenAI/HF/Gemini/默认格式的自动检测和转换
- 修复错误URL路径格式,提升API兼容性
- 添加URL_NORMALIZATION_ENABLED配置开关,默认关闭
- 智能路由功能默认关闭,需手动启用
2025-06-30 22:58:58 +08:00
stevessr
a41447a96d
fix: 更新 thinkingBudget 的最大值限制至32767 , 最小值为 -1
2025-06-30 20:43:27 +08:00
Wangnov
df8d543539
删除ruff导致的格式化换行
2025-06-30 17:52:10 +08:00
Wangnov
5ecce8e0fe
fix: 使用Union替代类型注解中的管道符号,使python3.9版本不报错
2025-06-30 17:37:02 +08:00
snaily
38dbcd1643
fix: 更新API请求URL,增加pageSize参数以支持更大模型列表的获取
2025-06-17 23:30:36 +08:00
sk163
b72298fef4
feat: 增加了代理列表使用策略选项,对于同一个API_KEY可以使用固定代理
2025-06-14 14:36:11 +08:00
snaily
fb106cd975
Merge branch 'pr/coulsontl/148'
2025-06-07 15:12:36 +08:00
coulsontl
d9729a8a89
chore: 修改批量验证结果弹窗错误信息的样式
2025-06-07 08:58:12 +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
8484651fdd
Merge branch 'pr/coulsontl/135'
2025-05-26 01:24:16 +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
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
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
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