AIAnalytics - Parte 5: Configuracion avanzada, Cron automatico y personalizacion de la IA
Configuracion avanzada, Cron y personalizacion
Panel de configuracion
Accede a la configuracion pulsando el icono de engranaje en la cabecera del dashboard. Se abre un modal con tres pestanas.
Pestana General
Parametros basicos del analisis:
Umbral de morosidad (%)
- Por defecto: 15%
- Que hace: Cuando el porcentaje de facturacion vencida supera este umbral, se genera una alerta de morosidad.
- Ejemplo: Si tienes 100.000 EUR facturados y 18.000 EUR vencidos (18%), y el umbral es 15%, se generara una alerta.
Dias de inactividad del cliente
- Por defecto: 90 dias
- Que hace: Un cliente que no ha comprado en mas dias que este valor se considera "inactivo" en el modulo de Clientes.
- Recomendacion: Ajusta segun tu ciclo de venta. Si vendes productos de compra recurrente mensual, baja a 45-60 dias. Si es venta puntual, sube a 180.
Email de alertas criticas
- Por defecto: Vacio (desactivado)
- Que hace: Si se configura, las alertas de severidad critica pueden notificarse por email.
- Formato: Direccion de email valida o dejar vacio para desactivar.
Retencion de informes (dias)
- Por defecto: 180 dias
- Que hace: Los informes con estado "resuelto" mas antiguos que este numero de dias se eliminan automaticamente por el Cron.
- Minimo recomendado: 30 dias
- Nota: Solo se eliminan informes ya resueltos. Los pendientes se conservan siempre.
Pestana IA Local (Ollama)
Activar IA
- Desactivado (solo reglas): El plugin funciona con analisis estadistico puro
- Activado (Ollama): Se conecta a Ollama para enriquecimiento con IA
URL de Ollama
- Por defecto:
http://127.0.0.1:11434 - Que hace: Direccion del servidor Ollama. Si ejecutas Ollama en otro servidor de tu red local, cambia la IP.
- Ejemplo red local:
http://192.168.1.100:11434
Modelo
Selecciona el modelo de IA a utilizar. Opciones disponibles:
- Qwen 2.5 3B: Rapido, buen espanol (recomendado para empezar)
- Qwen 2.5 7B: Mejor calidad de analisis
- Llama 3.2 3B: Equilibrado
- Llama 3.1 8B: Preciso
- Mistral 7B: Buena alternativa
- Gemma 2 9B: Alto rendimiento
- Phi-3 3.8B: Compacto
Botones de instalacion rapida (Linux)
- Instalar Ollama: Ejecuta el script de instalacion oficial de Ollama en el servidor
- Descargar Modelo: Descarga el modelo seleccionado (puede tardar varios minutos)
- Probar Conexion: Verifica que Ollama esta corriendo y muestra los modelos disponibles
Pestana Personalidad IA
Prompt de sistema personalizado
- Por defecto: Vacio (usa la personalidad predeterminada)
- Que hace: Reemplaza completamente la personalidad del consultor IA
La personalidad predeterminada es un "Director de Inteligencia Empresarial" con 7 roles expertos (CEO, CFO, Director Comercial, COO, RRHH, Controller, Auditor).
Cuando personalizar
Personaliza el prompt si quieres que la IA:
- Se especialice en tu sector (ej: "Eres un asesor financiero del sector retail")
- Use terminologia especifica de tu industria
- Se enfoque en ciertos aspectos del negocio
- Tenga un tono diferente (mas formal, mas directo, etc.)
Ejemplo de prompt personalizado
Eres un asesor financiero especializado en el sector alimentario.
Tu prioridad es el control de margenes y la rotacion de stock perecedero.
Siempre menciona si un producto tiene riesgo de caducidad basandote en
la falta de movimiento. Responde en espanol, se directo y usa cifras.
Analisis automatico con Cron
Que es el Cron de AIAnalytics
El plugin incluye un trabajo programado que se ejecuta automaticamente cada 24 horas. Realiza:
- Analisis completo de los 7 modulos (igual que pulsar "Analisis Completo")
- Limpieza de informes antiguos resueltos segun la retencion configurada
Activar el Cron
El Cron viene activado por defecto (cron_activo = 1). Para desactivarlo, cambia el parametro en la tabla ai_config o desde la configuracion.
Hora de ejecucion
- Por defecto: 04:00 (madrugada, cuando hay menos actividad)
- Parametro:
cron_hora - El Cron de FacturaScripts debe estar configurado para que se ejecute periodicamente
Requisito: Cron de FacturaScripts
Para que el analisis automatico funcione, el cron del sistema operativo debe ejecutar el cron de FacturaScripts. Ejemplo para Linux:
*/10 * * * * php /var/www/facturascripts/vendor/bin/cron.php
Esto ejecuta el cron cada 10 minutos. AIAnalytics solo realizara el analisis una vez cada 24 horas gracias a isTimeForJob('ai-analysis', '24 hours').
Limpieza automatica
El Cron tambien ejecuta cleanOld() que:
- Busca informes con estado resuelto
- Cuya fecha de creacion sea anterior a los dias de retencion configurados
- Los elimina automaticamente
Esto mantiene la base de datos limpia sin intervencion manual.
Tabla de parametros de configuracion
| Clave | Valor por defecto | Descripcion |
|---|---|---|
ollama_url |
http://127.0.0.1:11434 |
URL del servidor Ollama local |
ollama_model |
qwen2.5:3b |
Modelo IA a utilizar |
usar_ia |
0 |
1=Usar Ollama, 0=Solo reglas |
cron_activo |
1 |
Analisis automatico diario |
cron_hora |
04:00 |
Hora del analisis automatico |
dias_retencion |
180 |
Dias que se guardan los informes resueltos |
email_alertas |
(vacio) | Email para alertas criticas |
umbral_morosidad_pct |
15 |
Porcentaje de morosidad para alerta |
umbral_inactividad_dias |
90 |
Dias sin comprar = cliente inactivo |
system_prompt |
(vacio) | Prompt personalizado (vacio = predeterminado) |
Arquitectura tecnica
Estructura de archivos del plugin
AIAnalytics/
Init.php — Inicializacion, seed de configuracion
Cron.php — Analisis diario automatico
facturascripts.ini — Metadatos del plugin
Controller/
AIAnalytics.php — Dashboard + 13 acciones AJAX
ListAIReport.php — Listado de informes con filtros
Lib/
AnalysisEngine.php — Motor: orquesta 7 modulos + chat + ask
OllamaClient.php — Cliente HTTP para Ollama API
Config.php — Sistema de configuracion con cache
ExpertPrompts.php — Prompts expertos por departamento
DataCollector.php — Consultas SQL (MySQL + PostgreSQL)
Analyzers/
Base.php — Clase abstracta + enriquecimiento IA
Facturacion.php — Analisis de facturacion
Finanzas.php — Analisis financiero
Clientes.php — Analisis de cartera
Stock.php — Analisis de inventario
Procesos.php — Analisis de embudo comercial
Anomalias.php — Deteccion de irregularidades
Horarios.php — Patrones RRHH y plazos
Model/
AIConfig.php — Tabla ai_config (clave-valor)
AIReport.php — Tabla ai_reports (informes)
AIChat.php — Tabla ai_chat (historial chat)
AIMetric.php — Tabla ai_metrics (metricas)
View/
AIAnalytics.html.twig — Vista completa (dashboard + chat + config)
XMLView/
ListAIReport.xml — Definicion de la vista listado
Table/
ai_config.xml — Definicion tabla configuracion
ai_reports.xml — Definicion tabla informes
ai_chat.xml — Definicion tabla chat
ai_metrics.xml — Definicion tabla metricas
Translation/
es_ES.json — Traducciones al espanol
Tablas de base de datos
| Tabla | Uso |
|---|---|
ai_config |
Configuracion clave-valor del plugin |
ai_reports |
Informes de analisis con severidad y estado |
ai_chat |
Historial de conversaciones del chat |
ai_metrics |
Metricas historicas |
Flujo de comunicacion con Ollama
OllamaClientconecta via HTTP ahttp://127.0.0.1:11434/api/chat- Timeout de conexion: 5 segundos
- Timeout de generacion: 180 segundos (3 minutos)
- La respuesta se parsea como JSON
- Si falla la conexion, se usa el fallback de reglas automaticamente
Seguridad y privacidad
- Datos 100% locales: Toda la informacion se procesa en tu servidor
- Ollama local: El modelo de IA se ejecuta en tu propia maquina
- Sin APIs externas: No se envia nada a servicios cloud
- Sin telemetria: El plugin no comunica con ningun servidor externo
- Acceso protegido: Solo usuarios autenticados de FacturaScripts acceden al plugin
- AJAX con token: Todas las peticiones AJAX incluyen el token
multireqtokende FacturaScripts
Resolucion de problemas
Ollama no se detecta
- Verifica que el servicio esta corriendo:
systemctl status ollama - Prueba manualmente:
curl http://127.0.0.1:11434/api/tags - Revisa que la URL en configuracion sea correcta
- Si usas Docker, verifica que el puerto 11434 esta expuesto
El analisis tarda mucho
- Con Ollama, un analisis completo puede tardar 1-3 minutos dependiendo del modelo y hardware
- Sin Ollama, el analisis es casi instantaneo (solo SQL)
- Modelos mas pequenos (3B) son mas rapidos que los grandes (7B, 9B)
No se generan alertas
- Ejecuta primero un "Analisis Completo" desde el dashboard
- Verifica que tienes datos en FacturaScripts (facturas, clientes, productos)
- Revisa los umbrales de configuracion (puede que sean demasiado permisivos)
El chat no responde
- Si Ollama esta offline, el chat muestra datos en formato texto sin analisis IA
- Verifica el estado con el badge de la cabecera
- Prueba la conexion desde Configuracion > IA Local > Probar Conexion