Este README está disponible en varios idiomas: Español | Galego | English
La gestión de incidencias, especialmente en departamentos de IT, requiere de tareas que muchas veces son repetitivas como revisar Wikis, documentación o la ejecución de comandos como Ping a determinados servidores. GLPI AssistIA busca reducir toda esta carga con un informe previo de la incidencia a tratar. Una vez se registra una incidencia en el sistema, esta se envía a un servidor (GLPI AssistIA Server) que genera un informe con posíbles soluciones, este informe estará visible para el agente que trate esta incidencia como una nota provada en el momento que tome el caso reduciendo los tiempos de respuesta.
El núcleo del sistema está diseñado en torno a un flujo de trabajo que se activa con la creación de un ticket en GLPI. La información del ticket es procesada por un sistema de agentes inteligentes (CrewAI) que colaboran para analizar, enriquecer y proponer soluciones.
Este CrewAI se conecta a herramientas externas (bases de conocimiento, sistemas de monitorización) a través de un Servidor MCP (Model Context Protocol), que actúa como un bus de datos.
- Entrada en GLPI: Un usuario o técnico crea un ticket de incidencia.
- Activación del Agente: La incidencia se transfiere al sistema
CrewAIalojado en GLPI AssistIA Server para su procesamiento. - Análisis por Agentes IA:
- Analista de Emociones: Evalúa la urgencia y el estado de ánimo del usuario para priorizar el ticket.
- Agente Categorizador: Clasifica la incidencia según las etiquetas predefinidas en GLPI.
- Agente Resolutor: Revisa los datos disponibles en Wiki.js, incidencias anteriores de GLPI y realiza Pings (En caso de problemas de conexión). Finalmente consolida toda la información, genera un resumen enriquecido y una posible solución.
- Respuesta en GLPI: La solución y el análisis generados se publican en el ticket de GLPI, asistiendo al técnico o respondiendo directamente al usuario.
- Resumen y Enriquecimiento de Tickets: La IA analiza y resume el problema del usuario, añadiendo contexto técnico.
- Arquitectura MCP: Un bus de datos desacoplado para facilitar la comunicación y la escalabilidad.
- Información Contextual Inteligente: Proporciona información relevante tanto a técnicos como a usuarios.
- GLPI versión 10.x o superior (acceso vía API).
- Credenciales GLPI:
GLPI_URL,GLPI_APP_TOKENyGLPI_USER_TOKEN. - Servidor AssistIA (
glpiassistiaserver/):- Si es PHP, requiere PHP ≥ 8.1 y Composer.
- Si es Python, requiere Python ≥ 3.11.
- MCP (opcional pero recomendado):
python ≥ 3.11para ejecutarmcp_server.py. - (Opcional) LLM local si la orquestación usa modelos locales (por ejemplo, Ollama).
Crea un archivo .env que contenga:
# GLPI
GLPI_URL=https://tu-glpi.example.com
GLPI_API_URL=https://mi.glpi/apirest.php
GLPI_APP_TOKEN=xxx
GLPI_USER_TOKEN=yyy
GLPI_VERIFY_SSL=true
# MCP
MCP_HOST=127.0.0.1
MCP_PORT=8765
# Proveedor de LLM (Introduce una línea)
OLLAMA_HOST=[HOST DE OLLAMA]
CEREBRAS_API_KEY=[API KEY]
GROQ_API_KEY=[API KEY]
# Wiki.js
WIKIJS_URL=http://localhost:8080/
WIKIJS_API_TOKEN=tu_tokenEl sistema consta de dos servidores, el primero es WebApp que recibirá las incidencias. Puedes iniciarlo con el siguiente comando desde el directorio principal del repositorio: uvicorn glpiassistiaserver.webapp:app --host 0.0.0.0 --port 8089 --reload
El segundo es MCP Server, que realizará las comunicaciones entre GLPI AssistIA Server y las herramientas. Puedes iniciarlo ejecutando directamente el script mcp_server.py (Si deseas cambiar algún dato puedes usar el comando uvicorn como hicimos en el paso anterior).
Deberás de mover la carpeta glpiassistia a la carpeta de plugins de tu GLPI e instalarla. Una vez instalado deberás de entrar en configuración, activar la opción de GLPI AssistIA, establecer la dirección de GLPI AssistIA Server y guardar los datos. Una vez realizados estos pasos deberás de activar el plugin en el apartado de plugins. Cada vez que se cree una incidencia será enviada al servidor.
A continuación se muestra el procesamiento de una incidencia de ejemplo
A continuación se muestra la interfaz del plugin
En el siguiente video se muestra la configuración del plugin y un ejemplo de uso
El éxito del proyecto se medirá por la consecución de los siguientes objetivos:
- Reducción de más del 70% en el tiempo de primera respuesta.
- Precisión superior al 85% en las respuestas automáticas generadas.
- Reducción de más del 50% en los tickets que necesitan ser escalados manualmente.
- Reducción de más del 40% en el tiempo promedio de resolución de incidencias.
- Nivel de satisfacción del usuario superior a 4.0/5.0.
Este proyecto ha sido posíble gracias al programa de Becas de Verano de ANFAIA y la colaboración de Aitire
