✅ 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:
@@ -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()
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user