sammyboi1801's picture
Update index.html
5e4b627 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NMT Comparison | ARM vs Diffusion</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Inter', sans-serif;
background-color: #020617; /* Deepest Slate */
background-image: radial-gradient(circle at 0% 0%, #1e1b4b 0%, transparent 50%),
radial-gradient(circle at 100% 100%, #0f172a 0%, transparent 50%);
color: #f8fafc;
}
.glass-card {
background: rgba(15, 23, 42, 0.6);
backdrop-filter: blur(16px);
border: 1px solid rgba(255, 255, 255, 0.08);
}
</style>
</head>
<body class="min-h-screen flex flex-col p-4 md:p-10">
<div class="flex-grow flex flex-col items-center">
<div class="w-full max-w-4xl">
<header class="text-center mb-10">
<h1 class="text-3xl md:text-5xl font-extrabold bg-gradient-to-r from-blue-400 via-indigo-400 to-purple-400 bg-clip-text text-transparent mb-3 tracking-tight">
NMT Comparison
</h1>
<p class="text-slate-500 font-medium tracking-[0.2em] uppercase text-[10px] opacity-80">
ARM vs. Diffusion Architecture
</p>
</header>
<div class="glass-card rounded-3xl shadow-2xl p-6 mb-8">
<textarea id="inputText"
class="w-full p-5 text-lg bg-slate-950/50 border border-white/5 focus:ring-2 focus:ring-blue-500/30 rounded-2xl text-white outline-none resize-none h-32 transition-all placeholder:text-slate-700"
placeholder="Enter English sentence..."></textarea>
<button onclick="translateText()" id="btn"
class="mt-6 w-full bg-white hover:bg-slate-100 text-slate-950 font-bold py-4 rounded-2xl transition-all duration-300 transform active:scale-[0.97] shadow-[0_0_30px_rgba(59,130,246,0.15)] hover:shadow-[0_0_40px_rgba(99,102,241,0.3)] flex justify-center items-center gap-3 border border-white/40">
<span id="btnText" class="tracking-tight">Run Comparison</span>
<div id="spinner" class="hidden animate-spin h-5 w-5 border-2 border-slate-900 border-t-transparent rounded-full"></div>
</button>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div class="glass-card rounded-3xl p-8">
<div class="flex items-center gap-3 mb-4">
<div class="h-2 w-2 rounded-full bg-purple-500 animate-pulse"></div>
<h3 class="font-semibold text-slate-400 uppercase tracking-widest text-[10px]">Diffusion Model</h3>
</div>
<div id="diffOutput" class="text-xl text-slate-100 min-h-[60px]">...</div>
</div>
<div class="glass-card rounded-3xl p-8">
<div class="flex items-center gap-3 mb-4">
<div class="h-2 w-2 rounded-full bg-blue-500 animate-pulse"></div>
<h3 class="font-semibold text-slate-400 uppercase tracking-widest text-[10px]">ARM Model</h3>
</div>
<div id="armOutput" class="text-xl text-slate-100 min-h-[60px]">...</div>
</div>
</div>
</div>
</div>
<footer class="mt-10 flex justify-end">
<p class="text-slate-600 text-sm font-light tracking-tight">
Made by <span class="text-slate-400 font-medium">Sam, Dhruv and Jatan</span> <span class="text-rose-500/60">❤️</span>
</p>
</footer>
<script>
async function translateText() {
let text = document.getElementById('inputText').value.trim();
const btn = document.getElementById('btn');
const btnText = document.getElementById('btnText');
const spinner = document.getElementById('spinner');
if(!text) return;
// Fullstop logic
const punctuation = [".", "!", "?"];
if (!punctuation.includes(text.slice(-1))) {
text += ".";
document.getElementById('inputText').value = text;
}
// UI Feedback
btn.disabled = true;
btnText.innerText = "Processing...";
spinner.classList.remove('hidden');
try {
const res = await fetch('https://sammyboi1801-arm-vs-diffusion-nmt.hf.space/translate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: text, max_length: 128 })
});
const data = await res.json();
document.getElementById('diffOutput').innerText = data.diffusion_translation;
document.getElementById('armOutput').innerText = data.arm_translation;
} catch (err) {
alert("The API appears to be sleeping. Wake it up on Hugging Face!");
} finally {
btn.disabled = false;
btnText.innerText = "Compare Models";
spinner.classList.add('hidden');
}
}
</script>
</body>
</html>