Commit Graph

14 Commits

Author SHA1 Message Date
e3524b32d4 Ahora funciona así:
Inspección nueva, Pregunta 1 (Frenos):

Abro chat → aiChatMessages = [] (vacío)
Pregunto sobre frenos
Cierro → se guarda en answers[pregunta1].chatHistory
Misma inspección, Pregunta 2 (Neumáticos):

Abro chat → aiChatMessages = [] (vacío, porque esta pregunta no tiene historial)
Chat limpio, sin mezclar con frenos 
Vuelvo a Pregunta 1:

Abro chat → aiChatMessages = [historial guardado]
Veo mi conversación anterior sobre frenos 
Nueva inspección en otro momento:

Todas las preguntas empiezan con aiChatMessages = []
No se mezcla con inspecciones anteriores 
2025-12-04 07:37:21 -03:00
50909e4499 Mejoras Implementadas en Extracción de PDFs con IA
He mejorado significativamente el sistema de extracción de texto de PDFs para el análisis con IA. Aquí están los cambios principales:

🎯 Problemas Resueltos
Límites muy pequeños → Aumentados significativamente según capacidad del modelo
No extraía todo el documento → Ahora procesa hasta 100k caracteres
Duplicación de contenido → Detecta y elimina páginas repetidas
Sin información de estado → Reporta páginas procesadas, truncado, etc.
2025-12-03 00:55:11 -03:00
582114a55a -FrontEnd actualizado
*Actualziacion de Logos
2025-12-02 22:42:51 -03:00
7f50bfd8c6 Renderizado Markdown agregado al chat
Cambios:

 Agregada dependencia react-markdown v9.0.1
 Import de ReactMarkdown en App.jsx
 Mensajes del asistente ahora renderizan Markdown
 Mensajes del usuario siguen en texto plano
 Estilos Tailwind prose para formato limpio
 Soporte para: negrita, cursiva, listas, código, encabezados, etc.
Versión: Frontend 1.0.93 → 1.0.94
2025-12-02 15:23:59 -03:00
c374909fa8 Chat AI Assistant con Archivos Adjuntos Implementado
🎯 Nueva Funcionalidad Completa
Se ha implementado un sistema de chat conversacional con IA que permite adjuntar archivos (imágenes y PDFs), similar a ChatGPT, con prompt personalizable y envío completo al webhook.

📋 Características Implementadas
1. Adjuntar Archivos en el Chat
 Botón 📎 para adjuntar archivos
 Soporte para imágenes (JPG, PNG, etc.) y PDFs
 Preview de archivos adjuntos antes de enviar
 Eliminación individual de archivos adjuntos
 Múltiples archivos por mensaje
 Validación de tipos de archivo
2. Procesamiento Backend de Archivos
 Endpoint modificado para recibir FormData con archivos
 PDFs: Extracción automática de texto con pypdf
 Imágenes: Conversión a base64 para Vision AI
 Análisis combinado de texto + imágenes
 Límite de 2000 caracteres por PDF para optimizar
3. Integración con IA
 OpenAI Vision: Soporte multimodal (texto + imágenes)
 Gemini: Soporte de imágenes y texto
 Contexto enriquecido con archivos adjuntos
 Prompts adaptados según tipo de archivo
4. Custom Prompt por Checklist
 Campo assistant_prompt configurable por pregunta
 Campo assistant_instructions para instrucciones adicionales
 Control de longitud de respuesta (short/medium/long)
 Contexto automático del vehículo en cada mensaje
5. Persistencia del Chat
 Nuevo campo chat_history en modelo Answer
 Migración SQL: add_chat_history_to_answers.sql
 Guardado automático del historial completo
 Restauración del chat al reabrir
6. Envío al Webhook (n8n)
 Todos los chats incluidos en send_completed_inspection_to_n8n()
 Campo chat_history en cada respuesta del webhook
 Incluye metadata de archivos adjuntos
 Tipo de pregunta identificado en webhook
 Datos completos para análisis posterior
2025-12-02 11:22:21 -03:00
bf30b1a2bf Soporte para PDFs agregado al sistema de análisis con IA
📋 Cambios Implementados
Frontend:

 Input acepta image/*,application/pdf
 Label actualizado: "Fotografías / Documentos PDF *"
 Preview diferenciado: PDFs muestran icono 📝 rojo en lugar de imagen
 Nombre de archivo PDF visible en el preview
 Contador genérico: "archivo(s) cargado(s)"
Backend:

 Agregado pypdf==4.0.1 a requirements.txt
 Detección automática de PDFs por content_type o extensión
 Extracción de texto de PDFs usando pypdf.PdfReader
 Validación de PDFs vacíos (sin texto extraíble)
 Prompts adaptados automáticamente para PDFs
 Soporte en OpenAI y Gemini (análisis de texto en lugar de vision)
 Límite de 4000 caracteres del PDF para análisis
🎯 Funcionamiento
Usuario sube PDF → Sistema detecta tipo de archivo
Extrae texto → PyPDF lee todas las páginas
Análisis IA → Envía texto al modelo (no usa Vision API)
Respuesta → Misma estructura JSON que con imágenes
⚠️ Limitaciones
PDFs escaneados sin OCR no funcionarán (requieren texto seleccionable)
Máximo 4000 caracteres del PDF enviados al AI
📦 Versiones
Frontend: 1.0.91 → 1.0.92
Backend: 1.0.89 → 1.0.90
2025-12-02 09:40:44 -03:00
1450d443d4 Front v1.0.91 2025-12-01 01:36:16 -03:00
45ad650bac Mejoras de Responsividad Móvil (v1.0.86)
Sidebar
 Oculto por defecto en móvil (window.innerWidth < 1024px)
 Overlay oscuro cuando está abierto en móvil (se cierra al tocar fuera)
 Deslizable desde la izquierda con transiciones suaves
 Siempre visible en desktop (lg: breakpoint)
Header
 Botón hamburguesa visible solo en móvil (lg:hidden)
 Logo escalable: 50px en móvil → 70px en desktop
 Título oculto en móvil para ahorrar espacio
 Indicador de sección: icono solo en móvil, texto completo en desktop
 Padding adaptable: 3px móvil → 4px tablet → 8px desktop
Contenido Principal
 Sin margin-left en móvil (el sidebar es overlay)
 Padding responsive: 3px → 4px → 6px según tamaño
 Border-radius adaptable: xl en móvil → 2xl en desktop
Modal de Inspección
 Ancho completo en móvil con padding mínimo (2px)
 Título responsive: lg (móvil) → xl (tablet) → 2xl (desktop)
 Altura máxima: 95vh móvil → 90vh desktop
Navegador de Preguntas
 Botones más pequeños en móvil: 7px/8px círculos
 Overflow horizontal con scroll para muchas preguntas
 Números responsive: texto sm en móvil → lg en desktop
 Gaps reducidos: 1px móvil → 2px desktop
Botones de Navegación
 Solo flechas en móvil (← →)
 Texto completo en desktop ("← Anterior", "Siguiente →")
 Padding y texto adaptables: text-sm móvil → text-base desktop
 Mejor uso del espacio horizontal
Formularios
 Espaciado adaptive: space-y-3 móvil → space-y-6 desktop
 Labels y texto responsive: xs → sm → base
 Banner de modo IA con wrap en móvil
La interfaz ahora es completamente funcional en móviles sin scroll horizontal, con todos los elementos accesibles y legibles! 📱
2025-11-30 22:59:38 -03:00
4c8938a24e back 1.0.38 y front 1.0.39 cambios en condicionales de sub preguntas, solo boleanos 2025-11-25 22:43:14 -03:00
99f0952378 Actualizacion del Syntria por Ayutec en SideBar 2025-11-25 21:25:48 -03:00
570cdb6739 feat: Add asesor role with reports-only access - backend v1.0.10, frontend v1.0.16 2025-11-20 16:23:52 -03:00
e2783015e3 Agregar Token en usuarios 2025-11-19 02:58:59 -03:00
be10a888fb first commit 2025-11-19 01:09:25 -03:00
443de4ec0e Nuevo Commit 2025-11-18 16:46:20 -03:00