Home
Login

Banco de dados de vetores nativo de IA de código aberto, projetado para soluções de geração aumentada de recuperação (RAG) para aplicações de grandes modelos de linguagem

Apache-2.0Rust 20.6kchroma-core Last Updated: 2025-06-21

Chroma - Banco de Dados de Vetores Nativo para IA de Código Aberto

Visão Geral do Projeto

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

Principais Características

1. Banco de Dados de Vetores Completo

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.

2. Suporte Multilíngue

  • Python: Linguagem de desenvolvimento principal
  • JavaScript: Suporte para frontend e Node.js
  • Rust: Componentes principais de alto desempenho

3. Suporte Flexível para Modelos de Embedding

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.

4. Múltiplos Modos de Implantação

Suporta vários modos de implantação, incluindo modo de memória, modo de armazenamento de arquivos e modo de servidor.

5. Altamente Escalável

Suporta diferentes backends de armazenamento, como DuckDB para uso local e ClickHouse para escalar aplicações grandes.

Principais Casos de Uso

1. Sistemas de Geração Aumentada por Recuperação (RAG)

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.

2. Pesquisa Semântica

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.

3. Pesquisa de Similaridade

Através do cálculo da distância no espaço vetorial, encontre rapidamente o conteúdo mais semelhante à consulta.

Arquitetura Técnica

Backend de Armazenamento

  • DuckDB: Implantação local leve
  • ClickHouse: Implantação distribuída em larga escala
  • Armazenamento em Memória: Desenvolvimento rápido de protótipos

Processamento de Embedding

  • Geração automática de embeddings
  • Suporte para funções de embedding personalizadas
  • Capacidade de processamento em lote

Gerenciamento de Metadados

  • Ricas funcionalidades de filtragem de metadados
  • Suporte para consultas estruturadas
  • Capacidade de pesquisa híbrida

Instalação e Uso

Instalação com Python

pip install chromadb

Exemplo de Uso Básico

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
)

Integração com o Ecossistema

Integração com LangChain

Chroma já está profundamente integrado com LangChain e pode ser usado como um componente de armazenamento de vetores.

Integração com OpenAI

Chroma já está integrado com as funções de embedding da OpenAI, suportando armazenamento e filtragem de metadados arbitrários.

Vantagens do Projeto

  1. Pronto para Uso: Bateria inclusa, todas as funcionalidades pré-integradas
  2. Fácil de Usar: Design de API conciso, rápido para começar
  3. Alto Desempenho: Algoritmos de pesquisa de vetores otimizados
  4. Escalável: Expansão suave do protótipo para o ambiente de produção
  5. Código Aberto: Suporte ativo da comunidade e desenvolvimento contínuo

Resumo

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.