Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Crie Chatbot baseado em RAG usando o Oracle Cloud Infrastructure Search com OpenSearch
Introdução
Neste tutorial, orientaremos você pelo processo de criação de um chatbot baseado em geração aumentada de recuperação (RAG) usando o OCI OpenSearch como banco de dados vetorial e modelos de serviço OCI Generative AI (como Cohere e Llama). No final deste tutorial, você terá construído uma solução de chatbot capaz de processar documentos, armazená-los como incorporações vetoriais em OpenSearch e recuperar informações relevantes durante as conversas.
Além disso, criaremos uma interface de usuário intuitiva usando o Streamlit, permitindo que você faça upload de documentos, interaja com o chatbot e acesse informações relevantes sem esforço. Este tutorial abrange tudo, desde a configuração de seu ambiente até o teste do chatbot com seus próprios arquivos PDF.
Objetivos
-
Configure um cluster OpenSearch no OCI para armazenar incorporações de documentos.
-
Configure seu ambiente de desenvolvimento com Conda e dependências necessárias.
-
Configure a autenticação do OCI para integração perfeita.
-
Escreva e configure o código do mecanismo de chatbot.
-
Crie uma interface de usuário interativa usando o Streamlit para fazer upload de documentos e consultar o chatbot.
-
Faça upload de documentos (PDFs) e interaja com o chatbot para consultá-los.
Pré-requisitos
-
Uma conta do OCI com as permissões necessárias para criar clusters OpenSearch.
-
Uma máquina virtual (VM) com Python instalado.
-
Familiaridade com bancos de dados vetoriais e grandes modelos de linguagem.
-
Compreensão básica da Interface de Programação de Aplicativos (API) e do desenvolvimento do mecanismo de chatbot.
-
Crie Pesquisar com Políticas do Serviço IAM OpenSearch e Políticas de IA Generativa do OCI.
Tarefa 1: Configurar um Cluster OpenSearch com o OCI com OpenSearch
-
Criar um cluster. Para obter mais informações, consulte Criar um cluster OpenSearch com o OCI Search com OpenSearch
-
Depois que o cluster for criado, copie o ponto final da API, juntamente com as credenciais do usuário para configurá-las no aplicativo.
Tarefa 2: Configurar o Ambiente Python
-
Inicie uma instância com a imagem e a forma básica do Oracle Linux no OCI. Para obter mais informações, consulte Ativando uma Instância do Linux.
-
Instale o Python 3.11 no Oracle Linux. Para obter mais informações, consulte Instalando o Python.
-
Execute o comando a seguir para atualizar a versão do Python.
sudo update-alternatives --set python /usr/bin/python3.11
-
Crie uma pasta de projeto chamada
opensearch_rag_chatbot
. -
Vá para a pasta criada e instale as dependências criando um arquivo chamado
requirements.txt
nela.python -m venv venv source ./venv/bin/activate pip install -r requirements.txt
-
Execute o comando a seguir para testar a instalação do Streamlit.
streamlit hello
-
Se as portas Streamlit e OpenSearch (
8501
/9200
) não estiverem abertas no firewall, adicione-as usando o comando a seguir.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
Tarefa 3: Configurar Autenticação do OCI
-
Crie uma pasta
.oci
no diretório home e configure o arquivoconfig
.[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
Observação: Para obter mais informações, consulte Criar um Arquivo de Configuração para o Oracle Date a Science.
Tarefa 4: Escrever o Código do Mecanismo do Chatbot
-
Siga esta estrutura de projeto para a base de código.
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
-
Faça download dos arquivos de código de exemplo a seguir como exemplos de trabalho.
Observação: Esses programas de amostra podem exigir personalização para casos de uso específicos e tratamento de erros adicionais. Além disso, nas amostras, um controlador de usuário é usado para estabelecer uma conexão com o cluster OpenSearch. No entanto, é recomendável armazenar informações confidenciais, como segredos e credenciais, no OCI Vault para maior segurança. Em seguida, você pode extrair esses segredos dinamicamente no runtime. Para obter mais informações sobre como gerenciar e recuperar segredos com segurança, consulte Manter Seus Dados Seguros Usando o Vault.
Tarefa 5: Fazer Upload de Documentos e Testar o Chatbot
-
Execute o comando a seguir para executar o aplicativo.
cd opensearch_rag_chatbot python -m venv venv source ./venv/bin/activate streamlit run app.py
-
Copie o URL gerado para acessar o aplicativo Streamlit. Inicie o upload de PDFs e teste a funcionalidade do chatbot.
Solução de problemas e dicas
-
Erros de Conexão: Verifique o URL e as credenciais do cluster OpenSearch.
-
Problemas de Índice: Certifique-se de que as configurações OpenSearch em
config.py
estejam corretas. -
Erros de Processamento PDF: Confirme a compatibilidade do formato PDF.
-
Verificação de Configuração: Verifique novamente a precisão do arquivo
config.py
.
Observação: Os logs estão disponíveis na saída da console Streamlit, que fornece informações detalhadas sobre operações e erros.
Próximas Etapas
Para as próximas etapas, considere expandir seu chatbot adicionando suporte a mais formatos de documento, como arquivos Word ou HTML, e experimentando diferentes modelos de incorporação para melhorar a precisão de resposta do chatbot em domínios específicos. Você também pode aprimorar a IU do Streamlit com recursos adicionais, como suporte para vários uploads de documentos, histórico de consultas ou feedback em tempo real sobre processos longos.
Links Relacionados
Agradecimentos
- Autors - Pavan Upadhyay (Engenheiro de Nuvem Principal), Saket Bihari (Engenheiro de Nuvem Principal)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Create RAG based Chatbot using Oracle Cloud Infrastructure Search with OpenSearch
G20430-01
November 2024