first commit

This commit is contained in:
2025-11-19 01:09:25 -03:00
parent e7a380f36e
commit be10a888fb
28 changed files with 2481 additions and 464 deletions

170
AI_FUNCTIONALITY.md Normal file
View File

@@ -0,0 +1,170 @@
# Sistema de IA para Checklists Inteligentes
## Modos de IA
### 1. **OFF (Sin IA)**
- El mecánico completa manualmente todas las respuestas
- Sin sugerencias ni asistencia automática
- Control total del usuario
### 2. **ASSISTED (IA Asistida)**
**Funcionalidades:**
- **Análisis de fotos**: Cuando el mecánico sube una foto, la IA analiza la imagen y sugiere:
- Estado del componente (bueno/malo)
- Nivel de criticidad (ok/minor/critical)
- Observaciones automáticas basadas en lo que detecta
- **Sugerencias contextuales**: Basándose en respuestas previas
- **Detección de anomalías**: Si detecta algo crítico, lo marca automáticamente
- **El mecánico puede aceptar o rechazar** las sugerencias
**Ejemplo de flujo:**
```
1. Mecánico sube foto de pastillas de freno
2. IA analiza: "Desgaste del 85%, menos de 2mm de material"
3. Sugiere: Estado=Crítico, Requiere reemplazo inmediato
4. Mecánico revisa y confirma o modifica
```
### 3. **FULL (IA Completa - Copilot)**
**Funcionalidades:**
- **Inspección automática por fotos**: El mecánico solo toma fotos
- **Análisis completo**: La IA responde todas las preguntas automáticamente
- **Generación de informe**: Crea observaciones y recomendaciones
- **Detección de problemas**: Marca automáticamente items críticos
- **El mecánico solo revisa y firma** al final
**Ejemplo de flujo:**
```
1. Mecánico toma 20 fotos del vehículo
2. IA procesa todas las fotos
3. Responde las 99 preguntas automáticamente
4. Genera observaciones detalladas
5. Marca 3 items como críticos
6. Mecánico revisa el informe completo
7. Ajusta si es necesario
8. Firma y completa
```
## Implementación Técnica
### Análisis de Imágenes con OpenAI Vision
```javascript
// Frontend: Subir foto
const analyzeImage = async (imageFile, questionType) => {
const formData = new FormData()
formData.append('image', imageFile)
formData.append('question_id', questionId)
const response = await fetch('/api/analyze-image', {
method: 'POST',
body: formData
})
return response.json() // { status, observations, confidence }
}
```
### Backend: Procesamiento con IA
```python
# Backend: Analizar imagen con OpenAI GPT-4 Vision
import openai
from PIL import Image
async def analyze_vehicle_component(image_path: str, question: Question):
# Cargar imagen
with open(image_path, 'rb') as f:
image_data = f.read()
# Prompt especializado según tipo de pregunta
prompts = {
"brakes": "Analiza el estado de las pastillas de freno. Indica desgaste, grietas, material restante.",
"tires": "Evalúa la banda de rodadura, presión aparente, desgaste irregular.",
"lights": "Verifica funcionamiento de luces, roturas, opacidad.",
# ... más prompts especializados
}
# Llamada a OpenAI Vision API
response = openai.ChatCompletion.create(
model="gpt-4-vision-preview",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": prompts.get(question.section, "Analiza este componente")},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_data}"}}
]
}],
max_tokens=300
)
# Parsear respuesta
ai_analysis = response.choices[0].message.content
# Determinar status según análisis
if "crítico" in ai_analysis.lower() or "falla" in ai_analysis.lower():
status = "critical"
elif "menor" in ai_analysis.lower() or "atención" in ai_analysis.lower():
status = "minor"
else:
status = "ok"
return {
"status": status,
"observations": ai_analysis,
"confidence": 0.85,
"ai_analysis": {
"raw_response": ai_analysis,
"model": "gpt-4-vision",
"timestamp": datetime.now()
}
}
```
## Ventajas de cada modo
### OFF
✅ Control total del mecánico
✅ Sin dependencia de conectividad
✅ Sin costos de API
### ASSISTED
✅ Ayuda al mecánico a no olvidar detalles
✅ Documenta mejor con análisis de fotos
✅ Reduce errores humanos
✅ Aprende patrones comunes
⚠️ Requiere internet y API key
### FULL
✅ Rapidez extrema (5-10 min vs 30-40 min)
✅ Consistencia en evaluaciones
✅ Ideal para inspecciones masivas
✅ Genera informes detallados automáticamente
⚠️ Requiere validación del mecánico
⚠️ Mayor costo de API
## Casos de Uso Recomendados
**OFF**:
- Talleres sin internet estable
- Inspecciones básicas
- Presupuesto limitado
**ASSISTED**:
- Talleres medianos/grandes
- Inspecciones preventivas
- Documentación detallada requerida
**FULL**:
- Flotas de vehículos
- Inspecciones pre-compra masivas
- Talleres de alto volumen
- Empresas de rent-a-car
## Próximos pasos de implementación
1. ✅ Estructura de base de datos preparada
2. ⏳ Endpoint `/api/analyze-image` para análisis
3. ⏳ Integración con OpenAI Vision API
4. ⏳ UI para mostrar sugerencias de IA
5. ⏳ Sistema de confianza (confidence score)
6. ⏳ Historial de sugerencias aceptadas/rechazadas
7. ⏳ Fine-tuning del modelo con datos reales