Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Créez un chatbot basé sur RAG à l'aide d'Oracle Cloud Infrastructure Search avec OpenSearch
Introduction
Dans ce tutoriel, nous vous guiderons tout au long du processus de création d'un chatbot basé sur la génération augmentée de récupération (RAG) à l'aide d'OCI OpenSearch en tant que base de données vectorielle et de modèles de service OCI Generative AI (tels que Cohere et Llama). À la fin de ce tutoriel, vous aurez créé une solution de chatbot capable de traiter des documents, de les stocker en tant qu'intégrations vectorielles dans OpenSearch et d'extraire des informations pertinentes pendant les conversations.
En outre, nous créerons une interface utilisateur intuitive à l'aide de Streamlit, vous permettant de télécharger des documents, d'interagir avec le chatbot et d'accéder aux informations pertinentes sans effort. Ce tutoriel couvre tout, de la configuration de votre environnement au test du chatbot avec vos propres fichiers PDF.
Objectifs
-
Configurez un cluster OpenSearch sur OCI pour le stockage des incorporations de documents.
-
Configurez votre environnement de développement avec Conda et les dépendances requises.
-
Configurez l'authentification OCI pour une intégration transparente.
-
Ecrire et configurer le code du moteur de chatbot.
-
Créez une interface utilisateur interactive à l'aide de Streamlit pour télécharger des documents et interroger le chatbot.
-
Téléchargez des documents (PDF) et interagissez avec le chatbot pour les interroger.
Prérequis
-
Compte OCI avec les droits d'accès nécessaires pour créer des clusters OpenSearch.
-
Machine virtuelle avec Python installé.
-
Connaissance des bases de données vectorielles et des grands modèles de langage.
-
Compréhension de base du développement d'API (Application Programming Interface) et de moteurs de chatbot.
-
Créez une recherche avec les stratégies IAM OpenSearch et les stratégies OCI Generative AI.
Tâche 1 : configuration d'un cluster OpenSearch avec OCI avec OpenSearch
-
Créer un cluster. Pour plus d'informations, reportez-vous à Création d'un cluster OpenSearch avec OCI Search avec OpenSearch
-
Une fois le cluster créé, copiez l'adresse d'API, ainsi que les informations d'identification utilisateur, pour les configurer dans l'application.
Tâche 2 : configurer l'environnement Python
-
Lancez une instance avec l'image Oracle Linux et la forme de base dans OCI. Pour plus d'informations, reportez-vous à Lancement d'une instance Linux.
-
Installez Python 3.11 sur Oracle Linux. Pour plus d'informations, reportez-vous à Installation de Python.
-
Exécutez la commande suivante pour mettre à jour la version de Python.
sudo update-alternatives --set python /usr/bin/python3.11
-
Créez un dossier de projet nommé
opensearch_rag_chatbot
. -
Accédez au dossier créé et installez les dépendances en y créant un fichier nommé
requirements.txt
.python -m venv venv source ./venv/bin/activate pip install -r requirements.txt
-
Exécutez la commande suivante pour tester l'installation Streamlit.
streamlit hello
-
Si les ports Streamlit et OpenSearch (
8501
/9200
) ne sont pas ouverts dans le pare-feu, ajoutez-les à l'aide de la commande suivante.sudo firewall-cmd --list-all sudo firewall-cmd --permanent --add-port=8501/tcp sudo firewall-cmd --permanent --add-port=9200/tcp sudo firewall-cmd --reload
Tâche 3 : configuration de l'authentification OCI
-
Créez un dossier
.oci
dans votre répertoire de base et configurez le fichierconfig
.[DEFAULT] user=ocid1.user.oc1.. fingerprint=40:02:56: key_file=/path/to/oci_api_key.pem tenancy=ocid1.tenancy.oc1.. region=us-region-1
Remarque : pour plus d'informations, reportez-vous à Création d'un fichier de configuration pour Oracle Date a Science.
Tâche 4 : écrire le code du moteur de chatbot
-
Suivez cette structure de projet pour la base de code.
opensearch_rag_chatbot/ ├── app.py # Main Streamlit app ├── chat_engine.py # Logic for RAG and GenAI integration ├── config.py # Config file for secrets and settings ├── ingest_data_opens.py # Script for processing and indexing PDFs in OpenSearch ├── oci_utils.py # Utility for OCI configurations
-
Téléchargez les exemples de fichiers de code suivants.
Remarque : Ces exemples de programme peuvent nécessiter une personnalisation pour des cas d'utilisation spécifiques et un traitement des erreurs supplémentaire. En outre, dans les exemples, un principal d'utilisateur est utilisé pour établir une connexion avec le cluster OpenSearch. Toutefois, il est recommandé de stocker les informations sensibles, telles que les clés secrètes et les informations d'identification, dans OCI Vault pour améliorer la sécurité. Vous pouvez ensuite extraire ces clés secrètes de façon dynamique lors de l'exécution. Pour plus d'informations sur la gestion et l'extraction sécurisées des clés secrètes, reportez-vous à Sécurisation des données à l'aide du coffre.
Tâche 5 : télécharger des documents et tester le chatbot
-
Exécutez la commande suivante pour exécuter l'application.
cd opensearch_rag_chatbot python -m venv venv source ./venv/bin/activate streamlit run app.py
-
Copiez l'URL générée pour accéder à l'application Streamlit. Commencez à télécharger des PDF et testez les fonctionnalités du chatbot.
Dépannage et conseils
-
Erreurs de connexion : vérifiez l'URL et les informations d'identification du cluster OpenSearch.
-
Problèmes d'index : assurez-vous que les configurations OpenSearch dans
config.py
sont correctes. -
Erreurs de traitement PDF : confirmez la compatibilité du format PDF.
-
Vérification de la configuration : vérifiez l'exactitude du fichier
config.py
.
Remarque : les journaux sont disponibles dans la sortie de la console Streamlit, qui fournit des informations détaillées sur les opérations et les erreurs.
Etapes suivantes
Pour les étapes suivantes, envisagez d'étendre votre chatbot en ajoutant la prise en charge d'autres formats de document, tels que des fichiers Word ou HTML, et en expérimentant différents modèles d'intégration pour améliorer la précision de réponse du chatbot dans des domaines spécifiques. Vous pouvez également améliorer l'interface utilisateur Streamlit avec des fonctionnalités supplémentaires, telles que la prise en charge de plusieurs téléchargements de documents, de l'historique des requêtes ou des commentaires en temps réel sur des processus longs.
Liens connexes
-
Accéder aux tableaux de bord OCI OpenSearch et aux API REST en dehors d'un VCN
-
Qu'est-ce que la génération augmentée de récupération (RAG) ?
Remerciements
- Auteurs - Pavan Upadhyay (ingénieur cloud principal), Saket Bihari (ingénieur cloud principal)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation produit, consultez le site Oracle Help Center.
Create RAG based Chatbot using Oracle Cloud Infrastructure Search with OpenSearch
G20426-01
November 2024