> For the complete documentation index, see [llms.txt](https://help.glpi-project.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.glpi-project.org/faq/fr/plugins/glpi-ia.md).

# GLPI IA

### Comment comprendre GLPI AI sans jargon ?

Chaque fonctionnalité du plugin est une variation de l'une de ces trois images.

1. **IA conversationnelle** : c’est l’assistant qui lit votre instance GLPI, c'est le modèle de langage. Il résume, rédige et répond. Seul, il ne connaît que ce que vous lui montrez à cet instant. *(chat · résumés · classification · rédaction)*
2. **RAG** : il permet de visualiser les informations de l’instance et de “se souvenir” de évènements de l’instance « cela s'est déjà produit, et voici comment cela a été résolu ». *(tickets liés · précédents · recherche par le sens)*
3. **Traitement par lot (batch)** : Le travail répétitif qui peut être automatisé

***

### Quelles fonctionnalités GLPI AI propose-t-il ?

* **Chat** : un assistant qui peut lire, rechercher et mettre à jour les données GLPI via les outils MCP.
* **Contenu** : résumer, traduire, assistant de rédaction.
* **Classer** : suggérer la catégorie, l'impact et l'urgence.
* **Contenu lié** : trouver des articles de la base de connaissances et des tickets liés.

***

### Quels sont les prérequis pour utiliser GLPI AI ?

GLPI AI nécessite GLPI 11.0.x avec PHP 8.2 minimum (PHP 8.4 recommandé) ou GLPI 12.0.x avec PHP 8.3 minimum (PHP 8.5 recommandé) et une souscription GLPI Network BASIC ou supérieure. Le plugin est aussi disponible pour toutes les instances Cloud de GLPI Network.

***

### Comment installer le plugin ?

Rendez-vous sur le marketplace, puis téléchargez et installez le plugin **GLPI AI**.

***

### Combien coûte GLPI AI ?

Le plugin est disponible pour tous les utilisateurs disposant d'une souscription GLPI Network BASIC (ou supérieure) et pour GLPI Network Cloud. Il n'a pas de prix propre pour l'usage de l'IA : le coût est celui du fournisseur choisi. Le tableau de bord d'utilisation l'affiche par jour, par fonctionnalité et par modèle, embeddings et traitement par lot compris.

***

### Comment configurer le plugin ?

Un assistant de configuration vous guide pas à pas : choix du fournisseur, saisie de la clé API et du modèle, sélection des fonctionnalités, recherche sémantique (optionnelle), habilitations, puis résumé avant validation. Vous pouvez le relancer à tout moment avec le bouton situé en haut à gauche de l'onglet **Configuration du provider**.

***

### Qui peut utiliser GLPI AI ?

Lors de la configuration, vous choisissez parmi trois options : **Seulement moi**, **Tous les techniciens** ou **Personne**.

***

### Faut-il créer un jeton d'API pendant la configuration ?

Cette étape est optionnelle. Si un jeton a déjà été généré (dans **`Administration`** > **`Utilisateurs`** > *Utilisateur* > **`Jeton d'API`**, ou dans **`Mes préférences`** > **`Jeton d'API`**), il est pré-rempli. Sinon, vous pouvez en générer un nouveau.

***

### Comment savoir quel fournisseur (LLM) et quel modèle utiliser, puisque j'en ai plusieurs ?

Ce n'est pas un choix unique, mais trois couches.

* **Couche 1 : le fournisseur par défaut.** Un seul, pour tout ce qui ne précise rien d'autre. C'est la première chose que demande l'assistant de configuration. L'icône étoile permet de le définir.
* **Couche 2 : l'exception par action.** Chaque action peut imposer un autre fournisseur et un autre modèle. « Classer sur un modèle économique, discuter sur un modèle puissant, faire les embeddings chez Mistral » est une configuration normale, pas un contournement. Pour changer le fournisseur d'une fonctionnalité, cliquez sur le fournisseur actuel, sélectionnez **Modifier**, puis choisissez le nouveau.
* **Couche 3 : ce que chaque fournisseur sait réellement faire.** Tous ne font pas tout, et c'est ce tableau qui tranche vraiment.

<table data-search="false"><thead><tr><th>Fournisseur</th><th>Chat et actions</th><th>Embeddings (RAG)</th><th>Traitement par lot</th><th>Dictée vocale (STT)</th></tr></thead><tbody><tr><td>OpenAI</td><td>✔</td><td>✔</td><td>✔</td><td>✔</td></tr><tr><td>Mistral <em>(européen)</em></td><td>✔</td><td>✔</td><td>✔</td><td>✔</td></tr><tr><td>Google Gemini</td><td>✔</td><td>✔</td><td>✔</td><td>✔</td></tr><tr><td>Anthropic</td><td>✔</td><td>—</td><td>✔</td><td>—</td></tr><tr><td>Ollama <em>(auto-hébergé)</em></td><td>✔</td><td>✔</td><td>—</td><td>—</td></tr><tr><td>DeepSeek</td><td>✔</td><td>—</td><td>—</td><td>—</td></tr><tr><td>OpenRouter</td><td>✔</td><td>—</td><td>—</td><td>—</td></tr></tbody></table>

***

### Comment lire ce tableau ?

* **Souveraineté, données en Europe :** Mistral couvre à lui seul les quatre colonnes. L'argument n'est pas « vous pouvez utiliser Mistral », c'est « vous pouvez utiliser Mistral *pour tout* ».
* **Rien ne doit sortir de chez vous :** Ollama pour le chat et les embeddings. Vous renoncez au traitement par lot et à la dictée.
* **Vous voulez Anthropic pour le chat :** c'est possible, mais les embeddings et la dictée viendront d'un autre fournisseur. Le plugin est conçu pour mélanger les fournisseurs.

***

### Comment choisir le modèle au sein d'un fournisseur ?

La liste provient du catalogue du fournisseur et indique déjà ce que chaque modèle accepte : images, PDF, audio. Le critère est **volume × complexité** :

* La classification et les résumés s'exécutent *des milliers de fois* sur une tâche simple : privilégiez un modèle petit et économique.
* Le chat et la rédaction s'exécutent *quelques fois* sur une tâche ouverte : privilégiez un modèle puissant.
* Le modèle d'embedding est un modèle à part, et en changer plus tard oblige à tout réindexer : choisissez-le avec soin.

Cette FAQ ne cite volontairement ni noms de modèles ni prix : ils changent régulièrement. Le tableau de bord d'utilisation du plugin montre, par fonctionnalité et par modèle, ce que chaque choix a coûté. C'est le seul chiffre auquel se fier.

***

### Si je change de fournisseur plus tard, est-ce que je perds quelque chose ?

Non pour le chat, les résumés et les paramètres, qui sont conservés. Seul l'index RAG doit être reconstruit, car les vecteurs issus de modèles différents ne sont pas comparables.

***

### Qu'est-ce que le RAG m'apporte, et pourquoi est-il optionnel ?

Vous gagnez une mémoire, et elle est optionnelle parce qu'elle a un coût. Sans RAG, l'assistant ne répond qu'avec ce qui est à l'écran. Avec RAG, il cherche d'abord dans vos tickets et articles les passages les plus **proches par le sens** (pas par les mots) et les apporte avec lui. « Impossible de me connecter » retrouve ainsi « mot de passe expiré dans l'AD ».

Ce que vous gagnez :

* Des **tickets réellement liés**, avec un pourcentage de similarité et une raison rédigée.
* Une **suggestion de catégorie avec précédent** : le modèle voit des tickets similaires et la catégorie qu'un humain a réellement utilisée dessus.
* La **recherche par le sens** dans le chat et pour les IA externes.

Pourquoi il est optionnel :

* Il nécessite un **second modèle**, le modèle d'embedding, et Anthropic n'en propose pas.
* Il a un **coût initial** : l'indexation de l'historique, faite une fois.
* Le plugin **fonctionne sans** : les « tickets liés » reposent alors sur une recherche par mots-clés, et l'écran avertit que la précision est moindre.

***

### Dans quels cas puis-je m'en passer pour l'instant ?

* Instance neuve ou petite, sans historique à consulter.
* Vous voulez seulement les résumés, le chat et la classification de l'urgence et de l'impact : aucun ne dépend du RAG.

***

### Comment configurer la recherche sémantique (vectorisation) ?

Elle indexe vos tickets et vos articles de la base de connaissances sous forme de vecteurs. Cette étape peut être ignorée lors de la configuration et faite plus tard. Vous pouvez tester la connexion avec votre fournisseur, mais **cette étape consomme des crédits**.

***

### Que contient la section Embeddings ?

* **Moteur** : le fournisseur de vectorisation, avec un ID de modèle personnalisable.
* **Indexation** : le nombre de fragments (chunks) indexés, avec la possibilité de réindexer ou de vider l'index.
* **Profondeur d'historique de recherche** : le volume de tickets clos et d'articles analysés. Plus il est élevé, plus la recherche est complète, mais plus elle est lente.
* **Filtre de bruit** : retire les phrases répétées (signatures, avertissements) avant l'indexation. L'action automatique `recalibrateBoilerplate` permet à GLPI AI d'apprendre le vocabulaire des tickets récents.

***

### Faut-il installer une base de données spéciale pour le RAG ?

Non. Les vecteurs sont stockés dans une table ordinaire, à l'intérieur de GLPI.

***

### À quoi sert le traitement par lot, et en ai-je besoin ?

Il fait une seule chose : résumer beaucoup en payant peu. Activer les résumés automatiques sur une instance de plusieurs dizaines de milliers de tickets est le seul endroit où le coût de l'IA pèse vraiment dans un service desk. Le batch regroupe jusqu'à 2 000 requêtes dans un seul fichier, le remet au fournisseur et récupère le résultat quelques heures plus tard, pour environ moitié moins cher.

***

### Quand en ai-je besoin ?

* Vous voulez que **tout l'historique soit résumé**, pour que le chat et les IA externes comprennent d'anciens tickets sans tout relire.
* Vous avez des **pics** de plusieurs centaines de tickets par jour.

***

### Quand puis-je m'en passer ?

* Vous résumez ticket par ticket, au clic.
* Le volume est faible : le mode normal traite 20 éléments par passage du cron et suit le rythme.

***

### Que faut-il savoir avant de l'activer ?

* Il ne fonctionne qu'avec **OpenAI, Anthropic, Mistral et Gemini**.
* Il ne concerne aujourd'hui que les **résumés**. Rien d'autre ne passe par le batch.
* La soumission automatique se déclenche lorsque la file d'attente contient au moins 200 éléments. Les résultats sont attendus sous 24 heures et l'action automatique `pollBatchJobs` doit être configurée dans **`Configuration`** > **`Actions automatiques`**.
* Si le réseau tombe pendant la récupération des résultats, elle reprend d'elle-même : le lot a déjà été payé et n'est pas perdu.

***

### Que peut faire l'assistant de chat ?

Si l'option « Exposer les outils MCP au chat » est activée, il peut lire, rechercher et mettre à jour les données GLPI. L'approbation de l'utilisateur est demandée pour toute action qui modifie des données (tout ce qui n'est pas en lecture) et pour tous les appels MCP externes.

***

### Les réponses du chat peuvent-elles s'afficher en continu ?

Oui, avec l'option de réponse en continu (stream), la réponse s'affiche au fur et à mesure de sa génération au lieu d'attendre qu'elle soit complète.

***

### GLPI se fige-t-il pendant que l'IA réfléchit ?

Non. Vous continuez à naviguer, et la réponse est enregistrée même si vous rafraîchissez la page. Pour les installations on-premise, voir la section dédiée plus bas sur le dimensionnement de PHP-FPM.

***

### Peut-on dicter ses messages ?

Oui, grâce à la saisie vocale (Speech to text), avec les fournisseurs qui la proposent (voir le tableau ci-dessus). Deux options sont disponibles : l'arrêt automatique de l'enregistrement après environ 1,5 seconde de silence, et l'envoi automatique du texte transcrit au chat, sans appuyer sur Envoyer.

***

### Comment fonctionnent les résumés ?

En mode automatique, le résumé est rafraîchi à chaque mise à jour de l'élément ou ajout d'un suivi. Vous pouvez aussi lister les tickets sans résumé pour les traiter plus tard via une action automatique, un processus moins coûteux. L'action automatique `processSummaryQueue` doit alors être configurée.

***

### Les suggestions de catégorie, d'impact et d'urgence sont-elles sans risque ?

Avec l'option « Exécuter automatiquement », elles s'exécutent à chaque création d'élément ITIL et **écrasent toute valeur préremplie**. La création d'éléments peut être ralentie si vous utilisez un modèle d'IA lent.

***

### Que sont les actions rapides ?

Ce sont les suggestions proposées à l'ouverture d'un nouveau chat : expliquer ce ticket, analyser les causes racines, évaluer les risques, améliorer cet article, suggérer une solution, rédiger une réponse au demandeur. Chacune a son propre prompt, son icône et son contexte (ticket, problème, base de connaissances, etc.). Vous pouvez en ajouter avec **`+ Ajouter une option rapide`**.

***

### Que sont les actions de rédaction ?

Ce sont des aides à la rédaction, regroupées par catégorie :

* **Rédaction** : corriger, reformuler, simplifier.
* **Ton** : rendre amical, rendre professionnel.
* **Longueur** : développer, raccourcir, points clés.
* **Générer** : proposer une réponse.

Elles peuvent être modifiées ou supprimées, et vous pouvez ajouter vos propres catégories et actions.

***

### Quelles options sont disponibles pour chaque action de rédaction ?

* **Nécessite du texte** : désactivée, l'action peut s'exécuter sur un éditeur vide.
* **Enregistrer le contexte** : permet à l'IA de lire l'élément courant et ses suivis via les outils MCP.
* **Types d'objets** : limite l'action à un type d'objet (changement, ticket, ordinateur, etc.). Laissé vide, l'action est proposée partout.

***

### L'IA verra-t-elle des tickets que je n'ai pas le droit de voir ?

Non. Dans la recherche par le sens comme dans les outils MCP, l'IA agit avec les permissions de la personne connectée. Le filtre s'applique avant qu'un seul passage n'atteigne le modèle.

***

### Puis-je connecter d'autres IA à ce plugin ? Et puis-je connecter n'importe quel MCP à cette IA ?

Oui, dans les deux sens. Le MCP est une prise standard : il définit comment une IA « branche » des outils. Le plugin possède à la fois la prise **et** la fiche.

*« GLPI devient un outil pour l'IA que vous utilisez déjà, et l'IA de GLPI devient une utilisatrice des outils que vous avez déjà. »*

***

### Comment une IA externe accède-t-elle à mon GLPI ?

Le plugin est un **serveur** MCP. Claude Desktop, Copilot dans VS Code, ou tout client parlant HTTP peut s'y connecter et obtenir des outils pour travailler dans votre GLPI.

* **Il faut :** l'URL de GLPI, un App-Token et le user\_token de la personne.
* **L'IA obtient :** recherche, lecture d'un élément, lecture des suivis, lecture des résumés, recherche par le sens, création, mise à jour, suppression.
* **Droits :** le profil doit avoir le droit « MCP », et l'IA agit **en tant que cet utilisateur**, ni plus ni moins.

***

### Comment connecter un client externe (Claude Desktop, VS Code…) à GLPI ?

Configurez le client avec l'URL `https://votre-glpi.exemple.com/plugins/glpiai/mcp` et deux en-têtes : `App-Token` et `Authorization: user_token VOTRE_JETON`. Le jeton d'application se génère dans **`Configuration`** > **`Générale`** > **`API`** (ajout d'un client de l'API). Le jeton utilisateur se trouve dans **`Administration`** > **`Utilisateurs`** > *votre utilisateur* > **`Clés d'accès distant`**.

***

### Quel transport MCP choisir : Streamable HTTP ou SSE ?

Privilégiez **Streamable HTTP** (`"type": "http"`), qui n'occupe un worker que pendant l'appel. Le transport SSE historique (`"type": "sse"`) garde un worker PHP occupé tant que le client est connecté, même si le serveur ferme le flux toutes les 5 minutes et que le client se reconnecte.

***

### Quels sont les points de terminaison du serveur MCP ?

* `GET /plugins/glpiai/mcp` : flux SSE historique.
* `POST /plugins/glpiai/mcp` : transport Streamable HTTP (JSON-RPC).
* `POST /plugins/glpiai/mcp/message` : messages JSON-RPC (SSE historique).
* `GET /plugins/glpiai/mcp/health` : contrôle d'état.

***

### Comment GLPI utilise-t-il des serveurs MCP externes ?

Via l'onglet « Serveurs MCP distants ». Tout MCP accessible par une URL HTTP(S) entre dans le chat avec le préfixe `glpi_ext_`. Ils permettent à GLPI de récupérer des informations depuis des sources externes, comme une base de connaissances ou la documentation interne de l'entreprise.

* **Authentification :** aucune, Bearer, clé API ou Basic, plus des en-têtes personnalisés.
* **Serveurs préconfigurés :** le serveur interne de GLPI et la **documentation officielle de GLPI**. Une fois celle-ci activée, le chat répond aux questions « comment faire X » en citant le manuel. Vous pouvez les désactiver ou les supprimer.
* **Limite :** HTTP uniquement. Un MCP local, lancé en ligne de commande sur votre machine, ne peut pas être connecté.

***

### Comment ajouter un serveur MCP ?

Cliquez sur **`+ Ajouter un serveur`**, puis renseignez le nom, l'URL, la description, l'authentification et les en-têtes personnalisés si besoin.

***

### Comment suivre la consommation de l'IA ?

L'onglet **Utilisation** affiche les jetons, appels et erreurs par fournisseur, modèle, fonctionnalité et utilisateur, avec une tendance quotidienne et un filtre par période.

***

### Où consulter les journaux ?

L'onglet **Journaux** propose une recherche et des filtres par niveau : Debug, Info, Warning, Error, Exception. L'option « Deep debug » enregistre toutes les interactions avec l'IA (requêtes, réponses, appels MCP) dans `glpiai-debug.log`, au format JSON. Le bouton « Effacer les journaux » vide `glpiai.log` et `glpiai-debug.log`.

***

### Quelles actions automatiques le plugin utilise-t-il ?

* `pollBatchJobs` : interroge les tâches par lot du fournisseur et ingère leurs résultats.
* `processSummaryQueue` : traite la file d'attente de génération des résumés.
* `processVectorQueue` : traite la file d'indexation des plongements vectoriels.
* `recalibrateBoilerplate` : recalibre la détection du texte répétitif à partir des tickets actuels.
* `updateModelsDevCatalog` : télécharge le catalogue de modèles models.dev (fenêtres de contexte, capacités, tarification). Il nécessite une connexion HTTPS sortante vers models.dev et peut être désactivé dans la configuration de GLPI AI.

***

### Pourquoi mon instance GLPI se fige ou renvoie des erreurs 502/504 depuis l'activation de GLPI AI ?

Les fournisseurs de LLM peuvent mettre plusieurs secondes, parfois une minute, à répondre. Pendant ce temps, un worker PHP-FPM reste occupé. Avec la configuration par défaut (`pm.max_children = 5`), quelques requêtes IA simultanées suffisent à saturer l'instance.

***

### Comment dimensionner PHP-FPM ?

Augmentez `pm.max_children` dans `www.conf` (par exemple 40, avec `pm.start_servers = 8`, `pm.min_spare_servers = 4` et `pm.max_spare_servers = 12`). Pour choisir la valeur, tenez compte de la mémoire (RAM disponible pour PHP ÷ mémoire moyenne par worker, généralement 40 à 100 Mo) et du nombre d'utilisateurs simultanés prévus. Le message `server reached pm.max_children setting` dans le journal FPM indique que le pool est trop petit.

***

### Peut-on isoler le trafic IA du reste de GLPI ?

Oui, sur les grosses instances, vous pouvez diriger `/plugins/glpiai/` vers un pool PHP-FPM dédié, afin qu'une rafale de requêtes IA ne prive pas le reste de GLPI de ressources.

***

### Quels réglages du serveur web faut-il vérifier pour le streaming ?

Le streaming utilise des Server-Sent Events (SSE), qui ne doivent pas être mis en mémoire tampon.

* **nginx** : `fastcgi_read_timeout 300s;`, `fastcgi_buffering off;` et `gzip off;` pour la location du plugin.
* **Apache** : `ProxyTimeout 300` et `flushpackets=on`.
* **PHP** : `zlib.output_compression` doit être sur `Off`.
* **Proxy** : aucun reverse proxy ni WAF ne doit mettre en mémoire tampon les réponses `text/event-stream`.

***

### Pourquoi activer HTTP/2 ?

En HTTP/1.1, les navigateurs ouvrent au maximum 6 connexions par site, partagées entre tous les onglets. Un flux de streaming en occupe une, donc plusieurs onglets GLPI en streaming peuvent bloquer le chargement des pages. HTTP/2 supprime cette limite, mais il nécessite HTTPS et n'ajoute pas de workers PHP.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.glpi-project.org/faq/fr/plugins/glpi-ia.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
