# RAG Assistente Conhecimento

> Criar assistente RAG com conhecimento da empresa.

- Skill: `hermes-brasil/rag-assistente-conhecimento` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hermes-brasil/rag-assistente-conhecimento`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hermes-brasil/rag-assistente-conhecimento/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Hermes-brasil (https://skillmd.com/u/hermes-brasil)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/hermes-brasil/rag-assistente-conhecimento

---


# RAG — Assistente de Conhecimento (Retrieval-Augmented Generation)

> **O que é:** técnica que permite IA acessar conhecimento EXTERNO (documentos,
> FAQ, banco de dados da empresa) para dar respostas precisas e baseadas nos
> dados do cliente — em vez de respostas genéricas do modelo.

## Conceitos-chave

```
📋 PIPELINE DE RAG:
├── 1. INGESTÃO: carregar documentos
├── 2. INDEXAÇÃO: dividir em chunks + gerar embeddings
├── 3. RETRIEVAL: buscar chunks relevantes à pergunta
└── 4. GERAÇÃO: modelo responde usando o contexto recuperado
```

### Técnicas avançadas (aplicar conforme necessidade)
```
├── Query Translation: melhorar a pergunta antes de buscar
│   ├── Multi-Query (várias versões da pergunta)
│   ├── RAG Fusion (combina resultados)
│   ├── Decomposition (quebra pergunta complexa)
│   ├── Step Back (pergunta mais geral)
│   └── HyDE (gera resposta hipotética para buscar)
├── Routing: direcionar pergunta ao modelo/fluxo certo
├── Indexing avançado: RAPTOR, ColBERT
├── CRAG (Conditional RAG): corrigir retrieval com base no grau de confiança
└── Adaptive RAG: decide quando buscar mais dados ou responder direto
```

## Embeddings
- Convertem texto em vetores numéricos (capturam significado)
- Similaridade de COSSENO (padrão), Euclidiana, Dot Product
- Modelos: OpenAI, Gemini, Cohere, open source (sentence-transformers)
- **pt-BR:** `paraphrase-multilingual-MiniLM-L12-v2` (entende português)
- **CRÍTICO:** usar o MESMO modelo para documentos e perguntas

```python
from sentence_transformers import SentenceTransformer
modelo = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2")
doc = modelo.encode("Horário de funcionamento da clínica")
pergunta = modelo.encode("A que horas abre?")
```

## Chunking — lição importante
NÃO dividir por contagem de palavras (mistura assuntos e recupera seção errada).
Dividir por **SEÇÕES temáticas** (títulos `##`), cada seção vira um chunk com
o título prefixado como contexto: `f"{titulo}: {corpo}"`. Isso mantém cada
chunk coerente e a busca fica muito mais precisa.

```python
def chunking_por_secoes(texto):
    """Divide texto em seções (##) em vez de cortar por palavras."""
    secoes = []
    atual = {"titulo": "geral", "corpo": []}
    for linha in texto.splitlines():
        if linha.startswith("## "):
            if atual["corpo"]:
                secoes.append(atual)
            atual = {"titulo": linha[3:].strip(), "corpo": []}
        elif linha.strip():
            atual["corpo"].append(linha.strip())
    if atual["corpo"]:
        secoes.append(atual)
    return [f"{s['titulo']}: {' '.join(s['corpo'])}" for s in secoes if s["corpo"]]
```

## Busca semântica (retrieval)
```python
import numpy as np

def buscar(pergunta, chunk_embeddings, textos, top_k=3):
    q = modelo.encode(pergunta)
    scores = [np.dot(q, c) / (np.linalg.norm(q) * np.linalg.norm(c)) for c in chunk_embeddings]
    melhores = np.argsort(scores)[-top_k:][::-1]
    return [(textos[i], scores[i]) for i in melhores]
```

## Fluxo de trabalho (para cliente real)

```
⚙️ IMPLEMENTAÇÃO:
├── 1. Levantar os documentos do cliente (FAQ, políticas, catálogo)
├── 2. Estruturar o conteúdo (seções claras)
├── 3. Rodar chunking + embeddings
├── 4. Testar busca com perguntas reais
├── 5. Conectar geração (API do modelo)
├── 6. Integrar ao canal (WhatsApp/site)
├── 7. Testar respostas e ajustar
├── 8. Definir limite (quando passar para humano)
└── 9. Manutenção e atualização do conhecimento
```

## Venda como serviço (preços de referência)
```
💰 PRECIFICAÇÃO:
├── Chatbot básico: R$ 1.000-3.000
├── Assistente RAG completo: R$ 3.000-8.000
├── Assistente avançado (multi-função): R$ 8.000-15.000
├── Manutenção mensal: R$ 500-2.000
└── Licença/uso recorrente: R$ 300-1.500/mês
```

## Pitfalls
- Chunking por seção, não por palavra (crítico para qualidade)
- Embeddings locais = busca sem custo; usar modelo multilingue para pt-BR
- Testar sempre com perguntas reais do cliente
- Definir limite claro de quando passar para atendimento humano
- Proteger dados sensíveis (LGPD) — não vazar informações confidenciais
- Atualizar o conhecimento periodicamente
- Transparência: avisar que é assistente de IA

## Quando usar
- Cliente pede chatbot/assistente inteligente
- Criar produto/ebook de RAG (tema com demanda)
- Quer diferenciar de chatbot genérico

