|
|
<!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>
|
|
|
|