OdisseIA100%0← todas as jornadas
Programação

🤖 Build RAG Simples: Retrieval Augmented Generation Localmente

📌 Pra que serve

RAG é quando você alimenta o LLM com documentos relevantes antes de pedir uma resposta, melhorando precisão sem treinar modelo novo. Este tutorial monta um pipeline completo em ~50 linhas de Python, rodando tudo no seu PC ou Mac com Ollama — ideal pra chatbots corporativos, assistentes documentação ou processamento handbook interno.

🛠️ Passo a passo

1. Instale Ollama e baixe os modelos

## macOS/Linux/Windows: ollama.com
ollama pull nomic-embed-text # embedding 274MB
ollama pull qwen:3-4b-instruct # chat 2.5GB

2. Prepare seus documentos
Pegue um arquivo (PDF, .txt, handbook) e divida por parágrafo. No exemplo, um handbook vira 11 chunks (separados por linha em branco).

3. Transforme chunks em vetores

import requests
import numpy as np

def embed(text):
resp = requests.post('http://localhost:11434/api/embed',
json={"model": "nomic-embed-text", "input": text})
return np.array(resp.json()["embeddings"][0])

Embed todos os chunks

embeddings = [embed(chunk) for chunk in chunks]

4. Procure chunks relevantes por similaridade

def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

def retrieve(query, top_k=3):
q_vec = embed(query)
scores = [cosine_similarity(q_vec, e) for e in embeddings]
return [chunks[i] for i in np.argsort(scores)[-top_k:]]

5. Mande pro LLM com contexto

relevant_chunks = retrieve("Qual é a política de férias?")
prompt = f"Contexto:\n{' '.join(relevant_chunks)}\n\nPergunta: Qual é a política de férias?"

resp = requests.post('http://localhost:11434/api/generate',
json={"model": "qwen:3-4b-instruct", "prompt": prompt, "stream": False})
print(resp.json()["response"])

💡 Dica: Comece testando com um documento pequeno (handbook com <20 páginas). Se precisar maior: use chunking por caracteres fixos (256-5
12) em vez de parágrafo. Qwen 3 4B é leve; em laptop moderno roda em segundos.

🔗 Links e instalação

📌 Fonte: https://daily.dev/posts/how-to-build-rag-from-scratch-in-50-lines-of-python---full-tutorial-wgihgbiwo

Instale via pip install requests numpy e está pronto. Video completo tá linkado na fonte.

Espalhe esta jornada WhatsApp Telegram X LinkedIn
⚓ Fonte original💬 Ver e comentar no Discord

Essa jornada nasceu na comunidade — entra que é grátis e tem gente remando junto.

Entrar no Discord da OdisseIA