Description
HR Manual Chatbot est un chatbot est conçu pour servir d’assistant RH. Il est basé sur un manuel de gestion des ressources humaines, rédigé par la CHS Alliance et Radhika Bhagat de Manifest (UK) Ltd.
Cette application est conçue pour adresser les questions des utilisateurs à travers les informations contenues dans le fichier ‘HR Manual.pdf’. Pour ce scénario, nous recourons à des modèles locaux GGUF (précédemment appelés GGML). Ce format a été spécialement développé pour faciliter le chargement et la sauvegarde r des modèles localement n’ayant donc pas besoin d’une connexion internet.
Technologies Utilisées
Langage de programmation : Python
Modèle en format GGUF : c’est un format de fichier créé pour stocker des modèles prévus pour supplanter le format GGML. Ce format a été développé pour permettre un chargement et une sauvegarde efficaces des modèles, tout en étant simple à comprendre. Les modèles sont habituellement conçus avec PyTorch ou un autre framework, avant d’être convertis en GGUF pour utilisation.
En tant que successeur des formats tels que GGML, GGUF vise à assurer une compréhension claire et non ambiguë des modèles. Il est aussi conçu pour être évolutif, permettant l’ajout de nouvelles informations aux modèles sans affecter la compatibilité avec les versions antérieures. Ces modèles sont téléchargeable via HuggingFace ou LM Studio.
Exemple de modèle GGUF :

LaMa.cpp : Les modèles de langage de grande taille (LLM) révolutionnent de nombreux secteurs, mais leur adoption est souvent entravée par la nécessité de disposer de matériel haut de gamme. LLaMa.cpp, créé par Georgi Gerganov, se présente comme une alternative efficace et portable en C/C++, adaptée à ces modèles complexes. Ce framework jouit d’un large soutien de la communauté, renforcé par ses multiples avantages : compatibilité universelle avec diverses plateformes et intégration poussée des fonctionnalités essentielles. En particulier, LLaMa.cpp facilite l’utilisation des formats LLM tels que GGML ou GGUF, ce qui nous permettra, dans cet exemple, de charger efficacement nos modèles locaux.
LangChain : un framework qui permet de construire des applications d’intelligence artificielle (IA) conversationnelles en utilisant des modèles de traitement du langage naturel. Elle offre des outils pour intégrer diverses capacités comme la compréhension du texte, la génération de réponses, et l’interaction avec des bases de données ou des services externes. Cela peut être utilisé pour créer des chatbots, des assistants numériques, ou d’autres types d’interfaces utilisateur basées sur le langage. Ce framework permet de réaliser des techniques avancés facilement comme le RAG , Retrieval-Augmented Generation.
comment ça marche ?
Nous avons utilisé la technique RAG , qui signifie « Retrieval-Augmented Generation, » est une technique dans le domaine de l’IA qui combine la recherche d’informations et la génération de texte. Le modèle RAG fonctionne en recherchant d’abord des passages pertinents à partir d’une base de données de documents en réponse à une requête. Ensuite, il utilise ces passages pour générer une réponse textuelle en se basant sur l’information récupérée. Cette approche est particulièrement utile pour générer des réponses informatives et précises, en s’appuyant sur des sources de données existantes pour améliorer la qualité et la pertinence des réponses produites par le modèle. Cela se fait en deux étapes :
Indexation
- Chargement : D’abord, nous devons charger nos données. Cela se fait avec des DocumentLoaders.
- Division : Les Text splitters divisent les grands Documents en morceaux plus petits. Cela est utile à la fois pour l’indexation des données et pour les envoyer dans un modèle, car les gros morceaux sont plus difficiles à rechercher et ne rentrent pas dans la fenêtre de contexte finie d’un modèle.
- Indexation ou embedding : transforme des mots, des phrases ou même des documents entiers en vecteurs de nombres. Chaque vecteur capte une partie du sens du mot ou du texte qu’il représente, permettant ainsi de réaliser des calculs et des comparaisons entre eux.
- Stockage : Nous avons besoin d’un endroit pour stocker et indexer nos divisions, afin qu’elles puissent être recherchées plus tard. Cela se fait souvent à l’aide d’un VectorStore.

Récupération et génération
- Récupération : Étant donné une entrée utilisateur, les divisions pertinentes sont récupérées du stockage à l’aide d’un Retriever.
- Génération : Un ChatModel / LLM produit une réponse en utilisant une invite qui inclut la question et les données récupérées.

Résumé utilisation de RAG avec LangChain pour HR Manual Chatbot:
- Extraction de l’Information : Pour assurer que le chatbot réponde avec précision, nous utilisons RAG pour identifier les sections pertinentes du manuel PDF en fonction des questions posées. Le système cherche des mots-clés et contextes pertinents dans le manuel pour extraire les informations les plus utiles.
- Génération de Réponses : ****Une fois les informations pertinentes récupérées, LangChain aide à organiser ces données comme contexte pour les modèles GGUF qui génèrent ensuite des réponses claires et précises. Ce processus assure que les réponses sont non seulement pertinentes mais aussi formulées de manière compréhensible.
- Dans cette exemple nous avons utilisé Mistral-7B-Instruct-v0.2 (LLM) c’est une version améliorée et affinée pour l’instruction du Mistral-7B-Instruct-v0.1. Taille du modèle : 4.14 Go.
Comparaison des modèles locaux GGUF avec les modèles payants :
Avantages des modèles GGUF :
- Diversité : Ils offrent la possibilité d’utiliser une grande variété de modèles sans se limiter à un seul.
- Coût : L’utilisation des modèles GGUF est gratuite, contrairement aux options payantes.
- Indépendance : Ils ne requièrent pas de connexion internet, puisqu’ils fonctionnent localement.
Inconvénients des modèles GGUF :
- Exigences matérielles : L’utilisation efficace de ces modèles nécessite un ordinateur doté de performances élevées, idéalement avec un GPU.
- Performances en inférence : Les performances, surtout en Retrieval-Augmented Generation (RAG), peuvent ne pas être à la hauteur des nouveaux modèles payants actuels, qui bénéficient souvent de technologies plus avancées et de mises à jour continues.
Recap
Dans cet exemple nous avons utilisé des modèles locaux de format GGUF pour un fonctionnement autonome sans besoin de connexion internet. Ce chatbot tire ainsi parti des techniques de génération de texte améliorée, permettant une réponse précise et contextuellement adaptée basée sur le contenu du manuel HR.




