Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Math Problem Solver</title> | |
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/tailwind.min.css" rel="stylesheet"> | |
</head> | |
<body class="bg-gray-100 p-8"> | |
<div class="container mx-auto max-w-2xl bg-white p-8 rounded-lg shadow-md"> | |
<h1 class="text-3xl font-bold mb-6 text-center">Math Problem Solver</h1> | |
<form id="problemForm" class="space-y-4"> | |
<input type="file" id="imageInput" accept="image/*" class="w-full p-2 border border-gray-300 rounded-md"> | |
<button type="submit" class="w-full bg-blue-500 text-white p-2 rounded-md hover:bg-blue-700">Solve</button> | |
</form> | |
<div id="solution" class="mt-6 hidden"> | |
<h2 class="text-2xl font-semibold mb-4">Solution</h2> | |
<div id="thoughts" class="p-4 border border-gray-300 rounded-md mb-4"> | |
<h3 class="font-bold mb-2">Thoughts:</h3> | |
<pre id="thoughtsContent" class="whitespace-pre-wrap"></pre> | |
</div> | |
<div id="answer" class="p-4 border border-gray-300 rounded-md"> | |
<h3 class="font-bold mb-2">Answer:</h3> | |
<pre id="answerContent" class="whitespace-pre-wrap"></pre> | |
</div> | |
</div> | |
</div> | |
<script> | |
const form = document.getElementById('problemForm'); | |
const imageInput = document.getElementById('imageInput'); | |
const solutionDiv = document.getElementById('solution'); | |
const thoughtsContent = document.getElementById('thoughtsContent'); | |
const answerContent = document.getElementById('answerContent'); | |
form.addEventListener('submit', async (event) => { | |
event.preventDefault(); | |
const file = imageInput.files[0]; | |
if (!file) { | |
alert('Please select an image file.'); | |
return; | |
} | |
const formData = new FormData(); | |
formData.append('image', file); | |
try { | |
const response = await fetch('/solve', { | |
method: 'POST', | |
body: formData, | |
}); | |
const data = await response.json(); | |
if (response.ok) { | |
thoughtsContent.textContent = data.thoughts; | |
answerContent.textContent = data.answer; | |
solutionDiv.classList.remove('hidden'); | |
} else { | |
alert('Error: ' + data.error); | |
} | |
} catch (error) { | |
console.error('Error:', error); | |
alert('An error occurred while processing the request.'); | |
} | |
}); | |
</script> | |
</body> | |
</html> |