Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Crea un chatbot basato su RAG utilizzando Oracle Cloud Infrastructure Search con OpenSearch
Introduzione
In questo tutorial, ti guideremo attraverso il processo di creazione di un chatbot basato su RAG (recupero-augmented generation) che utilizza OCI OpenSearch come database vettoriale e modelli di servizi OCI Generative AI (come Cohere e Llama). Alla fine di questo tutorial, avrai creato una soluzione di chatbot in grado di elaborare i documenti, memorizzarli come incorporamenti vettoriali in OpenSearch e recuperare informazioni pertinenti durante le conversazioni.
Inoltre, creeremo un'interfaccia utente intuitiva utilizzando Streamlit, consentendoti di caricare documenti, interagire con il chatbot e accedere facilmente alle informazioni pertinenti. Questo tutorial copre tutto, dall'impostazione dell'ambiente al test del chatbot con i tuoi file PDF.
Obiettivi
-
Impostare un cluster OpenSearch su OCI per la memorizzazione di incorporamenti di documenti.
-
Configura il tuo ambiente di sviluppo con Conda e le dipendenze richieste.
-
Imposta l'autenticazione OCI per una perfetta integrazione.
-
Scrivi e configura il codice del motore del chatbot.
-
Crea un'interfaccia utente interattiva utilizzando Streamlit per caricare documenti ed eseguire query sul chatbot.
-
Carica documenti (PDF) e interagisci con il chatbot per interrogarli.
Prerequisiti
-
Account OCI con le autorizzazioni necessarie per creare i cluster OpenSearch.
-
Virtual machine (VM) con Python installato.
-
Familiarità con database vettoriali e modelli di linguaggio di grandi dimensioni.
-
Conoscenza di base dell'interfaccia API (Application Programming Interface) e dello sviluppo dei motori di chatbot.
-
Creare Cerca i criteri IAM OpenSearch e i criteri dell'AI generativa OCI.
Task 1: impostare un cluster OpenSearch con OCI con OpenSearch
-
Crea un cluster. Per ulteriori informazioni, vedere Creare un cluster OpenSearch con OCI Search con OpenSearch
-
Una volta creato il cluster, copiare l'endpoint API e le credenziali utente per configurarle nell'applicazione.
Task 2: configurare l'ambiente Python
-
Avvia un'istanza con l'immagine Oracle Linux e la forma di base in OCI. Per ulteriori informazioni, vedere Avvio di un'istanza Linux.
-
Installare Python 3.11 su Oracle Linux. Per ulteriori informazioni, vedere Installazione di Python.
-
Eseguire il comando seguente per aggiornare la versione di Python.
sudo update-alternatives --set python /usr/bin/python3.11
-
Creare una cartella di progetto denominata
opensearch_rag_chatbot
. -
Andare alla cartella creata e installare le dipendenze creando un file denominato
requirements.txt
al suo interno.python -m venv venv source ./venv/bin/activate pip install -r requirements.txt
-
Eseguire il comando seguente per eseguire il test dell'installazione Streamlit.
streamlit hello
-
Se le porte Streamlit e OpenSearch (
8501
/9200
) non sono aperte nel firewall, aggiungerle utilizzando il seguente comando.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
Task 3: Impostazione dell'autenticazione OCI
-
Creare una cartella
.oci
nella directory home e impostare il fileconfig
.[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
Nota: per ulteriori informazioni, vedere Creare un file di configurazione per Oracle Date a Science.
Task 4: scrivere il codice del motore chatbot
-
Seguire questa struttura di progetto per il codebase.
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
-
Scaricare i file di codice di esempio riportati di seguito come esempi di lavoro.
Nota: questi programmi di esempio possono richiedere la personalizzazione per casi d'uso specifici e la gestione aggiuntiva degli errori. Inoltre, negli esempi, viene utilizzato un principal utente per stabilire una connessione con il cluster OpenSearch. Tuttavia, si consiglia di memorizzare informazioni riservate, come segreti e credenziali, in OCI Vault per una maggiore sicurezza. È quindi possibile recuperare questi segreti in modo dinamico in runtime. Per ulteriori informazioni sulla gestione e il recupero sicuri dei segreti, vedere Mantenere sicuri i dati mediante il vault.
Task 5: Carica documenti e testa il chatbot
-
Eseguire il comando riportato di seguito per eseguire l'applicazione.
cd opensearch_rag_chatbot python -m venv venv source ./venv/bin/activate streamlit run app.py
-
Copiare l'URL generato per accedere all'applicazione Streamlit. Inizia a caricare i PDF e prova le funzionalità del chatbot.
Risoluzione dei problemi e suggerimenti
-
Errori di connessione: verificare l'URL e le credenziali del cluster OpenSearch.
-
Problemi di indice: assicurarsi che le configurazioni OpenSearch in
config.py
siano corrette. -
Errori di elaborazione PDF: confermare la compatibilità del formato PDF.
-
Controllo configurazione: controllare la precisione del file
config.py
.
Nota: i log sono disponibili nell'output della console Streamlit che fornisce informazioni dettagliate sulle operazioni e sugli errori.
Passi successivi
Per i passaggi successivi, valuta l'opportunità di espandere il tuo chatbot aggiungendo il supporto per più formati di documenti, come file Word o HTML, e sperimentando diversi modelli di incorporamento per migliorare l'accuratezza delle risposte del chatbot in domini specifici. È inoltre possibile migliorare l'interfaccia utente Streamlit con funzionalità aggiuntive, come il supporto per più caricamenti di documenti, la cronologia delle query o il feedback in tempo reale su processi lunghi.
Collegamenti correlati
-
Accedi ai dashboard OpenSearch OCI e alle API REST all'esterno di una VCN
-
Informazioni sull'integrazione dei modelli nell'AI generativa
Riconoscimenti
- Autori - Pavan Upadhyay (Principal Cloud Engineer), Saket Bihari (Principal Cloud Engineer)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Create RAG based Chatbot using Oracle Cloud Infrastructure Search with OpenSearch
G20427-01
November 2024