Phase 1-2 deliverables: - shell.ui: Global layout framework (topbar + collapsible sidebar + main content) - shell_theme.css: Dark/light theme CSS custom properties system - shell_theme.js: Theme toggle + sidebar collapse with localStorage persistence - global_menu.ui: Unified module navigation menu with RBAC visibility - index.ui: Redesigned dashboard homepage with modern stat cards + quick links - Stat card widgets: today_usage, today_amount, total_users, concurrent, errors - chart_top_models.ui + api/top_models.dspy: ChartBar with data_url pattern - table_top_users_amount.ui: Jinja2-rendered user ranking table - build.sh: Added .css file linking support Design system: - Dark theme (default): slate color palette (#0B1120, #111827, #1E293B) - Light theme: clean white palette with matching structure - Theme persisted in localStorage, toggled via topbar button - Sidebar collapsible with icon-only mode, state persisted in localStorage - Responsive stat cards with hover effects and trend indicators - Quick link cards for model management, users, knowledge base, errors
Dashboard for Sage
Sage 数据看板模块,基于 bricks-framework 的 ECharts 扩展控件实现。
功能
- 今日调用笔数和交易金额 - 每10秒自动刷新 llmusage 数据
- 用户总数 - 系统中注册用户数
- 当前并发用户数 - 近5分钟内有活跃记录的用户数
- Top 3 模型排名 - 按当天调用数量和交易金额排名
目录结构
dashboard_for_sage/
├── dashboard_for_sage/
│ ├── __init__.py
│ └── init.py # 模块注册
├── wwwroot/
│ ├── index.ui # 主看板页面
│ ├── menu.ui # 菜单
│ ├── api/
│ │ ├── get_today_usage.dspy # 今日用量API
│ │ ├── get_user_stats.dspy # 用户统计API
│ │ └── get_top_models.dspy # Top模型API
│ └── scripts/
│ └── dashboard_refresh.js # 10秒自动刷新脚本
├── pyproject.toml
└── build.sh
部署
cd ~/repos/dashboard_for_sage
git pull
bash build.sh
# 设置RBAC权限(在生产服务器上执行)
cd ~/repos/sage && git pull
./py3/bin/python load_path.py
# 重启Sage
./stop.sh && ./start.sh
访问地址
/dashboard_for_sage/index.ui
Description
Languages
Python
48.1%
CSS
33%
JavaScript
16.3%
Shell
2.6%