Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Créer un agent conversationnel basé sur RAG à l'aide d'Oracle Cloud Infrastructure Search avec OpenSearch
Présentation
Dans ce tutoriel, nous vous guiderons tout au long du processus de création d'un agent conversationnel basé sur une génération augmentée par extraction (RAG) à l'aide d'OCI OpenSearch en tant que base de données vectorielle et de modèles de service d'IA générative OCI (comme Cohere et Llama). À la fin de ce tutoriel, vous aurez créé une solution d'agent conversationnel capable de traiter des documents, de les stocker en tant qu'intégrations vectorielles dans OpenSearch et de récupérer des informations pertinentes lors des 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 l'agent conversationnel et d'accéder facilement à des informations pertinentes. Ce tutoriel couvre tout, de la configuration de votre environnement au test de l'agent conversationnel avec vos propres fichiers PDF.
Objectifs
-
Configurez une grappe OpenSearch sur OCI pour stocker les intégrations de document.
-
Configurez votre environnement de développement avec Conda et les dépendances requises.
-
Configurer l'authentification OCI pour une intégration transparente.
-
Écrivez et configurez le code du moteur de l'agent conversationnel.
-
Créez une interface utilisateur interactive à l'aide de Streamlit pour charger des documents et interroger l'agent conversationnel.
-
Chargez des documents (PDF) et interagissez avec l'agent conversationnel pour les interroger.
Préalables
-
Un compte OCI avec les autorisations nécessaires pour créer des grappes OpenSearch.
-
Une machine virtuelle (VM) avec Python installée.
-
Connaissance des bases de données vectorielles et des grands modèles linguistiques.
-
Compréhension de base du développement de l'interface de programmation d'applications (API) et du moteur d'agent conversationnel.
-
Créez une recherche à l'aide des politiques IAM OpenSearch et des politiques d'intelligence artificielle générative OCI.
Tâche 1 : Configurer une grappe OpenSearch avec OCI avec OpenSearch
-
Créez une grappe. Pour plus d'informations, voir Créer une grappe OpenSearch avec la recherche OCI à l'aide de OpenSearch
-
Une fois la grappe créée, copiez le point d'extrémité d'API, ainsi que les données d'identification de l'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, voir Lancement d'une instance Linux.
-
Installez Python 3.11 sur Oracle Linux. Pour plus d'informations, voir 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 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 de 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 : Configurer l'authentification OCI
-
Créez un dossier
.oci
dans le 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
Note : Pour plus d'informations, voir Créer un fichier de configuration pour Oracle Date a Science.
Tâche 4 : Écrire le code du moteur de l'agent conversationnel
-
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 comme exemples de travail.
Note : Ces exemples de programmes peuvent nécessiter une personnalisation pour des cas d'utilisation particuliers et un traitement des erreurs supplémentaire. En outre, dans les exemples, un principal d'utilisateur est utilisé pour établir une connexion avec la grappe OpenSearch. Toutefois, il est recommandé de stocker des informations sensibles, telles que des clés secrètes et des données d'identification, dans la chambre forte OCI pour une sécurité améliorée. Vous pouvez ensuite extraire ces clés secrètes dynamiquement au moment de l'exécution. Pour plus d'informations sur la gestion et l'extraction sécurisées des clés secrètes, voir Garder la sécurité des données à l'aide de la chambre forte.
Tâche 5 : Charger des documents et tester l'agent conversationnel
-
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 à charger des PDF et testez les fonctionnalités de l'agent conversationnel.
Dépannage et conseils
-
Erreurs de connexion : Vérifiez l'URL et les données d'identification de la grappe 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
.
Note : 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.
Étapes suivantes
Pour les étapes suivantes, envisagez d'agrandir votre agent conversationnel en ajoutant la prise en charge de plus de formats de document, tels que des fichiers Word ou HTML, et en expérimentant différents modèles d'intégration pour améliorer l'exactitude des réponses de l'agent conversationnel 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, l'historique des requêtes ou la rétroaction en temps réel sur de longs processus.
Liens connexes
Remerciements
- Auteurs - Pavan Upadhyay (ingénieur en nuage principal), Saket Bihari (ingénieur en nuage principal)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Create RAG based Chatbot using Oracle Cloud Infrastructure Search with OpenSearch
G20425-01
November 2024