RWDai
6bd8cdb9cf
feat: 实现邮箱验证注册功能
...
添加完整的邮箱验证注册系统,包括验证码发送、验证和限流控制:
- 新增邮箱验证服务模块(email_sender, email_template, email_verification)
- 更新认证API支持邮箱验证注册流程
- 添加注册对话框和验证码输入组件
- 完善IP限流器支持邮箱验证场景
- 修复前端类型定义问题,升级esbuild依赖
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-30 17:15:48 +08:00
fawney19
fd3a5a5afe
refactor: 将模型测试功能从 ModelsTab 移到 KeyAllowedModelsDialog
2025-12-29 17:44:02 +08:00
fawney19
599b3d4c95
feat: 添加 Provider API Key 查看和复制功能
...
- 后端添加 GET /api/admin/endpoints/keys/{key_id}/reveal 接口
- 前端密钥列表添加眼睛按钮(显示/隐藏完整密钥)和复制按钮
- 关闭抽屉时自动清除已显示的密钥(安全考虑)
Fixes #53
2025-12-29 17:14:26 +08:00
fawney19
b5c0f85dca
refactor: 统一剪贴板复制功能到 useClipboard 组合式函数
...
将各个组件和视图中重复的剪贴板复制逻辑提取到 useClipboard 组合式函数。
增加 showToast 参数支持静默复制,减少代码重复,提高维护性。
2025-12-28 20:41:52 +08:00
fawney19
e21acd73eb
fix: 修复模型映射中重复关联的问题
...
在批量分配模型和编辑模型映射时,需要检查不仅是主模型名是否已关联,
还要检查其映射名称是否已存在,防止同一个上游模型被重复关联。
2025-12-28 19:40:07 +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
d7384e69d9
fix: improve code quality and add type safety for Key updates
...
- Replace f-string logging with lazy formatting in keys.py (lines 256, 265)
- Add EndpointAPIKeyUpdate type interface for frontend type safety
- Use typed EndpointAPIKeyUpdate instead of any in KeyFormDialog.vue
2025-12-23 00:11:10 +08:00
fawney19
4e1aed9976
feat: add daily model statistics aggregation with stats_daily_model table
2025-12-20 02:39:10 +08:00
fawney19
e2e7996a54
feat: implement upstream model import and batch model assignment with UI components
2025-12-20 02:01:17 +08:00
hoping
8c12174521
个性化处理
...
1. 为所有抽屉和对话框添加 ESC 键关闭功能;
2. 为`使用记录`表格添加自动刷新开关;
3. 为后端 API 请求增加 User-Agent 头部;
4. 修改启动命令支持从.env中读取数据库和Redis配置。
2025-12-19 17:31:15 +08:00
fawney19
293bb592dc
fix: enhance proxy configuration with password preservation and UI improvements
...
- Add 'enabled' field to ProxyConfig for preserving config when disabled
- Mask proxy password in API responses (return '***' instead of actual password)
- Preserve existing password on update when new password not provided
- Add URL encoding for proxy credentials (handle special chars like @, :, /)
- Enhanced URL validation: block SOCKS4, require valid host, forbid embedded auth
- UI improvements: use Switch component, dynamic password placeholder
- Add confirmation dialog for orphaned credentials (URL empty but has username/password)
- Prevent browser password autofill with randomized IDs and CSS text-security
- Unify ProxyConfig type definition in types.ts
2025-12-18 16:14:37 +08:00
fawney19
3e50c157be
feat: add HTTP/SOCKS5 proxy support for API endpoints
...
- Add proxy field to ProviderEndpoint database model with migration
- Add ProxyConfig Pydantic model for proxy URL validation
- Extend HTTP client pool with create_client_with_proxy method
- Integrate proxy configuration in chat_handler_base.py and cli_handler_base.py
- Update admin API endpoints to support proxy configuration CRUD
- Add proxy configuration UI in frontend EndpointFormDialog
Fixes #28
2025-12-18 14:46:47 +08:00
fawney19
9d5c84f9d3
refactor: add scheduling mode support and optimize system settings UI
...
- Add fixed_order and cache_affinity scheduling modes to CacheAwareScheduler
- Only apply cache affinity in cache_affinity mode; use fixed order otherwise
- Simplify Dialog components with title/description props
- Remove unnecessary button shadows in SystemSettings
- Optimize import dialog UI structure
- Update ModelAliasesTab shadow styling
- Fix fallback orchestrator type hints
- Add scheduling_mode configuration in system config
2025-12-17 19:15:08 +08:00
fawney19
1dac4cb156
refactor: optimize provider query and stats aggregation logic
2025-12-17 16:41:10 +08:00
fawney19
33265b4b13
refactor(global-model): migrate model metadata to flexible config structure
...
将模型配置从多个固定字段(description, official_url, icon_url, default_supports_* 等)
统一为灵活的 config JSON 字段,提高扩展性。同时优化前端模型创建表单,支持从 models-dev
列表直接选择模型快速填充。
主要变更:
- 后端:模型表迁移,支持 config JSON 存储模型能力和元信息
- 前端:GlobalModelFormDialog 支持两种创建方式(列表选择/手动填写)
- API 类型更新,对齐新的数据结构
2025-12-16 12:21:21 +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
743f23e640
feat(frontend): add ModelAliasDialog component for alias management
2025-12-15 14:30:31 +08:00
fawney19
9ca845f9d0
refactor(frontend): optimize feature components (models, providers, usage)
2025-12-14 00:16:02 +08:00
fawney19
c55058758b
refactor(frontend): 补充优化剩余组件
...
- 优化 TooltipContent 组件
- 改进 ModelsTab 和 UserModelDetailDrawer 组件
2025-12-14 00:16:02 +08:00
fawney19
737ab3b530
refactor(frontend): 优化 Providers 功能模块
...
- 改进 ProviderFormDialog, KeyFormDialog, EndpointFormDialog 等组件
- 优化 ModelsTab 组件
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
06bd178244
fix: TieredPricingEditor 缓存价格处理优化
...
- 缓存价格计算精度从 2 位小数改为 4 位,支持更精细的价格
- 分离 syncToParent 和 getFinalTiers 职责:
- syncToParent: 只同步用户实际输入的值
- getFinalTiers: 提交时获取包含自动计算的最终数据
- GlobalModelFormDialog 和 ProviderModelFormDialog 提交时调用 getFinalTiers
2025-12-12 15:43:00 +08:00
fawney19
f784106826
Initial commit
2025-12-10 20:52:44 +08:00