fawney19
|
cf2eee222e
|
refactor: 前端全面替换 any 为 unknown 并统一错误处理,后端用量记录补写请求头/体
- 前端 API 层、stores、conversation 解析器、组件全面替换 any 为 unknown/具体类型
- 错误处理统一使用 parseApiError/getErrorStatus 替代 err.response?.data?.detail 模式
- 后端 handler/TaskService/UsageLifecycle/StreamTracker 链路传递 request_headers/request_body
- streaming/pending 状态更新时可补写客户端和提供商的请求头及请求体
- 新增 TaskService 和 UsageService 相关测试
|
2026-02-22 00:43:41 +08:00 |
|
AAEE86
|
cabaa9f1df
|
refactor(frontend): 统一 routing 数据加载,消除子组件重复请求
将 Model 和 Provider 详情抽屉中的 routing/mapping 数据加载逻辑
从各子组件(RoutingTab、ModelMappingsTab、ModelsTab、ModelMappingTab)
提升到父组件统一管理,通过 props 向下传递数据,避免多个子组件独立发起相同的 API 请求,提升页面加载性能。
|
2026-02-10 23:47:47 +08:00 |
|
fawney19
|
cfa768eebd
|
feat: 请求体规则扩展(append/insert/regex_replace)、OAuth 代理节点支持与列表分页
- 请求体规则新增 append、insert、regex_replace 三种操作,路径语法支持数组索引
- OAuth 授权/导入/批量导入支持指定代理节点(proxy_node_id),Key 级代理避免 IP 污染
- 密钥列表、模型映射、模型列表添加智能分页(useSmartPagination)
- AdvancedGuide 新增请求体规则使用指南与示例
- 简化 Codex enrich_codex 实现,README 添加 QQ 群二维码
|
2026-02-09 02:56:21 +08:00 |
|
fawney19
|
00442c41fa
|
feat: 视频计费增强与影子计费系统
|
2026-02-03 18:48:39 +08:00 |
|
fawney19
|
5e81a0b581
|
refactor: 移除 ModelsTab 单个删除按钮,简化表格样式
Close #119
|
2026-01-28 13:17:50 +08:00 |
|
fawney19
|
69335ad974
|
refactor: 使用 DropdownMenu 组件重构模型测试按钮
- 新增 DropdownMenu 组件系列(DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem)
- 重构 ModelsTab 中的格式选择菜单,替换原有的手动实现
- 移除 handleClickOutside 等手动管理菜单状态的代码
|
2026-01-22 20:01:55 +08:00 |
|
fawney19
|
026f4b9c0e
|
fix: 修复模型测试时正则映射支持及缓存装饰器实例方法兼容
- ModelsTab 加载时并行获取模型映射预览数据
- 测试模型时自动识别正则映射并使用映射名称和指定 key
- 密钥变更后并行刷新模型列表和模型映射
- 修复 cache_decorator 对实例方法的 context 参数解析
|
2026-01-15 17:26:52 +08:00 |
|
fawney19
|
a223819dd7
|
refactor: 提取正则工具模块并清理废弃代码
前端:
- 新增 model-mapping-regex.ts 工具模块,统一正则验证和 LRU 缓存
- ModelMappingsTab/RoutingTab 重构为使用 computed 缓存匹配结果
- 移除多个组件中未使用的变量和函数
- 添加 HTMLImageElement/HTMLIFrameElement 到 ESLint 全局类型
- 修复 vitest 需要 --experimental-require-module 的问题
后端:
- 移除废弃的异步数据库支持 (get_async_db, AsyncSession)
- 将 async_utils 从 database/ 迁移到 utils/
- 改进 database.py 类型标注
- 修复 email 模块的 aiosmtplib 可选导入类型问题
|
2026-01-15 17:03:19 +08:00 |
|
fawney19
|
a8813cfb89
|
feat(keys): 新增密钥自动获取模型功能
- 添加 auto_fetch_models 字段支持定时从上游 API 获取可用模型
- 添加 locked_models 字段支持锁定模型,刷新时不会被删除
- 新增 ModelFetchScheduler 调度器定期执行模型获取任务
- 前端 KeyFormDialog 添加自动获取模型开关
- 前端 KeyAllowedModelsEditDialog 支持模型锁定操作
- ProviderDetailDrawer 显示密钥同步状态
- 数据库迁移添加新字段
|
2026-01-14 13:12:19 +08:00 |
|
fawney19
|
8c4c5fa394
|
feat(ui): 增加模型连接性测试功能并优化对话框 ESC 键处理
- 模型测试: 新增测试按钮,支持多 API 格式选择
- ESC 键: 重构为全局栈管理,支持嵌套对话框
- 修复: check_endpoint 使用 FORMAT_ID 替代 name
- 优化: Redis 连接池添加健康检查
Co-authored-by: htmambo <htmambo@users.noreply.github.com>
|
2026-01-13 20:11:09 +08:00 |
|
fawney19
|
85decd7487
|
feat: 实现 GlobalModel 别名匹配系统
主要更改:
- GlobalModel 支持 model_aliases 配置,允许使用正则表达式定义别名规则
- Provider Key 的 allowed_models 现在可以通过别名规则匹配 GlobalModel
- 新增 ModelAliasesTab 组件用于管理模型别名配置
- Provider 详情页新增别名映射预览功能,展示 Key 白名单与 GlobalModel 别名的匹配关系
- 路由预览 API 返回 Key 的 allowed_models 信息
安全特性:
- 使用 regex 库的原生超时保护(100ms)防止 ReDoS 攻击
- 别名规则数量限制(50 条/模型)和长度限制(200 字符)
- 别名映射预览 API 添加超时保护和结果截断
其他改进:
- GlobalModel 更新/删除时使用行级锁防止并发竞态
- 缓存失效逻辑优化,支持异步清理和正则缓存清空
- 路由 Tab 布局重构,使用 flexbox 替代绝对定位
|
2026-01-13 16:04:15 +08:00 |
|
fawney19
|
bde5bf4c76
|
fix(ui): 简化模型定价标签显示
将"输入/输出"改为"入/出"以节省空间
|
2026-01-12 09:10:40 +08:00 |
|
fawney19
|
94abab3260
|
refactor(ui): 重构批量模型管理对话框为单列勾选模式
- BatchAssignModelsDialog: 从左右双栏改为单列勾选,支持统一保存
- KeyAllowedModelsEditDialog: 添加分组折叠功能,优化布局
- Dialog: 调整移动端内边距适配
- ProviderDetailDrawer: 密钥列表改为两行显示
- KeyFormDialog: 缩小对话框尺寸
- ModelsTab: 调整表格列宽
|
2026-01-11 19:33:16 +08:00 |
|
fawney19
|
76ed136228
|
refactor(ui): 简化模型权限编辑对话框交互
- 将模型权限对话框从双栏穿梭框重构为单面板多选模式
- 简化对话框尺寸,优化布局为单列显示避免模型名称截断
- 模型列表移除能力列,新增快捷添加映射按钮
- 支持从模型列表直接跳转到模型映射对话框并预选模型
|
2026-01-11 02:06:48 +08:00 |
|
fawney19
|
bf09e740e9
|
fix(ui): 优化提供商详情页的交互体验
- 模型列表删除按钮仅在 hover 时显示红色
- 批量关联模型对话框:只有全局模型时展开,有多个分组时全部折叠
|
2026-01-08 11:25:52 +08:00 |
|
fawney19
|
fd3a5a5afe
|
refactor: 将模型测试功能从 ModelsTab 移到 KeyAllowedModelsDialog
|
2025-12-29 17:44:02 +08:00 |
|
fawney19
|
b5c0f85dca
|
refactor: 统一剪贴板复制功能到 useClipboard 组合式函数
将各个组件和视图中重复的剪贴板复制逻辑提取到 useClipboard 组合式函数。
增加 showToast 参数支持静默复制,减少代码重复,提高维护性。
|
2025-12-28 20:41:52 +08:00 |
|
fawney19
|
dddb327885
|
refactor: 重构模型测试错误解析逻辑并修复用量统计变量引用
- 将 ModelsTab 和 ModelAliasesTab 中重复的错误解析逻辑提取到 errorParser.ts
- 添加 parseTestModelError 函数统一处理测试响应错误
- 为 testModel API 添加 TypeScript 类型定义 (TestModelRequest/TestModelResponse)
- 修复 endpoint_checker.py 中 usage_data 变量引用错误
|
2025-12-25 19:36:29 +08:00 |
|
hoping
|
26b4a37323
|
feat: 引入统一的端点检查器以重构适配器并改进错误处理和用量统计。
|
2025-12-25 00:02:56 +08:00 |
|
fawney19
|
1dac4cb156
|
refactor: optimize provider query and stats aggregation logic
|
2025-12-17 16:41:10 +08:00 |
|
fawney19
|
3d583b0a8d
|
refactor(ui): rename alias to mapping terminology for consistency
|
2025-12-15 20:41:56 +08:00 |
|
fawney19
|
03ee6c16d9
|
refactor(frontend): refactor model management with aliases, remove mappings UI
|
2025-12-15 14:30:42 +08:00 |
|
fawney19
|
c55058758b
|
refactor(frontend): 补充优化剩余组件
- 优化 TooltipContent 组件
- 改进 ModelsTab 和 UserModelDetailDrawer 组件
|
2025-12-14 00:16:02 +08:00 |
|
fawney19
|
06c0a47b21
|
refactor(frontend): 优化功能模块组件
- 更新 api-keys 模块: StandaloneKeyFormDialog
- 改进 auth 模块: LoginDialog
- 优化 models 模块: AliasDialog, GlobalModelFormDialog, ModelDetailDrawer, TieredPricingEditor
- 重构 providers 模块: 多个表单和对话框组件
- 更新 usage 模块: 时间线、表格和详情组件
- 调整 users 模块: UserFormDialog
|
2025-12-12 16:15:36 +08:00 |
|
fawney19
|
f784106826
|
Initial commit
|
2025-12-10 20:52:44 +08:00 |
|