in-browser-rag / debug-transformers.html
Johannes
init
cca4a24
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Transformers.js Debug</title>
<script type="module">
// Import transformers.js from CDN
import { pipeline, env } from 'https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2';
// Make available globally
window.transformers = { pipeline, env };
window.transformersLoaded = true;
console.log('βœ… Transformers.js loaded via ES modules');
</script>
<script src="https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2/dist/transformers.min.js"></script>
</head>
<body>
<h1>Transformers.js Debug Test</h1>
<div id="status">Loading...</div>
<button onclick="testTransformers()">Test Transformers.js</button>
<div id="result"></div>
<script>
async function testTransformers() {
const statusDiv = document.getElementById('status');
const resultDiv = document.getElementById('result');
try {
statusDiv.textContent = 'Testing Transformers.js loading...';
// Check what's available
console.log('window.transformers:', window.transformers);
console.log('window.Transformers:', window.Transformers);
console.log('window.transformersLoaded:', window.transformersLoaded);
let pipeline, env;
if (window.transformers && window.transformersLoaded) {
console.log('Using ES modules version');
({ pipeline, env } = window.transformers);
} else if (window.Transformers) {
console.log('Using UMD version');
({ pipeline, env } = window.Transformers);
} else {
throw new Error('No transformers library found');
}
statusDiv.textContent = 'Creating pipeline...';
// Test basic functionality
const classifier = await pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english');
statusDiv.textContent = 'Running inference...';
const result = await classifier('I love transformers.js!');
statusDiv.textContent = 'βœ… Success!';
resultDiv.innerHTML = `<pre>${JSON.stringify(result, null, 2)}</pre>`;
} catch (error) {
console.error('Error:', error);
statusDiv.textContent = '❌ Error: ' + error.message;
resultDiv.textContent = error.stack;
}
}
// Auto-test when page loads
document.addEventListener('DOMContentLoaded', () => {
setTimeout(testTransformers, 2000);
});
</script>
</body>
</html>