Validación de Coherencia IA Implementada

Cambios en el Backend (v1.0.96)
Nuevo campo expected_answer en el análisis de IA:

La IA ahora retorna cuál debería ser la respuesta correcta según lo que observa en la imagen
Se incluyen las opciones de respuesta disponibles en el prompt para que la IA elija la correcta
Extracción de opciones de pregunta:

El sistema extrae las opciones disponibles (Buen Estado, Mal Estado, etc.)
Las envía a la IA para que determine cuál es la respuesta esperada
Cambios en el Frontend
Validación antes de continuar:

Cuando el mecánico intenta avanzar a la siguiente pregunta o firmar
El sistema compara su respuesta con expected_answer del análisis de IA
Si NO coinciden, aparece un popup con:
This commit is contained in:
2025-12-03 10:40:33 -03:00
parent 58bf1bfc69
commit 44cd81956f
2 changed files with 67 additions and 7 deletions

View File

@@ -5273,6 +5273,29 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
alert('⚠️ Debes presionar "Cargar Documentos" antes de continuar')
return
}
// NUEVA VALIDACIÓN: Verificar coherencia entre respuesta del mecánico y análisis de IA
const answer = answers[currentQuestion.id]
if (answer?.aiAnalysis && answer.aiAnalysis.length > 0 && answer.value) {
const aiData = answer.aiAnalysis[0]?.analysis
if (aiData?.expected_answer && aiData.expected_answer.toLowerCase() !== answer.value.toLowerCase()) {
const confirmChange = window.confirm(
`⚠️ ADVERTENCIA DE COHERENCIA\n\n` +
`Tu respuesta: "${answer.value}"\n` +
`Análisis de IA sugiere: "${aiData.expected_answer}"\n\n` +
`La imagen muestra:\n${aiData.observations || 'Sin detalles'}\n\n` +
`¿Deseas cambiar tu respuesta antes de continuar?\n\n` +
`• Presiona CANCELAR para revisar y cambiar tu respuesta\n` +
`• Presiona ACEPTAR para continuar con tu respuesta actual`
)
if (!confirmChange) {
// El mecánico quiere cambiar su respuesta
return
}
}
}
saveAnswer(currentQuestion.id)
goToQuestion(currentQuestionIndex + 1)
}}
@@ -5296,6 +5319,29 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
alert('⚠️ Debes presionar "Cargar Documentos" antes de continuar')
return
}
// NUEVA VALIDACIÓN: Verificar coherencia entre respuesta del mecánico y análisis de IA
const answer = answers[currentQuestion.id]
if (answer?.aiAnalysis && answer.aiAnalysis.length > 0 && answer.value) {
const aiData = answer.aiAnalysis[0]?.analysis
if (aiData?.expected_answer && aiData.expected_answer.toLowerCase() !== answer.value.toLowerCase()) {
const confirmChange = window.confirm(
`⚠️ ADVERTENCIA DE COHERENCIA\n\n` +
`Tu respuesta: "${answer.value}"\n` +
`Análisis de IA sugiere: "${aiData.expected_answer}"\n\n` +
`La imagen muestra:\n${aiData.observations || 'Sin detalles'}\n\n` +
`¿Deseas cambiar tu respuesta antes de completar?\n\n` +
`• Presiona CANCELAR para revisar y cambiar tu respuesta\n` +
`• Presiona ACEPTAR para continuar con tu respuesta actual`
)
if (!confirmChange) {
// El mecánico quiere cambiar su respuesta
return
}
}
}
saveAnswer(currentQuestion.id)
proceedToSignatures()
}}