Spaces:
Running
Running
Update templates/index.html
Browse files- templates/index.html +54 -68
templates/index.html
CHANGED
@@ -465,79 +465,65 @@
|
|
465 |
}
|
466 |
|
467 |
form.addEventListener('submit', async (event) => {
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
476 |
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
answerContent.innerHTML = '';
|
481 |
-
thoughtsBox.classList.add('open');
|
482 |
|
483 |
-
|
484 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
|
486 |
-
|
487 |
-
let currentMode = null;
|
488 |
-
const response = await fetch('/solve', {
|
489 |
-
method: 'POST',
|
490 |
-
body: formData
|
491 |
-
});
|
492 |
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
stopTimer();
|
501 |
-
break;
|
502 |
-
}
|
503 |
-
|
504 |
-
buffer += decoder.decode(value, { stream: true });
|
505 |
-
let eolIndex;
|
506 |
-
|
507 |
-
while ((eolIndex = buffer.indexOf('\n\n')) >= 0) {
|
508 |
-
const line = buffer.slice(0, eolIndex).trim();
|
509 |
-
buffer = buffer.slice(eolIndex + 2);
|
510 |
-
|
511 |
-
if (line.startsWith('data:')) {
|
512 |
-
const data = JSON.parse(line.slice(5));
|
513 |
-
|
514 |
-
if (data.mode) {
|
515 |
-
currentMode = data.mode;
|
516 |
-
loader.classList.add('hidden');
|
517 |
-
solutionDiv.classList.remove('hidden');
|
518 |
-
}
|
519 |
-
|
520 |
-
if (data.content) {
|
521 |
-
const content = data.content;
|
522 |
-
if (currentMode === 'thinking') {
|
523 |
-
renderContent(content, thoughtsContent);
|
524 |
-
thoughtsContent.scrollTop = thoughtsContent.scrollHeight;
|
525 |
-
} else if (currentMode === 'answering') {
|
526 |
-
renderContent(content, answerContent);
|
527 |
-
answerContent.scrollTop = answerContent.scrollHeight;
|
528 |
-
}
|
529 |
-
}
|
530 |
-
}
|
531 |
-
}
|
532 |
-
}
|
533 |
|
534 |
-
|
535 |
-
console.error('Erreur:', error);
|
536 |
-
alert('Une erreur est survenue lors du traitement de la requête.');
|
537 |
-
loader.classList.add('hidden');
|
538 |
-
stopTimer();
|
539 |
-
}
|
540 |
-
});
|
541 |
});
|
542 |
</script>
|
543 |
</body>
|
|
|
465 |
}
|
466 |
|
467 |
form.addEventListener('submit', async (event) => {
|
468 |
+
event.preventDefault();
|
469 |
+
const file = imageInput.files[0];
|
470 |
+
if (!file) {
|
471 |
+
alert('Veuillez sélectionner une image.');
|
472 |
+
return;
|
473 |
+
}
|
474 |
+
|
475 |
+
startTimer();
|
476 |
+
|
477 |
+
loader.classList.remove('hidden');
|
478 |
+
solutionDiv.classList.add('hidden');
|
479 |
+
thoughtsContent.innerHTML = '';
|
480 |
+
answerContent.innerHTML = '';
|
481 |
+
thoughtsBox.classList.add('open');
|
482 |
+
|
483 |
+
const formData = new FormData();
|
484 |
+
formData.append('image', file);
|
485 |
+
|
486 |
+
try {
|
487 |
+
const response = await fetch('/solve', {
|
488 |
+
method: 'POST',
|
489 |
+
body: formData
|
490 |
+
});
|
491 |
|
492 |
+
if (!response.ok) {
|
493 |
+
throw new Error(`HTTP error! status: ${response.status}`);
|
494 |
+
}
|
|
|
|
|
495 |
|
496 |
+
// Essayons d'abord de lire la réponse comme du JSON
|
497 |
+
try {
|
498 |
+
const data = await response.json();
|
499 |
+
loader.classList.add('hidden');
|
500 |
+
solutionDiv.classList.remove('hidden');
|
501 |
+
|
502 |
+
if (data.thinking) {
|
503 |
+
renderContent(data.thinking, thoughtsContent);
|
504 |
+
}
|
505 |
+
if (data.answer) {
|
506 |
+
renderContent(data.answer, answerContent);
|
507 |
+
}
|
508 |
+
} catch (jsonError) {
|
509 |
+
// Si ce n'est pas du JSON, essayons de lire comme du texte
|
510 |
+
const textData = await response.text();
|
511 |
+
loader.classList.add('hidden');
|
512 |
+
solutionDiv.classList.remove('hidden');
|
513 |
+
renderContent(textData, answerContent);
|
514 |
+
}
|
515 |
|
516 |
+
stopTimer();
|
|
|
|
|
|
|
|
|
|
|
517 |
|
518 |
+
} catch (error) {
|
519 |
+
console.error('Erreur:', error);
|
520 |
+
alert('Une erreur est survenue lors du traitement de la requête.');
|
521 |
+
loader.classList.add('hidden');
|
522 |
+
stopTimer();
|
523 |
+
}
|
524 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
525 |
|
526 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
});
|
528 |
</script>
|
529 |
</body>
|