Chroma é um banco de dados de código aberto para aplicações de IA, projetado especificamente para armazenar e recuperar embeddings de vetores. É um banco de dados de embeddings (também conhecido como banco de dados de vetores) que pode encontrar dados por meio de pesquisa de vizinhos mais próximos, em vez de pesquisa de substring em bancos de dados tradicionais.
Endereço do GitHub: https://github.com/chroma-core/chroma
Chroma integra várias funcionalidades, incluindo embeddings, pesquisa de vetores, armazenamento de documentos, pesquisa de texto completo, filtragem de metadados e recuperação multimodal, tudo integrado em uma única plataforma.
Por padrão, Chroma usa Sentence Transformers para embeddings, mas também pode usar embeddings da OpenAI, Cohere (multilíngue) e outros modelos de embedding.
Suporta vários modos de implantação, incluindo modo de memória, modo de armazenamento de arquivos e modo de servidor.
Suporta diferentes backends de armazenamento, como DuckDB para uso local e ClickHouse para escalar aplicações grandes.
Em sistemas RAG, os documentos são primeiro incorporados e armazenados em uma coleção ChromaDB, e então consultas são executadas através do ChromaDB para encontrar conteúdo semanticamente relevante.
Na pesquisa semântica, ChromaDB é capaz de encontrar pontos de dados semelhantes entre si com base em embeddings de vetores, o que é muito útil para identificar documentos, imagens ou outros tipos de dados comparáveis, analisando o conteúdo ou o significado.
Através do cálculo da distância no espaço vetorial, encontre rapidamente o conteúdo mais semelhante à consulta.
pip install chromadb
import chromadb
client = chromadb.Client()
collection = client.create_collection("my_collection")
collection.add(
documents=["This is document 1", "This is document 2"],
metadatas=[{"source": "doc1"}, {"source": "doc2"}],
ids=["id1", "id2"]
)
results = collection.query(
query_texts=["search query"],
n_results=2
)
Chroma já está profundamente integrado com LangChain e pode ser usado como um componente de armazenamento de vetores.
Chroma já está integrado com as funções de embedding da OpenAI, suportando armazenamento e filtragem de metadados arbitrários.
Chroma é um componente de infraestrutura indispensável no desenvolvimento moderno de aplicações de IA, especialmente adequado para cenários de aplicação que exigem pesquisa semântica, sistemas RAG e correspondência de similaridade de vetores. Sua API concisa, funcionalidades poderosas e boa integração com o ecossistema o tornam a solução de banco de dados de vetores preferida para desenvolvedores.