Skip to main content

RAG

Sumário

ToDo

  • FAISS, Chroma ou pgvector. Diferenças, vantagens e desvantagens?
  • Faça um diagrama simples (fluxo de pergunta → busca → geração) pra visualizar o conceito de RAG melhor

Links




  • Conceito de RAG (Retrieval-Augmented Generation) ⭐
    • Como funciona (passo a passo)
      1. Pergunta do usuário
      2. Busca em fontes externas
      3. Montagem do prompt
        O LangChain junta: pergunta do usuário + contexto recuperado (trechos mais relevantes) Isso forma o “superprompt” que será enviado ao modelo via Ollama.
      4. Geração da resposta
        O modelo recebe a pergunta + contexto real e gera a resposta
    • Por que isso é útil no teu caso (Copilot)
    • Analogia
      • Sem RAG: o modelo é como um estagiário inteligente que já leu muita coisa, mas nunca viu teu projeto.
      • Com RAG: além do conhecimento geral, você dá a ele acesso a uma estante com toda a documentação e código atualizado. Antes de responder, ele folheia essa estante e usa os trechos certos na resposta.
  • Embeddings
  • Vector Store
    👉 Na prática do Copilot:
    • Você faz o ingest do código/docs → embeddings → salva no vector store.
    • Na hora da pergunta → gera embedding da query → busca top-k trechos semelhantes.
    • Esses trechos viram o contexto que o modelo usa para responder.

  • 🌐 Visão macro: do repositório → embeddings → vector store
    Imagine seu repositório GitHub (código + docs + histórico) como uma grande biblioteca. O processo de levar isso até o copilot via RAG tem três grandes fases:
    1. Coleta (Ingestão)
    2. Transformação em embeddings
      nomic-embed-text rodando no Ollama
      Resultado: você tem um mapa matemático do repositório, onde ideias semelhantes ficam próximas.
    3. Armazenamento em uma vector store
  • ⚙️ Depois, durante uma pergunta (query)
    1. Usuário pergunta: “Como funciona a autenticação?”
    2. A pergunta também vira embedding (mesmo modelo).
    3. Vector store busca os vetores mais próximos (top-k).
    4. Retorna os trechos relevantes (auth.ts, docs/auth.md).
    5. LangChain monta o prompt final: pergunta + contexto recuperado.
    6. Ollama responde com base na informação real do repositório.
  • 🔑 Macro-Resumo
    • Repositório → coletar arquivos e quebrar em pedaços.
    • Embeddings → cada pedaço vira vetor numérico.
    • Vector store → armazena vetores + metadados e permite busca por similaridade.
    • Pergunta → também vira embedding → busca no vector store → injeta contexto no modelo.