yumoqing c7180bda77 fix: rewrite dashboard_refresh.js with correct bricks API
- Replace non-existent bricks.app.find_widget_by_id() with bricks.getWidgetById(id, bricks.app)
- Replace widget.el.textContent with widget.set_text() method
- Fix getBaseUrl() to handle /modulename paths (no .ui suffix) returning /undefined
- Remove chart refresh from JS — use ChartBar's built-in refresh_period: 10
- Update index.ui ChartBar widget with refresh_period: 10
- Also fixed all find_widget_by_id references across skills:
  * bricks-framework SKILL.md (2 occurrences)
  * bricks-framework references: auto-refresh-dashboard.md, auto-refresh-pattern.md, bar.md, line.md, websocket.md
  * module-development-spec references: read-only-module-pattern.md
  * harnessed-module-development SKILL.md (2 occurrences)
  * harnessed-module-development references: reasoning-visualization.md, bricks-ui-pitfalls.md
  * rbac-permission-initialization-pattern references: websocket-debugging.md
2026-05-24 16:05:56 +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%