Download static/admin.html from cacodex/n2r-dev: direct link, hf CLI and curl.
- Browser
- Download file 8.25 kB
-
https://huggingface.co/spaces/cacodex/n2r-dev/resolve/main/static/admin.html
- Command line
-
hf download hf://spaces/cacodex/n2r-dev/static/admin.html
-
curl -L -o admin.html https://huggingface.co/spaces/cacodex/n2r-dev/resolve/main/static/admin.html
8.25 kB
| | |
| <html lang="zh-CN"> | |
| <head> | |
| <meta charset="UTF-8" /> | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <title>NVIDIA NIM 管理后台</title> | |
| <link rel="preconnect" href="https://fonts.googleapis.com" /> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> | |
| <link | |
| href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Noto+Sans+SC:wght@400;500;700;800&display=swap" | |
| rel="stylesheet" | |
| /> | |
| <link rel="stylesheet" href="/static/style.css" /> | |
| </head> | |
| <body class="admin-body"> | |
| <div class="ambient ambient-left"></div> | |
| <div class="ambient ambient-right"></div> | |
| <div class="admin-shell"> | |
| <aside class="admin-sidebar"> | |
| <div class="brand-block"> | |
| <span class="hero-badge">NVIDIA NIM</span> | |
| <h1>运营控制台</h1> | |
| <p>管理模型目录、API Key、健康巡检和公开看板的数据来源。</p> | |
| </div> | |
| <h3>功能导航</h3> | |
| <button class="sidebar-btn active" data-panel="overview">总览</button> | |
| <button class="sidebar-btn" data-panel="models">模型管理</button> | |
| <button class="sidebar-btn" data-panel="keys">Key 管理</button> | |
| <button class="sidebar-btn" data-panel="health">巡检记录</button> | |
| <button class="sidebar-btn" data-panel="settings">调度设置</button> | |
| </aside> | |
| <section class="admin-content"> | |
| <div class="glass-panel" data-panel="overview"> | |
| <div class="panel-headline"> | |
| <div> | |
| <span class="section-tag">控制中心</span> | |
| <h2>网关运行总览</h2> | |
| </div> | |
| <p class="status-text">统一查看模型、Key 和近几次健康探测结果。</p> | |
| </div> | |
| <div class="section-grid compact-grid" id="overview-metrics"></div> | |
| <div class="glass-panel sub-panel"> | |
| <div class="panel-headline compact"> | |
| <div> | |
| <span class="section-tag">最近活动</span> | |
| <h3>最近巡检</h3> | |
| </div> | |
| </div> | |
| <table class="table"> | |
| <thead> | |
| <tr> | |
| <th>时间</th> | |
| <th>模型</th> | |
| <th>状态</th> | |
| <th>时延</th> | |
| </tr> | |
| </thead> | |
| <tbody id="recent-checks"></tbody> | |
| </table> | |
| </div> | |
| </div> | |
| <div class="glass-panel hidden" data-panel="models"> | |
| <div class="panel-headline"> | |
| <div> | |
| <span class="section-tag">目录配置</span> | |
| <h2>模型管理</h2> | |
| </div> | |
| <div class="inline-actions panel-actions"> | |
| <button class="secondary-btn" id="test-all-models" type="button">测试全部模型</button> | |
| </div> | |
| </div> | |
| <p class="status-text">添加、删除、连通性测试,以及使用与巡检统计。</p> | |
| <div class="section-grid compact-grid"> | |
| <div class="metric-card"> | |
| <h3>模型总数</h3> | |
| <strong id="model-count">-</strong> | |
| </div> | |
| <div class="metric-card"> | |
| <h3>当前健康</h3> | |
| <strong id="model-healthy">-</strong> | |
| </div> | |
| </div> | |
| <div class="form-grid spaced-top"> | |
| <input id="model-id" placeholder="模型 ID,例如 z-ai/glm5" /> | |
| <input id="model-display-name" placeholder="展示名称,例如 GLM-5" /> | |
| <textarea id="model-description" placeholder="模型说明,将出现在后台管理视图中"></textarea> | |
| <button id="model-add" type="button">新增或更新模型</button> | |
| </div> | |
| <table class="table spaced-top"> | |
| <thead> | |
| <tr> | |
| <th>模型</th> | |
| <th>状态</th> | |
| <th>调用次数</th> | |
| <th>巡检统计</th> | |
| <th>操作</th> | |
| </tr> | |
| </thead> | |
| <tbody id="model-table"></tbody> | |
| </table> | |
| </div> | |
| <div class="glass-panel hidden" data-panel="keys"> | |
| <div class="panel-headline"> | |
| <div> | |
| <span class="section-tag">凭据配置</span> | |
| <h2>NVIDIA NIM Key 管理</h2> | |
| </div> | |
| <div class="inline-actions panel-actions"> | |
| <button class="secondary-btn" id="test-all-keys" type="button">测试全部 Key</button> | |
| </div> | |
| </div> | |
| <p class="status-text">统一维护可用 Key,并统计请求和巡检使用情况。</p> | |
| <div class="form-grid compact-grid"> | |
| <input id="key-label" placeholder="Key 名称,例如 主生产 Key" /> | |
| <input id="key-value" placeholder="输入 NVIDIA NIM Key" /> | |
| <button id="key-add" type="button">保存 Key</button> | |
| </div> | |
| <table class="table spaced-top"> | |
| <thead> | |
| <tr> | |
| <th>名称</th> | |
| <th>脱敏值</th> | |
| <th>请求次数</th> | |
| <th>最近测试</th> | |
| <th>状态</th> | |
| <th>操作</th> | |
| </tr> | |
| </thead> | |
| <tbody id="key-table"></tbody> | |
| </table> | |
| </div> | |
| <div class="glass-panel hidden" data-panel="health"> | |
| <div class="panel-headline"> | |
| <div> | |
| <span class="section-tag">健康巡检</span> | |
| <h2>巡检记录</h2> | |
| </div> | |
| <button id="run-healthcheck" type="button">立即巡检全部模型</button> | |
| </div> | |
| <p class="status-text">手动触发的巡检结果会立刻写入数据库,并同步更新到公开健康页。</p> | |
| <div class="section-grid" id="health-grid"></div> | |
| </div> | |
| <div class="glass-panel hidden" data-panel="settings"> | |
| <div class="panel-headline"> | |
| <div> | |
| <span class="section-tag">计划任务</span> | |
| <h2>调度设置</h2> | |
| </div> | |
| <p class="status-text">设置巡检开关、时间间隔、公开页保留时长和巡检提示词。</p> | |
| </div> | |
| <div class="form-grid settings-grid"> | |
| <label class="checkbox-row field-span-full"> | |
| <input id="healthcheck-enabled" type="checkbox" /> | |
| <span>启用定时健康巡检</span> | |
| </label> | |
| <input id="healthcheck-interval" type="number" min="5" step="5" placeholder="巡检间隔,单位分钟" /> | |
| <input id="public-history-hours" type="number" min="1" step="1" placeholder="公开页保留时长,单位小时" /> | |
| <textarea id="healthcheck-prompt" placeholder="用于健康巡检的提示词"></textarea> | |
| <div class="inline-actions settings-actions field-span-full"> | |
| <button id="settings-save" type="button">保存设置</button> | |
| <button class="secondary-btn" id="refresh-now" type="button">重新加载面板</button> | |
| </div> | |
| </div> | |
| <p class="status-text" id="settings-status"></p> | |
| </div> | |
| </section> | |
| </div> | |
| <div class="login-overlay" id="login-overlay"> | |
| <div class="login-card"> | |
| <span class="section-tag">管理员登录</span> | |
| <h2>进入后台</h2> | |
| <p class="status-text">请输入环境变量 PASSWORD 的值。</p> | |
| <label for="admin-password">后台密码</label> | |
| <input type="password" id="admin-password" autocomplete="current-password" /> | |
| <button id="login-btn">解锁控制台</button> | |
| <p class="status-text" id="login-status"></p> | |
| </div> | |
| </div> | |
| <footer class="page-repo-footer page-repo-footer-admin"> | |
| <span>GitHub</span> | |
| <a href="https://github.com/Geek66666/nim4cc" target="_blank" rel="noreferrer">https://github.com/Geek66666/nim4cc</a> | |
| </footer> | |
| <script src="/static/admin.js" charset="utf-8" defer></script> | |
| </body> | |
| </html> | |