Hugging Face Deployer commited on
Commit ·
0c1d9c0
1
Parent(s): 0767db8
Deploy explorer to Hugging Face Spaces
Browse files
evals/interactive_explorer.py
CHANGED
|
@@ -2144,6 +2144,15 @@ HTML_CONTENT = """
|
|
| 2144 |
display: none;
|
| 2145 |
}
|
| 2146 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2147 |
@keyframes spin {
|
| 2148 |
to { transform: rotate(360deg); }
|
| 2149 |
}
|
|
@@ -2592,7 +2601,7 @@ HTML_CONTENT = """
|
|
| 2592 |
<div class="container">
|
| 2593 |
|
| 2594 |
<!-- Sidebar History & Builder -->
|
| 2595 |
-
<div class="sidebar" style="display: flex; flex-direction: column;">
|
| 2596 |
|
| 2597 |
<!-- Sidebar Tabs -->
|
| 2598 |
<div style="display: flex; border-bottom: 1px solid var(--border); transition: border-color var(--transition-speed) ease;">
|
|
@@ -2817,6 +2826,11 @@ HTML_CONTENT = """
|
|
| 2817 |
<div class="empty-title">Data360 Spec View</div>
|
| 2818 |
<div class="empty-desc">System engine visualization will render here.</div>
|
| 2819 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2820 |
<div class="chart-container-div" id="system-chart-container"></div>
|
| 2821 |
|
| 2822 |
<!-- Score & Critique Banner -->
|
|
@@ -2879,6 +2893,11 @@ HTML_CONTENT = """
|
|
| 2879 |
<div class="empty-title">Direct LLM Spec</div>
|
| 2880 |
<div class="empty-desc">Direct LLM generated visualization will render here.</div>
|
| 2881 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2882 |
<div class="chart-container-div" id="llm-chart-container"></div>
|
| 2883 |
|
| 2884 |
<!-- Score & Critique Banner -->
|
|
@@ -3090,6 +3109,47 @@ HTML_CONTENT = """
|
|
| 3090 |
}
|
| 3091 |
}
|
| 3092 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3093 |
async function loadReport(filename) {
|
| 3094 |
try {
|
| 3095 |
activeReportFilename = filename;
|
|
@@ -3106,6 +3166,7 @@ HTML_CONTENT = """
|
|
| 3106 |
function renderReport(data) {
|
| 3107 |
activeReport = data;
|
| 3108 |
window.lastReportData = data;
|
|
|
|
| 3109 |
|
| 3110 |
document.getElementById("welcome-container").style.display = "none";
|
| 3111 |
document.getElementById("viz-grid").style.display = "grid";
|
|
@@ -3465,6 +3526,7 @@ HTML_CONTENT = """
|
|
| 3465 |
btn.disabled = true;
|
| 3466 |
spinner.style.display = "block";
|
| 3467 |
label.textContent = "Running Vision Audit...";
|
|
|
|
| 3468 |
|
| 3469 |
const logConsole = document.getElementById("log-console");
|
| 3470 |
logConsole.innerHTML += `<div class="terminal-line info">Running Visual Critique on both spec renders (GPT-4o Vision)...</div>`;
|
|
@@ -3496,6 +3558,7 @@ HTML_CONTENT = """
|
|
| 3496 |
} finally {
|
| 3497 |
btn.disabled = false;
|
| 3498 |
spinner.style.display = "none";
|
|
|
|
| 3499 |
}
|
| 3500 |
}
|
| 3501 |
|
|
@@ -3510,6 +3573,8 @@ HTML_CONTENT = """
|
|
| 3510 |
btn.disabled = true;
|
| 3511 |
spinner.style.display = "block";
|
| 3512 |
label.textContent = "Rerunning...";
|
|
|
|
|
|
|
| 3513 |
|
| 3514 |
const logConsole = document.getElementById("log-console");
|
| 3515 |
logConsole.innerHTML = `<div class="terminal-line info">Triggering rerun for report: ${activeReportFilename}...</div>`;
|
|
@@ -3527,10 +3592,12 @@ HTML_CONTENT = """
|
|
| 3527 |
await loadReport(activeReportFilename);
|
| 3528 |
} catch (err) {
|
| 3529 |
logConsole.innerHTML += `<div class="terminal-line err">Error during rerun: ${err.message}</div>`;
|
|
|
|
| 3530 |
} finally {
|
| 3531 |
btn.disabled = false;
|
| 3532 |
spinner.style.display = "none";
|
| 3533 |
label.textContent = "🔄 Rerun this run";
|
|
|
|
| 3534 |
}
|
| 3535 |
}
|
| 3536 |
|
|
@@ -3961,6 +4028,8 @@ HTML_CONTENT = """
|
|
| 3961 |
const oldText = generateBtn.innerText;
|
| 3962 |
generateBtn.disabled = true;
|
| 3963 |
generateBtn.innerText = 'Generating Visuals...';
|
|
|
|
|
|
|
| 3964 |
|
| 3965 |
// Build filters
|
| 3966 |
const disaggregation_filters = {};
|
|
@@ -3996,6 +4065,7 @@ HTML_CONTENT = """
|
|
| 3996 |
const data = await res.json();
|
| 3997 |
if (data.error) {
|
| 3998 |
alert(`Generation failed: ${data.error}`);
|
|
|
|
| 3999 |
return;
|
| 4000 |
}
|
| 4001 |
|
|
@@ -4008,9 +4078,11 @@ HTML_CONTENT = """
|
|
| 4008 |
|
| 4009 |
} catch (err) {
|
| 4010 |
alert(`Request failed: ${err}`);
|
|
|
|
| 4011 |
} finally {
|
| 4012 |
generateBtn.disabled = false;
|
| 4013 |
generateBtn.innerText = oldText;
|
|
|
|
| 4014 |
}
|
| 4015 |
}
|
| 4016 |
|
|
|
|
| 2144 |
display: none;
|
| 2145 |
}
|
| 2146 |
|
| 2147 |
+
.spinner-large {
|
| 2148 |
+
width: 40px;
|
| 2149 |
+
height: 40px;
|
| 2150 |
+
border: 3px solid rgba(255, 255, 255, 0.1);
|
| 2151 |
+
border-top-color: var(--accent);
|
| 2152 |
+
border-radius: 50%;
|
| 2153 |
+
animation: spin 0.8s linear infinite;
|
| 2154 |
+
}
|
| 2155 |
+
|
| 2156 |
@keyframes spin {
|
| 2157 |
to { transform: rotate(360deg); }
|
| 2158 |
}
|
|
|
|
| 2601 |
<div class="container">
|
| 2602 |
|
| 2603 |
<!-- Sidebar History & Builder -->
|
| 2604 |
+
<div class="sidebar" id="sidebar" style="display: flex; flex-direction: column; transition: opacity var(--transition-speed) ease, filter var(--transition-speed) ease;">
|
| 2605 |
|
| 2606 |
<!-- Sidebar Tabs -->
|
| 2607 |
<div style="display: flex; border-bottom: 1px solid var(--border); transition: border-color var(--transition-speed) ease;">
|
|
|
|
| 2826 |
<div class="empty-title">Data360 Spec View</div>
|
| 2827 |
<div class="empty-desc">System engine visualization will render here.</div>
|
| 2828 |
</div>
|
| 2829 |
+
<div class="empty-state" id="system-chart-loading-state" style="display: none; flex-direction: column; justify-content: center; align-items: center; min-height: 250px;">
|
| 2830 |
+
<div class="spinner-large" style="margin-bottom: 16px;"></div>
|
| 2831 |
+
<div class="empty-title" style="font-size:14px; font-weight:600; color:var(--text);">Compiling Spec...</div>
|
| 2832 |
+
<div class="empty-desc" style="font-size:12px; color:var(--text-muted); margin-top:4px;">Retrieving MCP data and rendering charts</div>
|
| 2833 |
+
</div>
|
| 2834 |
<div class="chart-container-div" id="system-chart-container"></div>
|
| 2835 |
|
| 2836 |
<!-- Score & Critique Banner -->
|
|
|
|
| 2893 |
<div class="empty-title">Direct LLM Spec</div>
|
| 2894 |
<div class="empty-desc">Direct LLM generated visualization will render here.</div>
|
| 2895 |
</div>
|
| 2896 |
+
<div class="empty-state" id="llm-chart-loading-state" style="display: none; flex-direction: column; justify-content: center; align-items: center; min-height: 250px;">
|
| 2897 |
+
<div class="spinner-large" style="margin-bottom: 16px;"></div>
|
| 2898 |
+
<div class="empty-title" style="font-size:14px; font-weight:600; color:var(--text);">Compiling Spec...</div>
|
| 2899 |
+
<div class="empty-desc" style="font-size:12px; color:var(--text-muted); margin-top:4px;">Retrieving Direct LLM visualization output</div>
|
| 2900 |
+
</div>
|
| 2901 |
<div class="chart-container-div" id="llm-chart-container"></div>
|
| 2902 |
|
| 2903 |
<!-- Score & Critique Banner -->
|
|
|
|
| 3109 |
}
|
| 3110 |
}
|
| 3111 |
|
| 3112 |
+
// Background task interface blocker
|
| 3113 |
+
function setSidebarDisabled(disabled) {
|
| 3114 |
+
const sidebar = document.getElementById('sidebar');
|
| 3115 |
+
if (!sidebar) return;
|
| 3116 |
+
if (disabled) {
|
| 3117 |
+
sidebar.style.pointerEvents = 'none';
|
| 3118 |
+
sidebar.style.opacity = '0.5';
|
| 3119 |
+
sidebar.style.filter = 'grayscale(35%)';
|
| 3120 |
+
sidebar.style.cursor = 'not-allowed';
|
| 3121 |
+
} else {
|
| 3122 |
+
sidebar.style.pointerEvents = 'auto';
|
| 3123 |
+
sidebar.style.opacity = '1';
|
| 3124 |
+
sidebar.style.filter = 'none';
|
| 3125 |
+
sidebar.style.cursor = 'default';
|
| 3126 |
+
}
|
| 3127 |
+
}
|
| 3128 |
+
|
| 3129 |
+
// Chart loaders state toggler
|
| 3130 |
+
function setChartLoading(loading) {
|
| 3131 |
+
const sysEmpty = document.getElementById("system-chart-empty-state");
|
| 3132 |
+
const sysLoading = document.getElementById("system-chart-loading-state");
|
| 3133 |
+
const sysContainer = document.getElementById("system-chart-container");
|
| 3134 |
+
|
| 3135 |
+
const llmEmpty = document.getElementById("llm-chart-empty-state");
|
| 3136 |
+
const llmLoading = document.getElementById("llm-chart-loading-state");
|
| 3137 |
+
const llmContainer = document.getElementById("llm-chart-container");
|
| 3138 |
+
|
| 3139 |
+
if (loading) {
|
| 3140 |
+
if (sysEmpty) sysEmpty.style.display = "none";
|
| 3141 |
+
if (sysLoading) sysLoading.style.display = "flex";
|
| 3142 |
+
if (sysContainer) sysContainer.style.display = "none";
|
| 3143 |
+
|
| 3144 |
+
if (llmEmpty) llmEmpty.style.display = "none";
|
| 3145 |
+
if (llmLoading) llmLoading.style.display = "flex";
|
| 3146 |
+
if (llmContainer) llmContainer.style.display = "none";
|
| 3147 |
+
} else {
|
| 3148 |
+
if (sysLoading) sysLoading.style.display = "none";
|
| 3149 |
+
if (llmLoading) llmLoading.style.display = "none";
|
| 3150 |
+
}
|
| 3151 |
+
}
|
| 3152 |
+
|
| 3153 |
async function loadReport(filename) {
|
| 3154 |
try {
|
| 3155 |
activeReportFilename = filename;
|
|
|
|
| 3166 |
function renderReport(data) {
|
| 3167 |
activeReport = data;
|
| 3168 |
window.lastReportData = data;
|
| 3169 |
+
setChartLoading(false);
|
| 3170 |
|
| 3171 |
document.getElementById("welcome-container").style.display = "none";
|
| 3172 |
document.getElementById("viz-grid").style.display = "grid";
|
|
|
|
| 3526 |
btn.disabled = true;
|
| 3527 |
spinner.style.display = "block";
|
| 3528 |
label.textContent = "Running Vision Audit...";
|
| 3529 |
+
setSidebarDisabled(true);
|
| 3530 |
|
| 3531 |
const logConsole = document.getElementById("log-console");
|
| 3532 |
logConsole.innerHTML += `<div class="terminal-line info">Running Visual Critique on both spec renders (GPT-4o Vision)...</div>`;
|
|
|
|
| 3558 |
} finally {
|
| 3559 |
btn.disabled = false;
|
| 3560 |
spinner.style.display = "none";
|
| 3561 |
+
setSidebarDisabled(false);
|
| 3562 |
}
|
| 3563 |
}
|
| 3564 |
|
|
|
|
| 3573 |
btn.disabled = true;
|
| 3574 |
spinner.style.display = "block";
|
| 3575 |
label.textContent = "Rerunning...";
|
| 3576 |
+
setSidebarDisabled(true);
|
| 3577 |
+
setChartLoading(true);
|
| 3578 |
|
| 3579 |
const logConsole = document.getElementById("log-console");
|
| 3580 |
logConsole.innerHTML = `<div class="terminal-line info">Triggering rerun for report: ${activeReportFilename}...</div>`;
|
|
|
|
| 3592 |
await loadReport(activeReportFilename);
|
| 3593 |
} catch (err) {
|
| 3594 |
logConsole.innerHTML += `<div class="terminal-line err">Error during rerun: ${err.message}</div>`;
|
| 3595 |
+
setChartLoading(false);
|
| 3596 |
} finally {
|
| 3597 |
btn.disabled = false;
|
| 3598 |
spinner.style.display = "none";
|
| 3599 |
label.textContent = "🔄 Rerun this run";
|
| 3600 |
+
setSidebarDisabled(false);
|
| 3601 |
}
|
| 3602 |
}
|
| 3603 |
|
|
|
|
| 4028 |
const oldText = generateBtn.innerText;
|
| 4029 |
generateBtn.disabled = true;
|
| 4030 |
generateBtn.innerText = 'Generating Visuals...';
|
| 4031 |
+
setSidebarDisabled(true);
|
| 4032 |
+
setChartLoading(true);
|
| 4033 |
|
| 4034 |
// Build filters
|
| 4035 |
const disaggregation_filters = {};
|
|
|
|
| 4065 |
const data = await res.json();
|
| 4066 |
if (data.error) {
|
| 4067 |
alert(`Generation failed: ${data.error}`);
|
| 4068 |
+
setChartLoading(false);
|
| 4069 |
return;
|
| 4070 |
}
|
| 4071 |
|
|
|
|
| 4078 |
|
| 4079 |
} catch (err) {
|
| 4080 |
alert(`Request failed: ${err}`);
|
| 4081 |
+
setChartLoading(false);
|
| 4082 |
} finally {
|
| 4083 |
generateBtn.disabled = false;
|
| 4084 |
generateBtn.innerText = oldText;
|
| 4085 |
+
setSidebarDisabled(false);
|
| 4086 |
}
|
| 4087 |
}
|
| 4088 |
|