| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <title>HF Console · Crypto Intelligence</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=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" /> |
| <link rel="stylesheet" href="/static/css/unified-ui.css" /> |
| <link rel="stylesheet" href="/static/css/components.css" /> |
| <script defer src="/static/js/ui-feedback.js"></script> |
| <script defer src="/static/js/hf-console.js"></script> |
| </head> |
| <body class="page page-hf-console"> |
| <header class="top-nav"> |
| <div class="branding"> |
| <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/></svg> |
| <div> |
| <strong>HF Models & Datasets</strong> |
| <small style="color:var(--ui-text-muted);letter-spacing:0.2em;">/api/hf/* endpoints</small> |
| </div> |
| </div> |
| <nav class="nav-links"> |
| <a href="/dashboard">Dashboard</a> |
| <a href="/admin">Admin</a> |
| <a class="active" href="/hf_console">HF Console</a> |
| <a href="/docs" target="_blank" rel="noreferrer">API Docs</a> |
| </nav> |
| </header> |
|
|
| <main class="page-content"> |
| <section class="card"> |
| <div class="section-heading"> |
| <h2>Registry & Status</h2> |
| <span class="badge info" id="hf-console-health">Loading...</span> |
| </div> |
| <p class="metric-subtext" id="hf-console-summary"></p> |
| <ul class="list" id="hf-console-models"></ul> |
| </section> |
|
|
| <section class="split-grid"> |
| <article class="card"> |
| <div class="section-heading"><h2>Sentiment Playground</h2><span class="badge info">POST /api/hf/models/sentiment</span></div> |
| <div class="form-field"> |
| <label for="sentiment-model">Sentiment model</label> |
| <select id="sentiment-model"> |
| <option value="auto">auto (ensemble)</option> |
| <option value="cryptobert">cryptobert</option> |
| <option value="cryptobert_finbert">cryptobert_finbert</option> |
| <option value="tiny_crypto_lm">tiny_crypto_lm</option> |
| </select> |
| </div> |
| <div class="form-field"> |
| <label for="sentiment-texts">Texts (one per line)</label> |
| <textarea id="sentiment-texts" rows="5" placeholder="BTC is breaking out...\nETH looks weak..."></textarea> |
| </div> |
| <button class="primary" id="run-sentiment">Run Sentiment</button> |
| <div id="sentiment-results" class="ws-stream" style="margin-top:16px;"></div> |
| </article> |
| <article class="card"> |
| <div class="section-heading"><h2>Forecast Sandbox</h2><span class="badge info">POST /api/hf/models/forecast</span></div> |
| <div class="form-field"> |
| <label for="forecast-model">Model</label> |
| <select id="forecast-model"> |
| <option value="btc_lstm">btc_lstm</option> |
| <option value="btc_arima">btc_arima</option> |
| </select> |
| </div> |
| <div class="form-field"> |
| <label for="forecast-series">Closing Prices (comma separated)</label> |
| <textarea id="forecast-series" rows="5" placeholder="67650, 67820, 68010, 68120"></textarea> |
| </div> |
| <div class="form-field"> |
| <label for="forecast-steps">Future Steps</label> |
| <input type="number" id="forecast-steps" value="3" min="1" max="10" /> |
| </div> |
| <button class="primary" id="run-forecast">Forecast</button> |
| <div id="forecast-results" class="ws-stream" style="margin-top:16px;"></div> |
| </article> |
| </section> |
|
|
| <section class="card"> |
| <div class="section-heading"> |
| <h2>HF Datasets</h2> |
| <span class="badge info">GET /api/hf/datasets/*</span> |
| </div> |
| <div class="button-row" style="margin-bottom:16px;"> |
| <button class="secondary" data-dataset="market-ohlcv">Market OHLCV</button> |
| <button class="secondary" data-dataset="market-btc">BTC Technicals</button> |
| <button class="secondary" data-dataset="news-semantic">News Semantic</button> |
| </div> |
| <div id="dataset-output" class="ws-stream"></div> |
| </section> |
| </main> |
| </body> |
| </html>
|
|
|