Skip to content

Feature/user token model access#3024

Open
ooptsd wants to merge 5 commits into
lbjlaq:mainfrom
ooptsd:feature/user-token-model-access
Open

Feature/user token model access#3024
ooptsd wants to merge 5 commits into
lbjlaq:mainfrom
ooptsd:feature/user-token-model-access

Conversation

@ooptsd

@ooptsd ooptsd commented Apr 8, 2026

Copy link
Copy Markdown

🚀 增强用户 Token 管理功能

📋 概述

本 PR 为 Antigravity-Manager 添加了多项用户 Token 管理增强功能,包括模型访问控制、使用量统计优化、国际化支持和 UI 改进。


✨ 新增功能

1. 模型访问控制 (Model Access Control)

  • 后端UserToken 结构体新增 allowed_models 字段
  • 数据库:新增 allowed_models 列,使用 JSON 格式存储模型列表
  • API:创建和更新 Token 时支持设置允许访问的模型
  • 业务逻辑:Token 可以限制只能访问特定模型

2. 今日 Tokens 统计

  • 后端UserTokenStats 新增 today_tokens 字段
  • 功能:统计 24 小时内的 Tokens 使用量
  • 数据来源:集成 token_stats 模块获取真实统计数据

3. 修复今日请求数显示问题

  • 问题:原代码中 today_requests 硬编码为 0
  • 修复:集成 security_db::get_ip_stats() 获取真实数据
  • 数据来源:从 ip_access_logs 表统计今日请求

4. 流量日志用户列

  • 功能:ProxyMonitor 表格新增用户列
  • 显示内容:显示发起请求的终端用户名
  • 兼容性:未使用 User Token 时显示 '-'

5. 模型选择 UI 优化

  • 视觉改进:添加 Sparkles/Check/X 图标增强视觉体验
  • 动画效果:渐变背景和悬停动画效果
  • 用户体验:更直观的模型选择界面

🌍 国际化更新

同步更新 12 种语言的翻译文件:

  • ar.json (阿拉伯语)
  • en.json (英语)
  • es.json (西班牙语)
  • ja.json (日语)
  • ko.json (韩语)
  • my.json (缅甸语)
  • pt.json (葡萄牙语)
  • ru.json (俄语)
  • tr.json (土耳其语)
  • vi.json (越南语)
  • zh-TW.json (繁体中文)
  • zh.json (简体中文)

📊 改动统计

文件类型 改动范围
后端 Rust 3 个文件,+65 行
前端 TypeScript 2 个文件,+387 行
国际化文件 12 个文件,+25 行
总计 17 个文件,+462/-75 行

🔧 详细改动

后端改动 (src-tauri/src/)

  1. commands/user_token.rs

    • 集成 security_dbtoken_stats 模块
    • 新增 today_tokens 统计字段
    • 修复 today_requests 数据获取
  2. modules/user_token_db.rs

    • UserToken 新增 allowed_models 字段
    • 数据库表新增 allowed_models
    • 创建/查询/更新 Token 时处理模型列表
  3. proxy/middleware/auth.rs

    • 适配模型访问控制逻辑

前端改动 (src/)

  1. pages/UserToken.tsx (+375 行)

    • 新增"今日 Tokens"统计卡片
    • 优化模型选择 UI
    • 完善中文翻译
  2. components/proxy/ProxyMonitor.tsx

    • 新增用户列显示

✅ 测试建议

  1. Token 创建

    • 创建新的 User Token,设置允许的模型列表
    • 验证 Token 创建成功,模型限制生效
  2. 统计功能

    • 验证"今日 Tokens"统计卡片正确显示
    • 验证"今日请求数"不再显示为 0
  3. 代理监控

    • 查看 ProxyMonitor 页面,确认用户列正常显示
  4. 国际化

    • 切换不同语言,验证翻译正确

🎯 使用场景

  • 多租户隔离:通过模型访问控制,实现不同用户组访问不同模型
  • 资源监控:实时查看今日 Tokens 使用量,优化成本
  • 安全审计:通过用户列追踪请求来源

📝 提交历史

  1. feat(user-token): 优化模型选择UI并完善中文翻译
  2. feat(proxy): 流量日志列表增加用户列
  3. fix: 修复 user-token 页面今日请求数始终显示0的问题
  4. feat: user-token 页面新增今日 Tokens 统计卡片
  5. feat(用户令牌): 添加按使用量排序功能

💡 感谢您的审核! 如有任何问题,欢迎在评论区讨论。🎉

lizhouyang added 5 commits April 8, 2026 23:14
- 改进模型选择界面:添加精美图标和动画效果
- 使用 Sparkles/Check/X 图标增强视觉体验
- 添加渐变背景和悬停动画效果
- 完善 user_token 模块的中文翻译
- 更新所有默认显示文本为中文
- 在 ProxyMonitor 表格中新增用户列,显示发起请求的终端用户名
- 同步更新12种语言的国际化翻译
- 支持未使用 User Token 时显示 '-'
问题原因:
- get_user_token_summary 函数将 today_requests 硬编码为 0

修复方案:
- 从 security_db 模块调用 get_ip_stats() 获取真实的今日请求数
- 该函数从 ip_access_logs 表统计 timestamp >= 今日零点 的记录数
- 后端:UserTokenStats 添加 today_tokens 字段
- 后端:从 token_stats 模块获取 24 小时内的 tokens 统计
- 前端:统计卡片布局从 4 列改为 5 列,新增今日 Tokens 卡片
- 新增 Zap 图标显示,使用黄色主题
在用户令牌管理页面中,为使用量列添加点击排序功能。用户可以通过点击表头按使用量进行升序或降序排列,排序时显示箭头图标以指示当前排序方向。使用 useMemo 优化排序性能,避免不必要的重新计算。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant