✅ Cambios de terminología:
📝 Selector de modo (admin): ❌ "Modo IA" → ✅ "Modo de Asistencia" ❌ "Sin IA - Control manual total" → ✅ "Manual - Control total del operario" ❌ "IA Asistida - Sugerencias en fotos" → ✅ "Asistido - Sugerencias automáticas" ❌ "IA Completa - Análisis automático" → ✅ "Automático - Análisis completo" 📋 Descripciones: ❌ "Sin IA: El mecánico completa..." → ✅ "Modo Manual: El operario completa..." ❌ "IA Asistida: Cuando se suben fotos, la IA analiza..." → ✅ "Modo Asistido: ...el sistema analiza..." ❌ "IA Completa: El mecánico solo toma fotos y la IA responde..." → ✅ "Modo Automático: ...el sistema responde..." ❌ "Requiere OPENAI_API_KEY configurada" → ✅ "Requiere configuración de API externa" 🔍 Durante inspección: ❌ "🤖 Análisis IA disponible" → ✅ "🤖 Análisis automático disponible" 💬 En observaciones/comentarios: ❌ "🤖 Análisis IA (98% confianza):" → ✅ "Análisis Automático (98% confianza):" ❌ "🤖 Análisis IA:" → ✅ "Análisis Automático:" ❌ "🤖 Análisis IA de X imágenes:" → ✅ "Análisis Automático de X imágenes:" 🎯 Resultado: Los mecánicos ahora ven: "Asistente automático" en lugar de "Inteligencia Artificial" "Sistema" en lugar de "IA" "Análisis automático" en lugar de "Análisis IA" Terminología más neutral y profesional Frontend actualizado a v1.0.78
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "checklist-frontend",
|
"name": "checklist-frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.77",
|
"version": "1.0.78",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -2540,38 +2540,38 @@ function ChecklistsTab({ checklists, user, onChecklistCreated, onStartInspection
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
<label className="block text-sm font-medium text-gray-700 mb-2">
|
||||||
Modo IA
|
Modo de Asistencia
|
||||||
</label>
|
</label>
|
||||||
<select
|
<select
|
||||||
value={formData.ai_mode}
|
value={formData.ai_mode}
|
||||||
onChange={(e) => setFormData({ ...formData, ai_mode: e.target.value })}
|
onChange={(e) => setFormData({ ...formData, ai_mode: e.target.value })}
|
||||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||||
>
|
>
|
||||||
<option value="off">🚫 Sin IA - Control manual total</option>
|
<option value="off">🚫 Manual - Control total del operario</option>
|
||||||
<option value="assisted">🤝 IA Asistida - Sugerencias en fotos</option>
|
<option value="assisted">🤝 Asistido - Sugerencias automáticas</option>
|
||||||
<option value="full">🤖 IA Completa - Análisis automático</option>
|
<option value="full">🤖 Automático - Análisis completo</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
{/* Descripción del modo seleccionado */}
|
{/* Descripción del modo seleccionado */}
|
||||||
<div className="mt-3 p-3 bg-blue-50 border border-blue-200 rounded-lg">
|
<div className="mt-3 p-3 bg-blue-50 border border-blue-200 rounded-lg">
|
||||||
{formData.ai_mode === 'off' && (
|
{formData.ai_mode === 'off' && (
|
||||||
<div className="text-sm text-blue-800">
|
<div className="text-sm text-blue-800">
|
||||||
<strong>Sin IA:</strong> El mecánico completa manualmente todas las respuestas.
|
<strong>Modo Manual:</strong> El operario completa manualmente todas las respuestas.
|
||||||
Sin dependencia de internet o API.
|
Sin dependencia de internet o sistemas externos.
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{formData.ai_mode === 'assisted' && (
|
{formData.ai_mode === 'assisted' && (
|
||||||
<div className="text-sm text-blue-800">
|
<div className="text-sm text-blue-800">
|
||||||
<strong>IA Asistida:</strong> Cuando se suben fotos, la IA analiza y sugiere
|
<strong>Modo Asistido:</strong> Cuando se suben fotos, el sistema analiza y sugiere
|
||||||
estado, criticidad y observaciones. El mecánico acepta o modifica.
|
estado, criticidad y observaciones. El operario acepta o modifica.
|
||||||
<div className="mt-1 text-xs">⚠️ Requiere OPENAI_API_KEY configurada</div>
|
<div className="mt-1 text-xs">⚠️ Requiere configuración de API externa</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{formData.ai_mode === 'full' && (
|
{formData.ai_mode === 'full' && (
|
||||||
<div className="text-sm text-blue-800">
|
<div className="text-sm text-blue-800">
|
||||||
<strong>IA Completa:</strong> El mecánico solo toma fotos y la IA responde
|
<strong>Modo Automático:</strong> El operario solo toma fotos y el sistema responde
|
||||||
automáticamente todas las preguntas. Ideal para inspecciones rápidas masivas.
|
automáticamente todas las preguntas. Ideal para inspecciones rápidas masivas.
|
||||||
<div className="mt-1 text-xs">⚠️ Requiere OPENAI_API_KEY configurada</div>
|
<div className="mt-1 text-xs">⚠️ Requiere configuración de API externa</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
@@ -4345,18 +4345,18 @@ function InspectionModal({ checklist, user, onClose, onComplete }) {
|
|||||||
const confidence = analysis.confidence || 0.7
|
const confidence = analysis.confidence || 0.7
|
||||||
|
|
||||||
// Build observations text
|
// Build observations text
|
||||||
observationsText = `🤖 Análisis IA (${(confidence * 100).toFixed(0)}% confianza):\n${observations}`
|
observationsText = `Análisis Automático (${(confidence * 100).toFixed(0)}% confianza):\n${observations}`
|
||||||
if (recommendation) {
|
if (recommendation) {
|
||||||
observationsText += `\n\n💡 Recomendación: ${recommendation}`
|
observationsText += `\n\n💡 Recomendación: ${recommendation}`
|
||||||
}
|
}
|
||||||
worstStatus = status
|
worstStatus = status
|
||||||
} else if (typeof analysis === 'string') {
|
} else if (typeof analysis === 'string') {
|
||||||
observationsText = `🤖 Análisis IA:\n${analysis}`
|
observationsText = `Análisis Automático:\n${analysis}`
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Multiple images - summarize all analyses
|
// Multiple images - summarize all analyses
|
||||||
console.log('📊 Resumen de', analyses.length, 'análisis:')
|
console.log('📊 Resumen de', analyses.length, 'análisis:')
|
||||||
observationsText = `🤖 Análisis IA de ${analyses.length} imágenes:\n\n`
|
observationsText = `Análisis Automático de ${analyses.length} imágenes:\n\n`
|
||||||
|
|
||||||
const statusPriority = { 'critical': 3, 'minor': 2, 'warning': 2, 'ok': 1 }
|
const statusPriority = { 'critical': 3, 'minor': 2, 'warning': 2, 'ok': 1 }
|
||||||
let maxPriority = 0
|
let maxPriority = 0
|
||||||
@@ -4796,7 +4796,7 @@ function InspectionModal({ checklist, user, onClose, onComplete }) {
|
|||||||
)}
|
)}
|
||||||
{(checklist.ai_mode === 'assisted' || checklist.ai_mode === 'full') && (
|
{(checklist.ai_mode === 'assisted' || checklist.ai_mode === 'full') && (
|
||||||
<span className="ml-2 text-xs text-blue-600">
|
<span className="ml-2 text-xs text-blue-600">
|
||||||
🤖 Análisis IA disponible
|
🤖 Análisis automático disponible
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
Reference in New Issue
Block a user