Atualizar campo de IA obseervaciones back 1.0.43 y front 1.0.41

This commit is contained in:
2025-11-25 23:55:34 -03:00
parent 683e260c79
commit 98f0d94564
2 changed files with 21 additions and 12 deletions

View File

@@ -186,6 +186,7 @@ class AnswerBase(BaseModel):
class AnswerCreate(AnswerBase): class AnswerCreate(AnswerBase):
inspection_id: int inspection_id: int
question_id: int question_id: int
ai_analysis: Optional[dict] = None # Análisis de IA completo
class AnswerUpdate(AnswerBase): class AnswerUpdate(AnswerBase):
pass pass

View File

@@ -2892,6 +2892,7 @@ function InspectionModal({ checklist, user, onClose, onComplete }) {
answer_value: answer.value, answer_value: answer.value,
status: status, status: status,
comment: answer.observations || null, comment: answer.observations || null,
ai_analysis: answer.aiAnalysis || null, // Incluir análisis de IA completo
is_flagged: status === 'critical' is_flagged: status === 'critical'
} }
@@ -3165,28 +3166,32 @@ function InspectionModal({ checklist, user, onClose, onComplete }) {
// In FULL mode, auto-fill the answer // In FULL mode, auto-fill the answer
if (checklist.ai_mode === 'full' && suggestedAnswer) { if (checklist.ai_mode === 'full' && suggestedAnswer) {
setAnswers({ setAnswers(prev => ({
...answers, ...prev,
[questionId]: { [questionId]: {
...answers[questionId], ...(prev[questionId] || { value: '', observations: '', photos: [] }),
value: suggestedAnswer, value: suggestedAnswer,
observations: observationsText, observations: observationsText,
photos: files photos: files,
aiAnalysis: firstResult.analysis // Guardar análisis completo de IA
} }
}) }))
console.log(`🤖 FULL MODE: Respuesta auto-completada con: ${suggestedAnswer}`) console.log(`🤖 FULL MODE: Respuesta auto-completada con: ${suggestedAnswer}`)
console.log(`📝 Observaciones guardadas:`, observationsText)
} }
// In ASSISTED mode, suggest in observations // In ASSISTED mode, suggest in observations
else if (checklist.ai_mode === 'assisted') { else if (checklist.ai_mode === 'assisted') {
setAnswers({ setAnswers(prev => ({
...answers, ...prev,
[questionId]: { [questionId]: {
...answers[questionId], ...(prev[questionId] || { value: '', observations: '', photos: [] }),
observations: `${suggestedAnswer ? `[IA Sugiere: ${suggestedAnswer}]\n` : ''}${observationsText}`, observations: `${suggestedAnswer ? `[IA Sugiere: ${suggestedAnswer}]\n` : ''}${observationsText}`,
photos: files photos: files,
aiAnalysis: firstResult.analysis // Guardar análisis completo de IA
} }
}) }))
console.log(`🤖 ASSISTED MODE: Sugerencia agregada a observaciones`) console.log(`🤖 ASSISTED MODE: Sugerencia agregada a observaciones`)
console.log(`📝 Observaciones guardadas:`, `${suggestedAnswer ? `[IA Sugiere: ${suggestedAnswer}]\n` : ''}${observationsText}`)
} }
} }
} catch (error) { } catch (error) {
@@ -3494,10 +3499,13 @@ function InspectionModal({ checklist, user, onClose, onComplete }) {
Observaciones (opcional) Observaciones (opcional)
</label> </label>
<textarea <textarea
value={answers[currentQuestion.id]?.observations} value={answers[currentQuestion.id]?.observations || ''}
onChange={(e) => setAnswers(prev => ({ onChange={(e) => setAnswers(prev => ({
...prev, ...prev,
[currentQuestion.id]: { ...prev[currentQuestion.id], observations: e.target.value } [currentQuestion.id]: {
...(prev[currentQuestion.id] || { value: '', observations: '', photos: [] }),
observations: e.target.value
}
}))} }))}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500"
rows="2" rows="2"