0Pricing
Learn AI with Python · Aula

Armazenamentos vetoriais: Chroma e FAISS

Criação e persistência de armazenamentos vetoriais, busca por similaridade, recuperação MMR e busca híbrida.

Armazenamentos vetoriais: Chroma e FAISS é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 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 Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

O que é um armazenamento vetorial?

Um armazenamento vetorial mantém suas partes vetorizadas e encontra as mais semelhantes a um vetor de consulta. Ele é o mecanismo de busca no centro do RAG. Duas opções populares são Chroma e FAISS.

pip install langchain-chroma faiss-cpu

Criando um armazenamento Chroma

Chroma.from_documents gera representações vetoriais das suas partes e cria um índice para elas em uma única chamada. Passe os documentos e um objeto de vetorização. O Chroma retorna um armazenamento que você pode pesquisar imediatamente.

from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
db = Chroma.from_documents(chunks, embeddings)

Persistindo o Chroma no disco

Passe persist_directory para que o índice seja salvo no disco e sobreviva às reinicializações. Recarregue-o depois construindo o Chroma com o mesmo diretório e as mesmas representações vetoriais, evitando o custo de gerar as representações novamente.

db = Chroma.from_documents(
    chunks, embeddings,
    persist_directory="./chroma_db"
)

# Reload later
db = Chroma(persist_directory="./chroma_db", embedding_function=embeddings)

Busca por similaridade

Faça uma consulta com similarity_search(query, k=4). Ele gera a representação vetorial da consulta, encontra as k partes mais próximas e as retorna como documentos. k controla quantos trechos você recupera.

results = db.similarity_search("How do I reset my password?", k=4)
for doc in results:
    print(doc.page_content[:80])

Pontuações da busca

Use similarity_search_with_score para também obter uma pontuação de distância para cada resultado. Uma distância menor significa maior similaridade. As pontuações ajudam a filtrar correspondências fracas antes de enviá-las ao LLM.

pairs = db.similarity_search_with_score("password reset", k=4)
for doc, score in pairs:
    print(round(score, 3), doc.page_content[:60])

Apresentando FAISS

FAISS (Pesquisa de Similaridade de IA do Facebook) é uma biblioteca de alto desempenho para busca vetorial. Ela é extremamente rápida e eficiente em termos de memória, sendo ideal para índices locais grandes sem um servidor separado.

Criando um armazenamento FAISS

A API é semelhante à do Chroma: FAISS.from_documents cria o índice. O FAISS mantém o índice na memória, por isso é excelente para buscas intensivas em leitura dentro do processo.

from langchain_community.vectorstores import FAISS

db = FAISS.from_documents(chunks, embeddings)
results = db.similarity_search("refund policy", k=3)

Salvando e carregando o FAISS

Persista um índice FAISS com save_local e recarregue-o com load_local. O recarregamento exige allow_dangerous_deserialization=True porque o índice usa pickle.

db.save_local("faiss_index")

db = FAISS.load_local(
    "faiss_index", embeddings,
    allow_dangerous_deserialization=True
)

Relevância versus diversidade

Uma busca simples por similaridade pode retornar quatro partes quase idênticas. Às vezes, você quer resultados diversos que cubram diferentes aspectos da resposta. É aí que o MMR ajuda.

Recuperação com MMR

Relevância Marginal Máxima (MMR) equilibra relevância e diversidade, escolhendo partes relevantes, mas não redundantes. Use search_type="mmr" por meio da interface do recuperador.

retriever = db.as_retriever(
    search_type="mmr",
    search_kwargs={"k": 4, "fetch_k": 20}
)
docs = retriever.invoke("password reset")

Escolhendo entre Chroma e FAISS

Chroma é fácil de usar, persistente e adequado para protótipos e aplicações pequenas. FAISS é mais rápido em grande escala e ideal para buscas na memória. Ambos disponibilizam similarity_search e as_retriever, portanto é fácil alternar entre eles.

Verificação rápida

Teste seu conhecimento sobre armazenamentos vetoriais.

Recapitulação: Chroma e FAISS

Você criou armazenamentos vetoriais com Chroma.from_documents (usando persist_directory) e FAISS.from_documents, fez buscas com similarity_search(query, k=4) e salvou e carregou ambos. Você usou as_retriever com MMR para obter resultados diversos e aprendeu quando escolher cada armazenamento.

Perguntas Frequentes

A aula “Armazenamentos vetoriais: Chroma e FAISS” é grátis?

Sim — o texto completo de “Armazenamentos vetoriais: Chroma e FAISS” é 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 Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Armazenamentos vetoriais: Chroma e FAISS”?

Criação e persistência de armazenamentos vetoriais, busca por similaridade, recuperação MMR e busca híbrida. Você pratica Learn AI with Python 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 Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python 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 3 de 4.

Quanto tempo leva a aula “Armazenamentos vetoriais: Chroma e FAISS”?

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 Learn AI with Python?

Sim. Cada aula de Learn AI with Python 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. Arquitetura do LangChain e LCEL
  2. Carregamento, divisão e embedding de documentos
  3. Armazenamentos vetoriais: Chroma e FAISS
  4. Construção de um sistema de perguntas e respostas com RAG de ponta a ponta
← Voltar para Learn AI with Python