yumoqing 99e6fed5ef refactor: replace JS polling with RefreshWidget
- Delete dashboard_refresh.js (no longer needed)
- Add api/dashboard_content.dspy returns dynamic UI with live data
  (queries llmusage + users tables server-side, returns full widget tree)
- Simplify index.ui to use RefreshWidget with period_seconds=10
- ChartBar in dashboard_content.dspy auto-fetches top models via data_url
- load_path.py updated separately in sage repo
2026-05-24 16:31:29 +08:00

Dashboard for Sage

Sage 数据看板模块,基于 bricks-framework 的 ECharts 扩展控件实现。

功能

  1. 今日调用笔数和交易金额 - 每10秒自动刷新 llmusage 数据
  2. 用户总数 - 系统中注册用户数
  3. 当前并发用户数 - 近5分钟内有活跃记录的用户数
  4. 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
No description provided
Readme 707 KiB
Languages
Python 48.1%
CSS 33%
JavaScript 16.3%
Shell 2.6%