# Agente de Raciocínio RAG Local Qwen 3

> - Qwen3 (1.7b, 8b) - os mais recentes modelos de linguagem da Alibaba - Gemma3 (1b, 4b) - modelos de linguagem eficientes do Google com capacidades multimodais - DeepSeek (1.5b) - opção alternativa de modelo - 📚 Sistema RAG abrangente:

- Fonte: https://doutorai.pt/apps/qwen-local-rag
- Categoria: RAG e Conhecimento
- Dificuldade: Médio
- Modelos: Llama, DeepSeek, Qwen
- Frameworks: Agno, LangChain, Ollama (local)
- Corre local?: Sim (Ollama)
- Chaves necessárias: Nenhuma
- Licença: Apache-2.0
- Site: Doutor AI (https://doutorai.pt) - ferramentas de IA para pequenos negócios em português

## Tutorial completo

# 🐋 Qwen 3 Local RAG Reasoning Agent

Esta aplicação RAG demonstra como construir um poderoso sistema de Geração Aumentada por Recuperação (RAG) utilizando os modelos Qwen 3 e Gemma 3 a correr localmente via Ollama. Combina processamento de documentos, pesquisa vetorial e capacidades de pesquisa na web para fornecer respostas precisas e contextualizadas às consultas dos utilizadores. Construído com Agno v2.0.

## Funcionalidades

- **🧠 Múltiplas Opções de LLM Locais**:

  - Qwen3 (1.7b, 8b) - Os mais recentes modelos de linguagem da Alibaba
  - Gemma3 (1b, 4b) - Modelos de linguagem eficientes do Google com capacidades multimodais
  - DeepSeek (1.5b) - Opção de modelo alternativa
- **📚 Sistema RAG Abrangente**:

  - Carregar e processar documentos PDF
  - Extrair conteúdo de URLs da web
  - Divisão inteligente e incorporação
  - Pesquisa de similaridade com limiar ajustável
- **🌐 Integração de Pesquisa na Web**:

  - Alternar para pesquisa na web quando o conhecimento do documento é insuficiente
  - Filtragem de domínio configurável
  - Atribuição de fontes nas respostas
- **🔄 Modos de Operação Flexíveis**:

  - Alternar entre RAG e interação direta com LLM
  - Forçar pesquisa na web quando necessário
  - Ajustar limiares de similaridade para recuperação de documentos
- **💾 Integração com Base de Dados Vetorial**:

  - Base de dados vetorial Qdrant para pesquisa de similaridade eficiente
  - Armazenamento persistente de incorporações de documentos
- **🔧 Framework Agno v2.0**:

  - Utiliza o sistema de incorporação de conhecimento Agno v2.0
  - Modo de depuração para uma experiência de desenvolvimento melhorada
  - Arquitetura de agente moderna com integração de ferramentas melhorada

## Como Começar

### Pré-requisitos

- [Ollama](https://ollama.ai/) instalado localmente
- Python 3.8+
- Qdrant a correr localmente (via Docker) para armazenamento vetorial
- Chave API Exa (opcional, para capacidade de pesquisa na web)
- Agno v2.0 instalado

### Instalação

1. Clona o repositório do GitHub

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

```markdown
# 2. Instala as dependências necessárias:

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

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

```markdown
# 3. Puxa os modelos necessários usando Ollama:

```bash
ollama pull <modelo>
```
```

```bash
ollama pull qwen3:1.7b # Or any other model you want to use
ollama pull snowflake-arctic-embed # For embeddings
```

# 4. Executar o Qdrant localmente através do Docker:

Para executar o Qdrant localmente, precisas de ter o Docker instalado na tua máquina. Segue os passos abaixo:

## Passo 1: Baixar a imagem do Qdrant

Executa o seguinte comando para baixar a imagem mais recente do Qdrant:

```bash
docker pull qdrant/qdrant
```

## Passo 2: Executar o Qdrant

Depois de teres a imagem, podes executar o Qdrant com o seguinte comando:

```bash
docker run -p 6333:6333 qdrant/qdrant
```

Isto irá iniciar o Qdrant e expor a porta 6333, que é a porta padrão para interagir com o servidor.

## Passo 3: Verificar se o Qdrant está a funcionar

Para verificar se o Qdrant está a funcionar corretamente, podes enviar uma requisição HTTP para a API. Usa o seguinte comando `curl`:

```bash
curl http://localhost:6333/health
```

Se tudo estiver a funcionar, deves receber uma resposta semelhante a esta:

```json
{"status":"ok"}
```

Agora já tens o Qdrant a funcionar localmente através do Docker!

```bash
docker pull qdrant/qdrant

docker run -p 6333:6333 -p 6334:6334 \
    -v "$(pwd)/qdrant_storage:/qdrant/storage:z" \
    qdrant/qdrant
```

```markdown
5. Obtém as tuas chaves de API (opcional):

   - Chave da Exa API (para capacidade de fallback de pesquisa na web)
   
6. Executa a aplicação:
```

```bash
streamlit run qwen_local_rag_agent.py
```

## Como Funciona

1. **Processamento de Documentos**:

   - Ficheiros PDF são processados utilizando PyPDFLoader
   - Conteúdo da web é extraído usando WebBaseLoader
   - Documentos são divididos em partes com RecursiveCharacterTextSplitter
   - Metadados são adicionados para rastrear tipos de origem e timestamps

2. **Base de Dados de Vetores**:

   - Partes de documentos são incorporadas utilizando os modelos de incorporação da Ollama através do OllamaEmbedder da Agno
   - As incorporações são armazenadas na base de dados de vetores Qdrant
   - A pesquisa de similaridade recupera documentos relevantes com base na consulta, com um limiar configurável

3. **Processamento de Consultas**:

   - As consultas dos utilizadores são analisadas para determinar a melhor fonte de informação
   - O sistema verifica a relevância dos documentos utilizando o limiar de similaridade
   - Recorre à pesquisa na web se não forem encontrados documentos relevantes (quando ativado)
   - Suporta modo de pesquisa na web forçada através de um interruptor

4. **Geração de Respostas**:

   - O LLM local (Qwen/Gemma/DeepSeek) gera respostas com base no contexto recuperado
   - Os agentes da Agno utilizam o modo de depuração para uma visibilidade melhor nas chamadas de ferramentas
   - As fontes são citadas e exibidas ao utilizador
   - Os resultados da pesquisa na web são claramente indicados quando utilizados
   - O processo de raciocínio é exibido para modelos de raciocínio

## Opções de Configuração

- **Seleção de Modelo**: Escolhe entre diferentes modelos Qwen, Gemma e DeepSeek
- **Modo RAG**: Alterna entre interação com LLM direta e habilitada para RAG
- **Ajuste de Pesquisa**: Ajusta o limiar de similaridade (0.0-1.0) para recuperação de documentos
- **Pesquisa na Web**: Ativa/desativa a pesquisa na web como fallback e configura o filtro de domínio
- **Modo de Depuração**: Os agentes utilizam o modo de depuração por defeito para melhor visibilidade nas chamadas de ferramentas e no fluxo de execução

## Casos de Uso

- **Q&A de Documentos**: Faz perguntas sobre os teus documentos carregados
- **Assistente de Pesquisa**: Combina o conhecimento dos documentos com a pesquisa na web
- **Privacidade Local**: Processa documentos sensíveis sem enviar dados para APIs externas
- **Operação Offline**: Executa capacidades avançadas de IA com acesso limitado ou sem internet

## Requisitos

Consulta `requirements.txt` para a lista completa de dependências.

## 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/qwen-local-rag
