fawney19
|
18d0af3dbf
|
feat: 格式转换支持三层开关控制(全局/Provider/端点)
- _get_convertible_formats 始终返回所有可转换格式,由下游精确过滤
- get_compatible_provider_formats 增加 Provider 级别 enable_format_conversion 判断
- Provider 设置更新后自动失效相关缓存(模型列表、解析缓存、Provider 缓存)
- 前端 toggleFormatConversion 使用接口返回的完整对象更新本地状态
|
2026-02-06 23:01:56 +08:00 |
|
fawney19
|
5be7813ab8
|
refactor: 将访问令牌功能迁移至模块系统
- 新增 management_tokens 模块定义,支持通过环境变量控制可用性
- 从静态路由中移除 management-tokens,改由模块动态注册
- 前端路由添加模块激活检查,未激活时重定向到仪表盘
- 认证服务添加模块激活检查,未激活时禁止令牌认证
- 导航菜单中移除访问令牌入口(保留直接 URL 访问)
- 修复 alembic 迁移脚本格式和错误处理
|
2026-02-05 16:32:27 +08:00 |
|
fawney19
|
f3e2f84b38
|
feat: 统计数据优化 - 支持细粒度时间范围和多维度分析
- 新增 StatsHourly/StatsDaily 预聚合表,支持任意时区的精确统计
- 实现 UTC datetime 范围查询策略,边界数据实时聚合
- 新增统计 API:用户/API Key 维度、成本分析、性能百分位、错误分类
- 新增前端页面:成本分析、性能分析、用户统计
- 新增 TimeRangePicker 组件和统计可视化组件
- 优化 Dashboard 和 Usage 页面支持时间范围筛选
Close #135
|
2026-02-04 02:04:54 +08:00 |
|
fawney19
|
00442c41fa
|
feat: 视频计费增强与影子计费系统
|
2026-02-03 18:48:39 +08:00 |
|
fawney19
|
9e31efe26c
|
refactor: 重构异步任务系统和计费服务架构
- 重构任务系统:新增 lifecycle (TaskStatus/BillingStatus)、context、application 模块
- 将 video tasks 泛化为 async tasks,支持更通用的异步任务管理
- 新增 Gemini Files 管理模块和管理界面
- 重构 billing 服务:拆分 schema.py 和 service.py
- 新增 candidate 服务模块用于请求候选管理
- 数据库迁移:添加 billing_status、request_id、gemini_file_mappings 表和索引
- 移除废弃的 video_telemetry、task orchestrator 等模块
|
2026-02-02 03:16:52 +08:00 |
|
fawney19
|
7b66505634
|
refactor: 全局适配 ApiFamily/EndpointKind 结构化标识体系
将新的 (ApiFamily, EndpointKind) / `family:kind` 签名体系应用到整个代码库:
- API Handlers: 所有 adapter/handler 使用新的签名格式
- Services: provider, model, usage, cache, auth 等服务层适配
- Database: ProviderEndpoint 新增 api_family/endpoint_kind 字段
- Frontend: Provider 管理、Usage 表格等组件适配
- Tests: 更新所有相关测试用例
|
2026-02-01 17:28:00 +08:00 |
|
fawney19
|
5603c72f40
|
fix: 修复 mypy 类型检查错误并升级到 Python 3.14
主要变更:
- 修复 1483 个 mypy 类型检查错误
- 添加缺失的类型注解 (Any, Callable, Session 等)
- 修复隐式 Optional 类型 (param: Type = None -> param: Type | None = None)
- 修复 __new__ 单例模式返回类型
- 添加 type: ignore 注释处理第三方库类型问题
- 更新 pyproject.toml 依赖到 Python 3.14 兼容版本
- 更新 mypy/black 配置为 Python 3.14
|
2026-01-30 14:30:57 +08:00 |
|
AAEE86
|
24d24f6829
|
chore: 升级到 Python 3.14 并现代化代码
- 升级 Docker 基础镜像从 Python 3.12 到 3.14
- 更新 pyproject.toml 支持 Python 3.13/3.14
- 移除 Python 3.8/3.9/3.10/3.11 分类器
- 更新 black 和 mypy 配置目标版本
- 将 get_event_loop() 替换为 get_running_loop() 加上 RuntimeError 处理
- 简化 compute_cost_sync 中的 asyncio.run 使用
- Dict/List/Tuple/Set → dict/list/tuple/set (PEP 585)
- Optional[T] → T | None (PEP 604)
- Union[A, B] → A | B (PEP 604)
- 移除废弃的 typing 导入
- 移除不必要的字符串引号注解
|
2026-01-30 03:10:21 +08:00 |
|
fawney19
|
4cd196f665
|
fix: 隐藏普通用户的模型映射信息
对普通用户隐藏使用记录中的 target_model 字段,只有管理员可见。
避免向普通用户暴露内部模型映射策略。
|
2026-01-28 12:41:29 +08:00 |
|
fawney19
|
40e54097b0
|
feat: 添加 Zeabur 部署文档,Models API 支持 CLI 格式
- 新增 Zeabur 平台部署指南文档
- Models API 格式列表增加对应的 CLI 格式支持
|
2026-01-28 12:06:48 +08:00 |
|
fawney19
|
5c80be92c9
|
refactor: 使用 data_format_id 重构格式兼容性判断逻辑
- 在 ApiFormatDefinition 中新增 data_format_id 字段标识数据格式
- 新增 can_passthrough() 函数判断格式间是否可透传
- 重构 compatibility.py 使用 data_format_id 替代 get_base_format()
- 使用量记录支持从 endpoint 回填格式信息(兼容历史数据)
- 前端优化格式转换显示逻辑,区分跨格式转换和同族格式差异
- 首页 header 响应式布局优化
|
2026-01-28 11:07:23 +08:00 |
|
fawney19
|
c1d7b13e7a
|
feat: 使用量记录添加格式转换字段
- cli_handler_base 添加 needs_conversion 变量跟踪格式转换状态
- 用户使用量查询响应新增 endpoint_api_format 和 has_format_conversion 字段
|
2026-01-28 10:01:19 +08:00 |
|
fawney19
|
91a30adfc4
|
feat: 用户模型目录支持格式转换
为 /api/users/me/available-models 端点添加格式转换支持,
确保显示所有可通过任意客户端格式访问的模型。
- 新增 _get_all_available_provider_ids 方法
- 检查 OPENAI/CLAUDE/GEMINI 三种格式的兼容性
- 优化 DB 查询从 6 次减少到 2 次
- 与 /v1/models API 逻辑保持一致
|
2026-01-28 01:45:19 +08:00 |
|
fawney19
|
1e0255d0ed
|
feat: 优化批量余额查询和用户模型权限检查
- 添加批量余额查询并发限制,避免数据库连接池耗尽
- 支持余额加载 pending 状态和前端自动重试机制
- 添加用户可用模型 API,统一使用 AccessRestrictions
- 修复用户表单编辑时数组引用共享导致的数据覆盖问题
- 添加数据库连接池配置说明到 .env.example
|
2026-01-28 01:01:05 +08:00 |
|
NyaDoo
|
cddccd2b99
|
fix: 移除后端普通用户使用统计API中的提供商信息/修复下拉菜单悬停效果 (#121)
* fix: 移除普通用户使用统计页面的提供商信息
普通用户不应该看到后端使用的提供商信息,此前前端筛选框和后端 API
都泄露了这些数据。
- 前端:为提供商筛选下拉菜单添加 isAdmin 条件
- 后端:移除 summary_by_provider 和 records 中的 provider 字段
- 补充:添加遗漏的 first_byte_time_ms 字段
* fix: 修复 SelectItem 下拉菜单悬停高亮效果
将 hover:bg-primary/10 改为 data-[highlighted]:bg-accent,与
DropdownMenuItem 保持一致。radix-vue 使用 data-highlighted 属性
控制高亮状态,这样键盘导航和鼠标悬停的高亮行为才能正确同步。
---------
Co-authored-by: LewisPen <LewisPen@nyadoo.com>
|
2026-01-23 18:57:41 +08:00 |
|
fawney19
|
3d88dfd98a
|
feat: 添加 OAuth 认证支持及相关改进
- 新增 OAuth 模块,支持 LinuxDo/GitHub/Google 等第三方登录
- 用户邮箱改为可选字段,支持无邮箱注册
- 新增模块配置验证状态 (config_validated/config_error)
- 系统设置界面改为分块独立保存
- 用户设置新增 OAuth 绑定管理和首次密码设置
- 登录界面支持 OAuth 按钮展示
- 邮箱验证设置移至邮件设置页面
|
2026-01-19 03:19:17 +08:00 |
|
fawney19
|
8e11f3864a
|
feat: 添加 API Key 锁定功能和请求头规则系统
1. API Key 锁定功能
- 管理员可锁定/解锁用户的 API Key
- 锁定后用户无法使用、修改或删除该 Key
- 前端显示锁定状态并禁用相关操作
2. 请求头规则系统
- 将 endpoint.headers 升级为 header_rules
- 支持 set(设置)、drop(删除)、rename(重命名)操作
- 前端提供可视化规则编辑界面
- 包含数据迁移脚本
Close #37 Close #86 Close #88
|
2026-01-16 01:18:54 +08:00 |
|
fawney19
|
09e0f594ff
|
refactor: 重构限流系统和健康监控,支持按 API 格式区分
- 将 adaptive_concurrency 重命名为 adaptive_rpm,从并发控制改为 RPM 控制
- 健康监控器支持按 API 格式独立管理健康度和熔断器状态
- 新增 model_permissions 模块,支持按格式配置允许的模型
- 重构前端提供商相关表单组件,新增 Collapsible UI 组件
- 新增数据库迁移脚本支持新的数据结构
|
2026-01-10 18:48:35 +08:00 |
|
fawney19
|
a12b43ce5c
|
refactor: 清理数据库字段命名歧义
- users 表:重命名 allowed_endpoints 为 allowed_api_formats(修正历史命名错误)
- api_keys 表:删除 allowed_endpoints 字段(未使用的功能)
- providers 表:删除 rate_limit 字段(与 rpm_limit 重复)
- usage 表:重命名 provider 为 provider_name(避免与 provider_id 外键混淆)
同步更新前后端所有相关代码
|
2026-01-07 19:53:32 +08:00 |
|
fawney19
|
0061fc04b7
|
feat: 添加访问令牌管理功能并升级至 0.2.4
- 新增 Management Token(访问令牌)功能,支持创建、更新、删除和管理
- 前端添加访问令牌管理页面,支持普通用户和管理员
- 后端实现完整的令牌生命周期管理 API
- 添加数据库迁移脚本创建 management_tokens 表
- Nginx 配置添加 gzip 压缩,优化响应传输
- Dialog 组件添加 persistent 属性,防止意外关闭
- 为管理后台 API 添加详细的中文文档注释
- 简化多处类型注解,统一代码风格
|
2026-01-07 14:55:07 +08:00 |
|
fawney19
|
431c6de8d2
|
feat: 用户用量页面支持分页、搜索和密钥信息展示
- 用户用量API增加search参数支持密钥名、模型名搜索
- 用户用量API返回api_key信息(id、name、display)
- 用户页面记录表格增加密钥列显示
- 前端统一管理员和用户页面的分页/搜索逻辑
- 后端LIKE查询增加特殊字符转义防止SQL注入
- 添加escape_like_pattern和safe_truncate_escaped工具函数
|
2026-01-05 19:35:14 +08:00 |
|
fawney19
|
a2f33a6c35
|
perf: 拆分热力图为独立接口并添加 Redis 缓存
- 新增独立热力图 API 端点 (/api/admin/usage/heatmap, /api/users/me/usage/heatmap)
- 添加 Redis 缓存层 (5分钟 TTL),减少数据库查询
- 用户角色变更时清除热力图缓存
- 前端并行加载统计数据和热力图,添加加载/错误状态显示
- 修复 cache_decorator 缺少 JSON 解析错误处理的问题
- 更新 docker-compose 启动命令提示
|
2026-01-04 22:42:58 +08:00 |
|
fawney19
|
c3a5878b1b
|
feat: 优化用量查询分页和热力图性能
- 用量查询接口添加 limit/offset 分页参数支持
- 热力图统计从实时查询 Usage 表改为读取预计算的 StatsDaily/StatsUserDaily 表
- 修复 avg_response_time_ms 为 0 时被错误跳过的问题
|
2026-01-04 18:02:47 +08:00 |
|
fawney19
|
88e37594cf
|
refactor(backend): update handlers, utilities and core modules after models restructure
|
2025-12-15 14:30:53 +08:00 |
|
fawney19
|
859c699e90
|
fix: 调整 interval-timeline 接口 limit 上限
- 管理员接口 limit 上限从 5000 调整为 50000
- 用户接口 limit 上限从 5000 调整为 20000
- 默认 hours 从 168 改为 24
|
2025-12-11 19:39:51 +08:00 |
|
fawney19
|
abc41c7d3c
|
feat: 添加缓存监控和使用量统计 API 端点
|
2025-12-11 17:47:59 +08:00 |
|
fawney19
|
323a514f77
|
refactor: 优化活跃请求状态查询逻辑
- 重命名 get_active_requests 为 get_active_requests_status
- 支持从端点配置读取超时时间
- 新增 content_length_limit 错误类型
|
2025-12-11 10:45:06 +08:00 |
|
fawney19
|
913a87d7f3
|
refactor: 重构活跃请求查询逻辑到 UsageService
- 在 UsageService 新增 get_active_requests 方法,统一处理活跃请求查询
- 支持自动清理超时的 pending 请求(默认 5 分钟)
- admin 和 user 接口均复用该方法,减少重复代码
- 支持按 ID 列表查询或查询所有活跃请求
|
2025-12-11 10:04:15 +08:00 |
|
fawney19
|
f784106826
|
Initial commit
|
2025-12-10 20:52:44 +08:00 |
|