0Pricing
AI Agents · Aula

Construindo um RAG ingênuo com FAISS ou Chroma

Escreva 40 linhas de Python: gere o embedding da consulta, obtenha as K partes mais próximas, insira-as no prompt e pergunte ao LLM.

Construindo um RAG ingênuo com FAISS ou Chroma é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Um RAG de 40 linhas

Agora você tem todos os componentes. Vamos reuni-los em um RAG ingênuo funcional sobre um pequeno conjunto de documentos.

Step 1: Install

# pip install openai chromadb

Step 2: Sample Corpus

docs = [
    'Python is a high-level interpreted programming language created by Guido van Rossum in 1991.',
    'Pizza is a savory dish of Italian origin consisting of a round flat base of dough.',
    'The Eiffel Tower is a wrought-iron lattice tower in Paris, France, completed in 1889.',
    'NumPy is a Python library used for working with arrays and numerical computing.',
    'The Great Wall of China is a series of fortifications built across northern China.'
]
print(f"Loaded {len(docs)} documents")
for i, d in enumerate(docs):
    print(f"{i+1}. {d[:50]}...")

Step 3: Set Up Chroma

import chromadb
from openai import OpenAI

client = chromadb.Client()
collection = client.create_collection('demo')
openai_client = OpenAI()

Step 4: Embed and Store

embed_response = openai_client.embeddings.create(
    model='text-embedding-3-small',
    input=docs
)
vectors = [d.embedding for d in embed_response.data]

collection.add(
    ids=[f'd{i}' for i in range(len(docs))],
    embeddings=vectors,
    documents=docs
)

Step 5: Embed the Query

query = 'Tell me about Python programming'
query_vec = openai_client.embeddings.create(
    model='text-embedding-3-small',
    input=query
).data[0].embedding

Step 6: Retrieve Top-K

results = collection.query(
    query_embeddings=[query_vec],
    n_results=2
)
retrieved = results['documents'][0]
print(retrieved)
# ['Python is a high-level...', 'NumPy is a Python library...']

Step 7: Build the RAG Prompt

context = '\n'.join(f'- {chunk}' for chunk in retrieved)
prompt = f'''
Using only the context below, answer the question. If unknown, say so.

Context:
{context}

Question: {query}
'''

Step 8: Call the LLM

response = openai_client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    temperature=0,
)
print(response.choices[0].message.content)

Alternativa com FAISS

Se você quiser uma solução totalmente local, sem servidor de banco de dados, o FAISS é ainda mais simples:

import faiss
import numpy as np

index = faiss.IndexFlatIP(1536)  # inner product, normalised vectors
index.add(np.array(vectors).astype('float32'))

D, I = index.search(np.array([query_vec]).astype('float32'), k=2)
retrieved = [docs[i] for i in I[0]]

Limitações deste RAG ingênuo

  • Sem divisão em trechos — funciona apenas para documentos curtos
  • Sem reclassificação
  • Sem filtragem de metadados
  • Sem avaliação

Corrigiremos tudo isso nos cursos posteriores.

Custo por consulta

Para cada consulta realizada:

  • 1 chamada de incorporação (cerca de US$ 0,00002)
  • 1 conclusão de conversa com cerca de 500 tokens de contexto (cerca de US$ 0,0001)

Total: cerca de um centésimo de centavo por pergunta.

Publique e aprimore

Este RAG de 40 linhas já supera a maioria dos chatbots sem contexto em perguntas e respostas factuais sobre seus dados. Publique-o, observe como os usuários o quebram e, então, adicione técnicas avançadas onde elas forem mais necessárias.

Os K mais relevantes do RAG ingênuo

O que significa recuperar os K mais relevantes?

Recapitulação

O senhor construiu um RAG. Agora veremos bancos de dados vetoriais que ampliam isso para além de um único laptop.

Perguntas Frequentes

A aula “Construindo um RAG ingênuo com FAISS ou Chroma” é grátis?

Sim — o texto completo de “Construindo um RAG ingênuo com FAISS ou Chroma” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Construindo um RAG ingênuo com FAISS ou Chroma”?

Escreva 40 linhas de Python: gere o embedding da consulta, obtenha as K partes mais próximas, insira-as no prompt e pergunte ao LLM. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Construindo um RAG ingênuo com FAISS ou Chroma”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que o RAG resolve (limite de conhecimento, alucinações)
  2. Estratégias de divisão em partes (fixa, por frase, semântica)
  3. Indexando um conjunto de documentos
  4. Construindo um RAG ingênuo com FAISS ou Chroma
← Voltar para AI Agents