Comment former un chatbot IA avec une base de connaissances personnalisée à l’aide de l’API ChatGPT



Dans un précédent article, nous avons exploré la création d’un chatbot IA en utilisant l’API ChatGPT, en mettant l’accent sur la personnalisation via l’attribution de rôles. Cependant, qu’en est-il si vous désirez entraîner cette IA avec vos propres informations ? Imaginez posséder un livre, des données financières, ou de nombreuses bases de données que vous aimeriez interroger facilement. Ce guide vous propose une approche simplifiée pour former un chatbot IA en utilisant votre propre base de connaissances, grâce à LangChain et à l’API ChatGPT. Nous allons mettre en œuvre LangChain, GPT Index, et d’autres outils performants afin de personnaliser l’entraînement du chatbot IA via le modèle de langage étendu (LLM) d’OpenAI. Découvrons comment construire un chatbot IA en utilisant vos données uniques.

Entraîner un chatbot IA avec une base de connaissances personnalisée grâce à l’API ChatGPT, LangChain et GPT Index (2023)

Cet article détaille les étapes pour former votre chatbot IA avec vos propres données. De la configuration des outils à l’entraînement du modèle, chaque instruction est présentée de manière claire et accessible. Il est conseillé de suivre les étapes dans l’ordre, sans en omettre aucune.

Points importants avant de commencer l’entraînement de l’IA avec vos données

1. Vous pouvez réaliser l’entraînement du chatbot IA sur n’importe quelle plateforme, qu’il s’agisse de Windows, macOS, Linux ou ChromeOS. Ce guide utilise Windows 11, mais les étapes sont globalement les mêmes pour les autres systèmes.

2. Ce guide est conçu pour tous les utilisateurs, avec des instructions formulées de manière simple. Ainsi, même si vos connaissances en informatique sont limitées et que vous ne savez pas coder, vous pourrez créer et entraîner un chatbot IA de type Q&R en quelques minutes. Si vous avez suivi notre tutoriel précédent sur le bot ChatGPT, le processus vous semblera encore plus aisé.

3. Étant donné que nous allons entraîner un chatbot IA à partir de vos données, il est préférable d’utiliser un ordinateur avec un processeur (CPU) et une carte graphique (GPU) performants. Cependant, pour des tests, un ordinateur moins puissant peut suffire. J’ai personnellement utilisé un Chromebook pour entraîner le modèle IA avec un livre d’environ 100 pages (~ 100 Mo). Si vous avez l’intention de traiter des volumes importants de données sur des milliers de pages, il est vivement recommandé d’utiliser un ordinateur puissant.

4. Enfin, pour des résultats optimaux, vos données doivent être en anglais. Cependant, selon OpenAI, le système fonctionne aussi avec des langues largement utilisées comme le français, l’espagnol ou l’allemand. N’hésitez pas à expérimenter avec votre propre langue.

Mise en place de l’environnement logiciel pour l’entraînement d’un chatbot IA

Comme pour notre précédent guide, il est nécessaire d’installer Python et Pip, ainsi que diverses bibliothèques. Ce tutoriel détaillera chaque étape, de sorte que même les nouveaux venus puissent comprendre la procédure de configuration. Nous allons commencer par installer Python et Pip, puis nous ajouterons les bibliothèques Python nécessaires : OpenAI, GPT Index, Gradio, et PyPDF2. Nous expliquerons en cours de route le rôle de chaque bibliothèque. Pas d’inquiétude, l’installation est très simple. C’est parti.

Installation de Python

1. Pour commencer, installez Python (et Pip) sur votre ordinateur. Rendez-vous sur ce lien et téléchargez le fichier d’installation correspondant à votre système.

2. Lancez ensuite le fichier d’installation et veillez à cocher la case « Ajouter Python.exe à PATH ». Cette étape est cruciale. Ensuite, cliquez sur « Installer maintenant » et suivez les instructions pour terminer l’installation de Python.

3. Pour vérifier que Python est correctement installé, ouvrez le Terminal. Sous Windows, j’utilise le Terminal Windows, mais vous pouvez aussi utiliser l’invite de commandes. Une fois dans le Terminal, exécutez la commande ci-dessous pour afficher la version de Python. Sous Linux et macOS, il vous faudra peut-être utiliser `python3 –version` au lieu de `python –version`.

python --version

Mise à jour de Pip

Pip est installé en même temps que Python sur votre ordinateur. Il est donc nécessaire de le mettre à jour à sa version la plus récente. Pour ceux qui ne le savent pas, Pip est le gestionnaire de paquets de Python. En d’autres termes, il vous permet d’installer des milliers de bibliothèques Python depuis le Terminal. Avec Pip, nous allons installer les bibliothèques OpenAI, gpt_index, gradio et PyPDF2. Voici les instructions à suivre :

1. Ouvrez le Terminal de votre choix. J’utilise le terminal Windows, mais l’invite de commande fait aussi l’affaire. Exécutez la commande ci-dessous pour mettre à jour Pip. Là encore, il faudra peut-être utiliser `python3` et `pip3` sous Linux et macOS.

python -m pip install -U pip

2. Pour vérifier que Pip a bien été mis à niveau, exécutez la commande ci-dessous. Le numéro de version s’affichera. Si vous obtenez une erreur, consultez notre guide dédié à l’installation de Pip sur Windows pour résoudre les problèmes liés à PATH.

pip --version

Installation des bibliothèques OpenAI, GPT Index, PyPDF2 et Gradio

Maintenant que Python et Pip sont configurés, installons les bibliothèques essentielles pour entraîner notre chatbot IA avec une base de connaissances personnalisée. Voici la marche à suivre :

1. Ouvrez le Terminal et exécutez la commande ci-dessous pour installer la bibliothèque OpenAI. Elle servira de modèle de langage étendu (LLM) pour entraîner et créer le chatbot IA. Nous importerons également le framework LangChain d’OpenAI. Notez qu’il faudra utiliser `pip3` à la place de `pip` sous Linux et macOS.

pip install openai

2. Installons ensuite GPT Index, aussi appelé LlamaIndex. Il permet au LLM d’accéder aux données externes qui constituent notre base de connaissances.

pip install gpt_index

3. Après cela, installez PyPDF2 pour analyser les fichiers PDF. Si vos données sont au format PDF, cette bibliothèque facilitera la lecture des informations.

pip install PyPDF2

4. Enfin, installez la bibliothèque Gradio. Elle permet de créer une interface utilisateur simple pour interagir avec le chatbot IA entraîné. Nous avons maintenant installé toutes les bibliothèques nécessaires pour former un chatbot IA.

pip install gradio

Téléchargement d’un éditeur de code

Pour finir, nous aurons besoin d’un éditeur de code. Sous Windows, je recommande Notepad++ (Télécharger). Il vous suffit de télécharger et d’installer ce logiciel. Vous pouvez aussi utiliser VS Code sur n’importe quelle plateforme si vous êtes familier avec les environnements de développement intégrés (IDE) performants. Outre VS Code, vous pouvez installer Sublime Text (Télécharger) sur macOS et Linux.

Pour ChromeOS, l’application Caret (Télécharger) est idéale pour modifier le code. Nous avons presque terminé la configuration de l’environnement logiciel, il est temps d’obtenir la clé API OpenAI.

Obtenir gratuitement la clé API OpenAI

Pour entraîner et créer un chatbot IA avec une base de connaissances personnalisée, il est indispensable d’obtenir une clé API auprès d’OpenAI. Cette clé permet d’utiliser le modèle d’OpenAI comme LLM pour analyser vos données et en tirer des conclusions. Actuellement, OpenAI offre aux nouveaux utilisateurs une clé API gratuite avec 5 $ de crédit pour les trois premiers mois. Si vous avez déjà un compte OpenAI, un crédit de 18 $ pourrait être disponible sur votre compte. Une fois le crédit gratuit épuisé, l’accès à l’API deviendra payant. Mais pour l’instant, il est accessible gratuitement à tous les utilisateurs.

1. Rendez-vous sur platform.openai.com/signup et créez un compte gratuit. Si vous possédez déjà un compte OpenAI, connectez-vous simplement.

2. Cliquez sur votre profil en haut à droite, puis sélectionnez « Afficher les clés API » dans le menu déroulant.

3. Ici, cliquez sur « Créer une nouvelle clé secrète » et copiez la clé API. Notez que vous ne pourrez plus consulter ou copier cette clé par la suite, il est donc essentiel de la coller immédiatement dans un fichier bloc-notes.

4. De plus, ne partagez pas ou ne divulguez pas publiquement cette clé API. Il s’agit d’une clé privée qui permet uniquement d’accéder à votre compte. Vous pouvez également supprimer des clés API et en créer de nouvelles (jusqu’à cinq).

Entraîner et créer un chatbot IA avec une base de connaissances personnalisée

Maintenant que l’environnement logiciel est configuré et que la clé API d’OpenAI est disponible, nous pouvons entraîner le chatbot IA. Nous utiliserons le modèle « text-davinci-003 » au lieu du modèle plus récent « gpt-3.5-turbo », car Davinci est plus performant pour la complétion de texte. Vous pouvez changer le modèle par Turbo afin de diminuer les coûts, si vous le souhaitez. Voyons maintenant les instructions à suivre :

Ajout de vos documents pour entraîner le chatbot IA

1. Créez un nouveau dossier nommé « docs » dans un emplacement facilement accessible, tel que le bureau. Vous pouvez choisir un autre emplacement, mais gardez le nom « docs ».

2. Déplacez ensuite les documents que vous souhaitez utiliser pour l’entraînement de l’IA dans le dossier « docs ». Vous pouvez ajouter plusieurs fichiers texte ou PDF (même des fichiers numérisés). Si vous avez un grand tableau Excel, vous pouvez l’importer sous forme de fichier CSV ou PDF, puis l’ajouter au dossier « docs ». Vous pouvez même ajouter des fichiers de base de données SQL, comme mentionné dans ce Tweet de Langchain AI. Je n’ai pas expérimenté avec de nombreux formats de fichiers, mais vous pouvez ajouter et vérifier par vous-même. Pour cet article, j’ajoute un de mes articles sur les NFT au format PDF.

Remarque : Si vous avez un document volumineux, le traitement des données prendra plus de temps, en fonction des capacités de votre CPU et de votre GPU. De plus, cela utilisera plus rapidement vos jetons OpenAI gratuits. Pour commencer, utilisez un petit document (30 à 50 pages ou des fichiers de moins de 100 Mo) pour bien comprendre le processus.

Préparation du code

1. Lancez maintenant Notepad++ (ou l’éditeur de code de votre choix) et collez le code ci-dessous dans un nouveau fichier. Je me suis basé sur le travail de armrr sur Google Colab et j’ai légèrement modifié le code pour qu’il soit compatible avec les fichiers PDF et pour créer une interface Gradio.

from gpt_index import SimpleDirectoryReader, GPTListIndex, GPTSimpleVectorIndex, LLMPredictor, PromptHelper
from langchain import OpenAI
import gradio as gr
import sys
import os

os.environ["OPENAI_API_KEY"] = 'Your API Key'

def construct_index(directory_path):
    max_input_size = 4096
    num_outputs = 512
    max_chunk_overlap = 20
    chunk_size_limit = 600

    prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)

    llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.7, model_name="text-davinci-003", max_tokens=num_outputs))

    documents = SimpleDirectoryReader(directory_path).load_data()

    index = GPTSimpleVectorIndex(documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper)

    index.save_to_disk('index.json')

    return index

def chatbot(input_text):
    index = GPTSimpleVectorIndex.load_from_disk('index.json')
    response = index.query(input_text, response_mode="compact")
    return response.response

iface = gr.Interface(fn=chatbot,
                     inputs=gr.inputs.Textbox(lines=7, label="Enter your text"),
                     outputs="text",
                     title="Custom-trained AI Chatbot")

index = construct_index("docs")
iface.launch(share=True)

2. Voici à quoi devrait ressembler le code dans l’éditeur de code.

3. Cliquez sur « Fichier » dans le menu, puis sélectionnez « Enregistrer sous… ».

4. Choisissez le nom de fichier `app.py` et remplacez « Enregistrer sous le type » par « Tous les types ». Enregistrez le fichier dans le même emplacement que votre dossier « docs » (le bureau dans mon cas). Vous pouvez modifier le nom comme vous le souhaitez, mais assurez-vous que l’extension `.py` est conservée.

5. Vérifiez que le dossier « docs » et le fichier « app.py » se trouvent au même emplacement, comme montré dans la capture d’écran ci-dessous. Le fichier « app.py » doit être à l’extérieur du dossier « docs », et non à l’intérieur.

6. Retournez dans l’éditeur de code et remplacez `Your API Key` par votre propre clé API, que vous avez obtenue sur le site web d’OpenAI.

7. Appuyez sur « Ctrl + S » pour enregistrer le code. Vous êtes maintenant prêt à l’exécuter.

Création d’un bot ChatGPT AI avec une base de connaissances personnalisée

1. Ouvrez le Terminal et exécutez la commande ci-dessous pour accéder au bureau. C’est là où j’ai sauvegardé le dossier « docs » et le fichier « app.py ». Si vous avez enregistré ces éléments dans un autre emplacement, naviguez jusqu’à celui-ci via le Terminal.

cd Desktop

2. Exécutez maintenant la commande suivante. Les utilisateurs de Linux et macOS devront peut-être utiliser `python3`.

python app.py

3. L’analyse des documents avec le modèle LLM d’OpenAI va démarrer, ainsi que l’indexation des informations. Le traitement prendra du temps, selon la taille du fichier et la puissance de votre ordinateur. Une fois terminé, un fichier « index.json » sera créé sur le bureau. Si le Terminal n’affiche rien, pas d’inquiétude, le processus est peut-être encore en cours. À titre indicatif, il faut environ 10 secondes pour traiter un document de 30 Mo.

4. Une fois le LLM terminé, quelques avertissements peuvent s’afficher, vous pouvez les ignorer sans problème. Vous trouverez une URL locale en bas du Terminal. Copiez-la.

5. Collez l’URL dans votre navigateur web, et voilà ! Votre chatbot IA personnalisé, basé sur ChatGPT, est prêt. Vous pouvez commencer par lui demander de quoi traite le document.

6. Posez d’autres questions, et le bot ChatGPT vous répondra en se basant sur les données que vous lui avez fournies. C’est ainsi que l’on crée un chatbot IA personnalisé avec ses propres données. Vous pouvez désormais entraîner et créer un chatbot IA basé sur n’importe quel type d’information. Les possibilités sont infinies.

7. Vous pouvez aussi copier l’URL publique et la partager avec vos amis ou votre famille. Ce lien sera actif pendant 72 heures, mais votre ordinateur doit rester allumé puisque le serveur fonctionne sur celui-ci.

8. Pour arrêter le chatbot IA personnalisé, appuyez sur « Ctrl + C » dans la fenêtre du Terminal. Si cela ne fonctionne pas, appuyez à nouveau sur « Ctrl + C ».

9. Pour redémarrer le serveur du chatbot IA, rendez-vous à nouveau à l’emplacement du bureau et exécutez la commande ci-dessous. L’URL locale restera la même, mais l’URL publique changera après chaque redémarrage du serveur.

python app.py

10. Si vous désirez entraîner le chatbot IA avec de nouvelles données, supprimez les fichiers du dossier « docs » et ajoutez-en de nouveaux. Vous pouvez aussi ajouter plusieurs fichiers, mais alimentez-le en informations sur le même sujet, sinon les réponses pourraient être incohérentes.

11. Exécutez de nouveau le code dans le Terminal et un nouveau fichier « index.json » sera créé. L’ancien fichier « index.json » sera alors remplacé automatiquement.

python app.py

12. Pour suivre votre consommation de jetons, rendez-vous sur le tableau de bord d’OpenAI pour vérifier le crédit restant.

13. Enfin, il n’est pas nécessaire de modifier le code, à moins que vous ne souhaitiez changer la clé API ou le modèle OpenAI pour une personnalisation plus avancée.

Créer un chatbot IA personnalisé avec vos données

Voici donc comment entraîner un chatbot IA avec une base de connaissances personnalisée. J’ai utilisé ce code pour entraîner l’IA avec des livres de médecine, des articles, des tableaux de données et des rapports d’archives, et cela a parfaitement fonctionné. N’hésitez donc pas à créer votre propre chatbot IA en utilisant le modèle de langage étendu d’OpenAI et ChatGPY. C’est tout pour nous. Si vous cherchez les meilleures alternatives à ChatGPT, consultez notre article dédié. Et pour utiliser ChatGPT sur votre Apple Watch, suivez notre tutoriel détaillé. Enfin, si vous rencontrez le moindre problème, faites-le nous savoir dans la section commentaires ci-dessous. Nous ferons tout notre possible pour vous aider.