# Aplicação RAG com Pesquisa Híbrida

> Uma poderosa aplicação de perguntas e respostas sobre documentos que combina Pesquisa Híbrida (RAG) e as capacidades avançadas de linguagem do Claude.

- Fonte: https://doutorai.pt/apps/hybrid-search-rag
- Categoria: RAG e Conhecimento
- Dificuldade: Médio
- Modelos: OpenAI, Claude
- Frameworks: -
- Corre local?: Precisa de APIs cloud
- Chaves necessárias: ANTHROPIC_API_KEY, COHERE_API_KEY, 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

# 👀 RAG App com Pesquisa Híbrida

Uma poderosa aplicação de perguntas e respostas sobre documentos que aproveita a Pesquisa Híbrida (RAG) e as avançadas capacidades linguísticas do Claude para fornecer respostas abrangentes. Construída com RAGLite para um processamento e recuperação robustos de documentos, e Streamlit para uma interface de chat intuitiva, este sistema combina de forma fluida o conhecimento específico de documentos com a inteligência geral do Claude para oferecer respostas precisas e contextuais.

## Funcionalidades

- **Resposta a Perguntas com Pesquisa Híbrida**
    - Respostas baseadas em RAG para consultas específicas de documentos
    - Alternativa ao Claude para perguntas de conhecimento geral

- **Processamento de Documentos**:
  - Upload e processamento de documentos PDF
  - Divisão automática de texto em partes e incorporação
  - Pesquisa híbrida combinando correspondência semântica e por palavras-chave
  - Reclassificação para melhor seleção de contexto

- **Integração Multi-Modelo**:
  - Claude para geração de texto - testado com Claude 3 Opus 
  - OpenAI para incorporações - testado com text-embedding-3-large
  - Cohere para reclassificação - testado com Cohere 3.5 reranker

## Pré-requisitos

Vais precisar das seguintes chaves de API e configuração de base de dados:

1. **Base de Dados**: Cria uma base de dados PostgreSQL gratuita em [Neon](https://neon.tech):
   - Regista-te/Inicia sessão em Neon
   - Cria um novo projeto
   - Copia a string de conexão (parece: `postgresql://user:pass@ep-xyz.region.aws.neon.tech/dbname`)

2. **Chaves de API**:
   - [Chave de API OpenAI](https://platform.openai.com/api-keys) para incorporações
   - [Chave de API Anthropic](https://console.anthropic.com/settings/keys) para Claude
   - [Chave de API Cohere](https://dashboard.cohere.com/api-keys) para reclassificação

## Como Começar?

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

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

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

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

```markdown
3. **Instalar o Modelo spaCy**:
```

```bash
   pip install https://github.com/explosion/spacy-models/releases/download/xx_sent_ud_sm-3.7.0/xx_sent_ud_sm-3.7.0-py3-none-any.whl
   ```

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

```bash
   streamlit run main.py
   ```

## Utilização

1. Inicia a aplicação
2. Introduz as tuas chaves de API na barra lateral:
   - Chave de API da OpenAI
   - Chave de API da Anthropic
   - Chave de API da Cohere
   - URL da base de dados (opcional, por defeito é SQLite)
3. Clica em "Guardar Configuração"
4. Carrega documentos PDF
5. Começa a fazer perguntas!
   - Perguntas específicas sobre documentos utilizarão RAG
   - Perguntas gerais utilizarão Claude diretamente

## Opções de Base de Dados

A aplicação suporta múltiplos backends de base de dados:

- **PostgreSQL** (Recomendado):
  - Cria uma base de dados PostgreSQL sem servidor gratuita em [Neon](https://neon.tech)
  - Obtém provisionamento instantâneo e capacidade de escalonamento para zero
  - Formato da string de conexão: `postgresql://user:pass@ep-xyz.region.aws.neon.tech/dbname`

- **MySQL**:

```
  mysql://user:pass@host:port/db
  ```

```markdown
# SQLite (Desenvolvimento local)

## Instalação

Para instalar o SQLite, segue os seguintes passos:

1. Faz o download da versão mais recente do SQLite a partir do [site oficial](https://www.sqlite.org/download.html).
2. Extrai o ficheiro para um diretório da tua escolha.
3. Adiciona o caminho do diretório onde extraíste o SQLite à variável de ambiente `PATH`.

## Uso

Para iniciar o SQLite, abre o terminal e executa o seguinte comando:

```bash
sqlite3
```

Isto abrirá o shell do SQLite, onde podes começar a executar comandos SQL.

## Criar uma base de dados

Para criar uma nova base de dados, utiliza o seguinte comando:

```sql
sqlite3 nome_da_base_de_dados.db
```

Isto criará um novo ficheiro chamado `nome_da_base_de_dados.db`.

## Comandos básicos

Aqui estão alguns comandos básicos que podes usar no SQLite:

- **Criar uma tabela**:

```sql
CREATE TABLE nome_da_tabela (
    id INTEGER PRIMARY KEY,
    nome TEXT NOT NULL,
    idade INTEGER
);
```

- **Inserir dados**:

```sql
INSERT INTO nome_da_tabela (nome, idade) VALUES ('João', 30);
```

- **Consultar dados**:

```sql
SELECT * FROM nome_da_tabela;
```

- **Atualizar dados**:

```sql
UPDATE nome_da_tabela SET idade = 31 WHERE nome = 'João';
```

- **Eliminar dados**:

```sql
DELETE FROM nome_da_tabela WHERE nome = 'João';
```

## Exportar e importar dados

Para exportar dados para um ficheiro CSV, utiliza o seguinte comando:

```sql
.mode csv
.headers on
.output dados.csv
SELECT * FROM nome_da_tabela;
.output stdout
```

Para importar dados de um ficheiro CSV, utiliza:

```sql
.mode csv
.import dados.csv nome_da_tabela
```

## Conclusão

O SQLite é uma ferramenta poderosa para desenvolvimento local. Com os comandos acima, já deves estar preparado para começar a trabalhar com bases de dados SQLite.
```

```
  sqlite:///path/to/db.sqlite
  ```

## Contribuição

As contribuições são bem-vindas! Sente-te à vontade para submeter um Pull Request.

## 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/hybrid-search-rag
