Construire un chatbot spécialisé sur vos données grâce à l'IA générative et PHP

Utilisée pour rédiger n'importe quel type de contenus, pour faire des résumés ou encore intégrée à nos outils de développement, l'IA, et en particulier l'IA générative, a trouvé sa place dans bon nombre…

Jan 26, 2025 - 16:16
 0
Construire un chatbot spécialisé sur vos données grâce à l'IA générative et PHP

Utilisée pour rédiger n'importe quel type de contenus, pour faire des résumés ou encore intégrée à nos outils de développement, l'IA, et en particulier l'IA générative, a trouvé sa place dans bon nombre de secteurs. Basée sur des LLM entraînés sur des quantités astronomiques de documents divers et variés, ces IA sont capables de comprendre et répondre à la plupart des questions qui leur sont posées. Ce qui ne les empêche cependant pas de donner des réponses erronées ou imprécises dans beaucoup de situations.

Prenons l'exemple de notre projet Castor et sa documentation en ligne et demandons à ChatGPT le rôle de la fonction run() :

ChatGPT nous parle de Castor

Même s'il comprend à peu près de quoi nous parlons, l'explication et l'exemple fournis ne sont pas corrects : la fonction line() n'existe tout simplement pas. ChatGPT n'a pas été entraîné spécifiquement sur la documentation de Castor mais a malgré tout "improvisé" une réponse.

Heureusement, il existe un moyen de forcer ce genre d'IA à être plus pertinente sur des domaines précis, sans avoir à dépenser du temps, ni d'argent à entraîner nos propres modèles de LLM. C'est notamment le principe de fonctionnement des Retrieval-Augmented Generation, abrégés RAG.

Qu'est-ce qu'un RAG ?

Bien qu'un modèle de langage (LLM) soit entraîné sur une vaste quantité de documents, il ne peut jamais être constamment à jour ni pertinent sur tous les sujets pour plusieurs raisons :

  • son entraînement prend souvent du temps ;
  • les documents en ligne (sur lesquels ils sont entraînés) changent régulièrement ;
  • le modèle n'a pas accès à toutes les informations du monde (et heureusement).

Dans cet article, nous utiliserons la documentation de Castor comme exemple. Mais imaginez avoir une IA capable de répondre à vos questions sur n'importe quel outil open source ou encore sur votre documentation interne du fonctionnement de votre entreprise.

C'est là qu'intervient le concept de RAG (Retrieval-Augmented Generation). Il permet de découper le processus de génération de réponses en deux étapes distinctes :

Les deux étapes d'un RAG

La récupération