# Agente RAG com Roteamento de Base de Dados

> Uma aplicação Streamlit que demonstra uma implementação avançada do Agente RAG com roteamento de consultas inteligente. O sistema combina várias bases de dados especializadas com mecanismos de fallback inteligentes para garantir respostas fiáveis e precisas às consultas dos utilizadores.

- Fonte: https://doutorai.pt/apps/rag-database-routing
- Categoria: RAG e Conhecimento
- Dificuldade: Médio
- Modelos: OpenAI
- Frameworks: Agno, LangChain
- Corre local?: Precisa de APIs cloud
- Chaves necessárias: OPENAI_API_KEY
- Licença: Apache-2.0
- Site: Doutor AI (https://doutorai.pt) - ferramentas de IA para pequenos negócios em português

## Tutorial completo

# 📠 Agente RAG com Roteamento de Base de Dados

### 🎓 Tutorial Passo-a-Passo GRÁTIS 
**👉 [Clica aqui para seguir o nosso tutorial completo passo-a-passo](https://www.theunwindai.com/p/build-a-rag-agent-with-database-routing) e aprende a construir isto do zero com explicações detalhadas e melhores práticas.**

Uma aplicação Streamlit que demonstra uma implementação avançada de Agente RAG com roteamento de consultas inteligente. O sistema combina várias bases de dados especializadas com mecanismos de fallback inteligentes para garantir respostas fiáveis e precisas às consultas dos utilizadores.

## Funcionalidades

- **Upload de Documentos**: Os utilizadores podem fazer upload de múltiplos documentos PDF relacionados com uma determinada empresa. Estes documentos são processados e armazenados numa das três bases de dados: Informação de Produto, Suporte ao Cliente & FAQ, ou Informação Financeira.
  
- **Consultas em Linguagem Natural**: Os utilizadores podem fazer perguntas em linguagem natural. O sistema roteia automaticamente a consulta para a base de dados mais relevante utilizando um agente agno como roteador.

- **Orquestração RAG**: Utiliza Langchain para orquestrar o processo de geração aumentada de recuperação, garantindo que a informação mais relevante é recuperada e apresentada ao utilizador.

- **Mecanismo de Fallback**: Se não forem encontrados documentos relevantes nas bases de dados, um agente LangGraph com uma ferramenta de pesquisa DuckDuckGo é utilizado para realizar pesquisa na web e fornecer uma resposta.

## Como Executar?

1. **Clona o Repositório**:

```bash
   git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
   cd rag_tutorials/rag_database_routing
   ```

```markdown
# 2. **Instalar Dependências**:

Para instalar as dependências necessárias, executa o seguinte comando:

```bash
npm install
```

Isto irá instalar todas as bibliotecas e pacotes necessários para o funcionamento do projeto.

# 3. **Configurar o Ambiente**:

Antes de iniciares a aplicação, deves configurar as variáveis de ambiente. Cria um ficheiro `.env` na raiz do projeto e adiciona as seguintes variáveis:

```
DATABASE_URL=your_database_url
API_KEY=your_api_key
```

Certifica-te de substituir `your_database_url` e `your_api_key` pelos valores corretos.

# 4. **Executar a Aplicação**:

Para iniciar a aplicação, utiliza o seguinte comando:

```bash
npm start
```

Isto irá iniciar o servidor e a aplicação estará disponível em `http://localhost:3000`.

# 5. **Testar a Aplicação**:

Para executar os testes, utiliza o comando:

```bash
npm test
```

Isto irá correr todos os testes definidos no projeto e mostrar os resultados no terminal.

# 6. **Construir a Aplicação**:

Se precisares de construir a aplicação para produção, utiliza:

```bash
npm run build
```

Isto irá gerar os ficheiros otimizados na pasta `dist`.

# 7. **Documentação**:

Para mais informações sobre como utilizar e contribuir para este projeto, consulta a documentação disponível em [Documentação do Projeto](https://link-para-documentacao.com).
```

```bash
   pip install -r requirements.txt
   ```

```markdown
3. **Executa a Aplicação**:
```

```bash
   streamlit run rag_database_routing.py
   ```

4. **Obter Chave da API OpenAI**: Obtém uma chave da API OpenAI e define-a na aplicação. Isto é necessário para inicializar os modelos de linguagem utilizados na aplicação.

5. **Configurar Qdrant Cloud** 
- Visita [Qdrant Cloud](https://cloud.qdrant.io/)
- Cria uma conta ou faz login
- Cria um novo cluster
- Obtém as tuas credenciais:
   - Chave da API Qdrant: Encontrada na secção de Chaves da API
   - URL Qdrant: A URL do teu cluster (formato: https://xxx-xxx.aws.cloud.qdrant.io)

5. **Carregar Documentos**: Usa a secção de upload de documentos para adicionar documentos PDF à base de dados desejada.

6. **Fazer Perguntas**: Introduz as tuas perguntas na secção de consulta. A aplicação irá encaminhar a tua pergunta para a base de dados apropriada e fornecer uma resposta.

## Tecnologias Utilizadas

- **Langchain**: Para orquestração RAG, garantindo a recuperação e geração eficiente de informação.
- **Agno Agent**: Usado como agente de roteamento para determinar a base de dados mais relevante para uma dada consulta.
- **LangGraph Agent**: Actua como um mecanismo de fallback, utilizando DuckDuckGo para pesquisa na web quando necessário.
- **Streamlit**: Fornece uma interface amigável para upload de documentos e consultas.
- **Qdrant**: Usado para gerir as bases de dados, armazenando e recuperando embeddings de documentos de forma eficiente.

## Como Funciona?

**1. Roteamento de Consultas**
O sistema utiliza uma abordagem de roteamento em três etapas:
- Pesquisa de similaridade vetorial em todas as bases de dados
- Roteamento baseado em LLM para consultas ambíguas
- Fallback de pesquisa na web para tópicos desconhecidos

**2. Processamento de Documentos**
- Extração automática de texto de PDFs
- Divisão inteligente de texto com sobreposição
- Geração de embeddings vetoriais
- Armazenamento eficiente na base de dados

**3. Geração de Respostas**
- Recuperação consciente do contexto
- Combinação inteligente de documentos
- Respostas baseadas em confiança
- Integração de pesquisa na web

## Poupe horas todas as semanas com IA, sem complicações

O **Doutor AI** dá-lhe 1859 prompts de IA prontos a copiar, por indústria e em português simples - mais uma biblioteca técnica completa para quem quer ir mais longe. [Ver planos →](https://doutorai.pt/precos)

---
Conteúdo de Doutor AI (https://doutorai.pt). Ao citar, indique a fonte: https://doutorai.pt/apps/rag-database-routing
