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

Dans notre article précédent, nous avons montré comment créer un chatbot IA avec l’API ChatGPT et attribuer un rôle pour le personnaliser. Mais que se passe-t-il si vous souhaitez entraîner l’IA sur vos propres données ? Par exemple, vous pouvez avoir un livre, des données financières ou un grand nombre de bases de données et vous souhaitez les rechercher facilement. Dans cet article, nous vous proposons un didacticiel facile à suivre sur la façon de former un chatbot IA avec votre base de connaissances personnalisée avec LangChain et l’API ChatGPT. Nous déployons LangChain, GPT Index et d’autres bibliothèques puissantes pour entraîner le chatbot IA à l’aide du Large Language Model (LLM) d’OpenAI. Sur cette note, voyons comment former et créer un chatbot IA en utilisant votre propre ensemble de données.

Former un chatbot IA avec une base de connaissances personnalisée à l’aide de l’API ChatGPT, de LangChain et de l’index GPT (2023)

Dans cet article, nous avons expliqué plus en détail les étapes pour apprendre au chatbot IA avec vos propres données. De la configuration des outils et des logiciels à la formation du modèle d’IA, nous avons inclus toutes les instructions dans un langage facile à comprendre. Il est fortement recommandé de suivre les instructions de haut en bas sans sauter aucune partie.

Points notables avant de former l’IA avec vos propres données

1. Vous pouvez former le chatbot IA sur n’importe quelle plate-forme, que ce soit Windows, macOS, Linux ou ChromeOS. Dans cet article, j’utilise Windows 11, mais les étapes sont presque identiques pour les autres plates-formes.

2. Le guide est destiné aux utilisateurs généraux et les instructions sont expliquées dans un langage simple. Ainsi, même si vous avez une connaissance superficielle des ordinateurs et que vous ne savez pas coder, vous pouvez facilement former et créer un chatbot Q&A AI en quelques minutes. Si vous avez suivi notre précédent article sur le bot ChatGPT, il serait encore plus facile de comprendre le processus.

3. Puisque nous allons former un chatbot IA basé sur nos propres données, il est recommandé d’utiliser un ordinateur capable avec un bon CPU et GPU. Cependant, vous pouvez utiliser n’importe quel ordinateur bas de gamme à des fins de test, et cela fonctionnera sans aucun problème. J’ai utilisé un Chromebook pour former le modèle d’IA à l’aide d’un livre de 100 pages (~ 100 Mo). Cependant, si vous souhaitez entraîner un grand nombre de données sur des milliers de pages, il est fortement recommandé d’utiliser un ordinateur puissant.

4. Enfin, l’ensemble de données doit être en anglais pour obtenir les meilleurs résultats, mais selon OpenAI, il fonctionnera également avec des langues internationales populaires comme le français, l’espagnol, l’allemand, etc. Alors allez-y et essayez-le dans votre propre langue.

Configurer l’environnement logiciel pour former un chatbot IA

Comme notre article précédent, il faut savoir que Python et Pip doivent être installés en même temps que plusieurs librairies. Dans cet article, nous allons tout configurer à partir de zéro afin que les nouveaux utilisateurs puissent également comprendre le processus de configuration. Pour vous donner une petite idée, nous allons installer Python et Pip. Après cela, nous installerons les bibliothèques Python, qui incluent OpenAI, GPT Index, Gradio et PyPDF2. Tout au long du processus, vous apprendrez ce que fait chaque bibliothèque. Encore une fois, ne vous inquiétez pas du processus d’installation, c’est assez simple. Sur cette note, sautons dedans.

Installer Python

1. Tout d’abord, vous devez installer Python (Pip) sur votre ordinateur. Ouvrir ce lien et téléchargez le fichier d’installation de votre plate-forme.

2. Ensuite, exécutez le fichier d’installation et assurez-vous de cocher la case « Ajouter Python.exe à PATH ». C’est une étape extrêmement importante. Après cela, cliquez sur « Installer maintenant » et suivez les étapes habituelles pour installer Python.

3. Pour vérifier si Python est correctement installé, ouvrez le Terminal sur votre ordinateur. J’utilise Windows Terminal sous Windows, mais vous pouvez également utiliser l’invite de commande. Une fois ici, exécutez la commande ci-dessous ci-dessous, et elle affichera la version Python. Sous Linux et macOS, vous devrez peut-être utiliser python3 –version au lieu de python –version.

python --version

Mettre à jour le pip

Lorsque vous installez Python, Pip est installé simultanément sur votre système. Alors mettons-le à niveau vers la dernière version. Pour ceux qui ne le savent pas, Pip est le gestionnaire de packages pour Python. Fondamentalement, il vous permet d’installer des milliers de bibliothèques Python à partir du terminal. Avec Pip, nous pouvons installer les bibliothèques OpenAI, gpt_index, gradio et PyPDF2. Voici les étapes à suivre.

1. Ouvrez le Terminal de votre choix sur votre ordinateur. J’utilise le terminal Windows, mais vous pouvez également utiliser l’invite de commande. Maintenant, exécutez la commande ci-dessous pour mettre à jour Pip. Encore une fois, vous devrez peut-être utiliser python3 et pip3 sous Linux et macOS.

python -m pip install -U pip

2. Pour vérifier si Pip a été correctement installé, exécutez la commande ci-dessous. Il affichera le numéro de version. Si vous obtenez des erreurs, suivez notre guide dédié sur la façon d’installer Pip sur Windows pour résoudre les problèmes liés à PATH.

pip --version

Installez les bibliothèques OpenAI, GPT Index, PyPDF2 et Gradio

Une fois que nous avons configuré Python et Pip, il est temps d’installer les bibliothèques essentielles qui nous aideront à former un chatbot IA avec une base de connaissances personnalisée. Voici les étapes à suivre.

1. Ouvrez le terminal et exécutez la commande ci-dessous pour installer la bibliothèque OpenAI. Nous l’utiliserons comme LLM (Large language model) pour former et créer un chatbot IA. Et nous importerons également le framework LangChain d’OpenAI. Notez que les utilisateurs Linux et macOS devront peut-être utiliser pip3 au lieu de pip.

pip install openai

2. Ensuite, installons GPT Index, également appelé LlamaIndex. Il permet au LLM de se connecter 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 vous souhaitez alimenter vos données au format PDF, cette bibliothèque aidera le programme à lire les données sans effort.

pip install PyPDF2

4. Enfin, installez la bibliothèque Gradio. Ceci est destiné à créer une interface utilisateur simple pour interagir avec le chatbot AI formé. Nous avons maintenant terminé d’installer toutes les bibliothèques nécessaires pour former un chatbot IA.

pip install gradio

Télécharger un éditeur de code

Enfin, nous avons besoin d’un éditeur de code pour éditer une partie du code. Sous Windows, je recommanderais Notepad++ (Télécharger). Téléchargez et installez simplement le programme via le lien ci-joint. Vous pouvez également utiliser VS Code sur n’importe quelle plate-forme si vous êtes à l’aise avec des IDE puissants. Autre que VS Code, vous pouvez installer Sublime Text (Télécharger) sur macOS et Linux.

Pour ChromeOS, vous pouvez utiliser l’excellente application Caret (Télécharger) pour modifier le code. Nous avons presque fini de configurer l’environnement logiciel, et il est temps d’obtenir la clé API OpenAI.

Obtenez gratuitement la clé API OpenAI

Maintenant, pour former et créer un chatbot IA basé sur une base de connaissances personnalisée, nous devons obtenir une clé API d’OpenAI. La clé API vous permettra d’utiliser le modèle d’OpenAI comme LLM pour étudier vos données personnalisées et tirer des conclusions. Actuellement, OpenAI propose des clés API gratuites avec 5 $ de crédit gratuit pour les trois premiers mois aux nouveaux utilisateurs. Si vous avez créé votre compte OpenAI plus tôt, vous pouvez avoir un crédit gratuit de 18 $ sur votre compte. Une fois le crédit gratuit épuisé, vous devrez payer l’accès à l’API. Mais pour l’instant, il est disponible gratuitement pour tous les utilisateurs.

1. Dirigez-vous vers platform.openai.com/signup et créez un compte gratuit. Si vous avez déjà un compte OpenAI, connectez-vous simplement.

2. Ensuite, cliquez sur votre profil dans le coin supérieur droit et 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 pouvez pas copier ou afficher l’intégralité de la clé API ultérieurement. Il est donc fortement recommandé de copier et coller immédiatement la clé API dans un fichier Bloc-notes.

4. De plus, ne partagez pas et n’affichez pas la clé API en public. Il s’agit d’une clé privée destinée uniquement à accéder à votre compte. Vous pouvez également supprimer des clés API et créer plusieurs clés privées (jusqu’à cinq).

Former et créer un chatbot IA avec une base de connaissances personnalisée

Maintenant que nous avons configuré l’environnement logiciel et obtenu la clé API d’OpenAI, formons le chatbot AI. Ici, nous utiliserons le modèle « text-davinci-003 » au lieu du dernier modèle « gpt-3.5-turbo » car Davinci fonctionne beaucoup mieux pour la complétion de texte. Si vous le souhaitez, vous pouvez très bien changer le modèle en Turbo pour réduire le coût. Cela dit, passons aux instructions.

Ajoutez vos documents pour entraîner le chatbot IA

1. Tout d’abord, créez un nouveau dossier appelé docs dans un emplacement accessible comme le bureau. Vous pouvez également choisir un autre emplacement selon vos préférences. Cependant, conservez le nom du dossier docs.

2. Ensuite, déplacez les documents que vous souhaitez utiliser pour la formation 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 dans 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 expliqué dans ce Tweet de Langchain AI. Je n’ai pas essayé beaucoup de formats de fichiers en plus de ceux mentionnés, mais vous pouvez ajouter et vérifier vous-même. Pour cet article, j’ajoute un de mes articles sur le NFT au format PDF.

Remarque : Si vous avez un document volumineux, le traitement des données prendra plus de temps, en fonction de votre CPU et de votre GPU. De plus, il utilisera rapidement vos jetons OpenAI gratuits. Donc, au début, commencez par un petit document (30 à 50 pages ou fichiers < 100 Mo) pour comprendre le processus.

Préparer le code

1. Maintenant, lancez Notepad ++ (ou l’éditeur de code de votre choix) et collez le code ci-dessous dans un nouveau fichier. Encore une fois, j’ai été grandement aidé par armrr sur Google Colab et peaufiné le code pour le rendre compatible avec les fichiers PDF et créer une interface Gradio sur le dessus.

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 ressemble le code dans l’éditeur de code.

3. Ensuite, cliquez sur « Fichier » dans le menu supérieur et sélectionnez « Enregistrer sous… » dans le menu déroulant.

4. Après cela, définissez le nom de fichier app.py et remplacez « Enregistrer sous le type » par « Tous les types » dans le menu déroulant. Ensuite, enregistrez le fichier à l’emplacement où vous avez créé le dossier « docs » (dans mon cas, c’est le bureau). Vous pouvez modifier le nom à votre guise, mais assurez-vous que .py est ajouté.

5. Assurez-vous que le dossier « docs » et « app.py » sont au même emplacement, comme indiqué dans la capture d’écran ci-dessous. Le fichier « app.py » sera en dehors du dossier « docs » et non à l’intérieur.

6. Revenez au code dans Notepad++. Ici, remplacez votre clé API par celle générée sur le site Web d’OpenAI ci-dessus.

7. Enfin, appuyez sur « Ctrl + S » pour enregistrer le code. Vous êtes maintenant prêt à exécuter le code.

Créer un bot ChatGPT AI avec une base de connaissances personnalisée

1. Tout d’abord, ouvrez le terminal et exécutez la commande ci-dessous pour accéder au bureau. C’est là que j’ai enregistré le dossier « docs » et le fichier « app.py ». Si vous avez enregistré les deux éléments à un autre emplacement, accédez à cet emplacement via le terminal.

cd Desktop

2. Maintenant, exécutez la commande ci-dessous. Les utilisateurs Linux et macOS devront peut-être utiliser python3.

python app.py

3. Maintenant, il va commencer à analyser le document à l’aide du modèle OpenAI LLM et commencer à indexer les informations. Selon la taille du fichier et la capacité de votre ordinateur, le traitement du document prendra un certain temps. Une fois cela fait, un fichier « index.json » sera créé sur le bureau. Si le terminal n’affiche aucune sortie, ne vous inquiétez pas, il est peut-être encore en train de traiter les données. Pour votre information, il faut environ 10 secondes pour traiter un document de 30Mo.

4. Une fois que le LLM a traité les données, vous recevrez quelques avertissements qui peuvent être ignorés en toute sécurité. Enfin, en bas, vous trouverez une URL locale. Copiez-le.

5. Maintenant, collez l’URL copiée dans le navigateur Web, et voilà. Votre chatbot IA propulsé par ChatGPT et formé sur mesure est prêt. Pour commencer, vous pouvez demander au chatbot IA de quoi parle le document.

6. Vous pouvez poser d’autres questions et le bot ChatGPT répondra à partir des données que vous avez fournies à l’IA. C’est ainsi que vous pouvez créer un chatbot IA formé sur mesure avec votre propre ensemble de données. Vous pouvez maintenant former et créer un chatbot IA basé sur tout type d’informations que vous souhaitez. Les possibilités sont infinies.

7. Vous pouvez également copier l’URL publique et la partager avec vos amis et votre famille. Le lien sera actif pendant 72 heures, mais vous devez également garder votre ordinateur allumé puisque l’instance de serveur est en cours d’exécution sur votre ordinateur.

8. Pour arrêter le chatbot AI formé sur mesure, 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 de chatbot AI, déplacez-vous simplement à nouveau vers l’emplacement du bureau et exécutez la commande ci-dessous. Gardez à l’esprit que l’URL locale sera la même, mais que l’URL publique changera après chaque redémarrage du serveur.

python app.py

10. Si vous souhaitez entraîner le chatbot IA avec de nouvelles données, supprimez les fichiers dans le dossier « docs » et ajoutez-en de nouveaux. Vous pouvez également ajouter plusieurs fichiers, mais alimentez les informations sur le même sujet, sinon vous risquez d’obtenir une réponse incohérente.

11. Maintenant, exécutez à nouveau le code dans le terminal et il créera un nouveau fichier « index.json ». Ici, l’ancien fichier « index.json » sera automatiquement remplacé.

python app.py

12. Pour garder une trace de vos jetons, rendez-vous sur OpenAI en ligne tableau de bord et vérifiez combien de crédit libre il reste.

13. Enfin, vous n’avez pas besoin de toucher au code, sauf si vous souhaitez modifier la clé API ou le modèle OpenAI pour une personnalisation plus poussée.

Créez un chatbot IA personnalisé à l’aide de vos propres données

Voici donc comment vous pouvez former un chatbot IA avec une base de connaissances personnalisée. J’ai utilisé ce code pour former l’IA sur des livres médicaux, des articles, des tableaux de données et des rapports d’anciennes archives, et cela a parfaitement fonctionné. Alors allez-y et créez votre propre chatbot IA en utilisant le Large Language Model d’OpenAI et ChatGPY. Quoi qu’il en soit, tout cela vient de nous. Si vous recherchez les meilleures alternatives ChatGPT, rendez-vous sur notre article lié. Et pour utiliser ChatGPT sur votre Apple Watch, suivez notre tutoriel détaillé. Enfin, si vous rencontrez des problèmes, faites-le nous savoir dans la section des commentaires ci-dessous. Nous allons certainement essayer de vous aider.