Epsilla é um banco de dados vetorial open source em C++ para busca por similaridade em embeddings, com filtros por metadados, busca híbrida e integração com sistemas de recuperação para LLMs.
philippgille/chromem-go
Banco de dados vetorial incorporável para Go, com uma interface semelhante à do Chroma, sem dependências de terceiros e com persistência opcional em disco.
Alternativa open source a:Pinecone
- Estrelas
- 1,075
- Forks
- 78
- Issues abertas
- 22
- Último commit
- há 2 meses
O que é?
chromem-go é um banco de dados vetorial que roda dentro de um programa Go, como o SQLite roda dentro de uma aplicação, sem precisar instalar ou manter um servidor separado. Ele armazena documentos com seus embeddings e pode gerá-los usando provedores como OpenAI, Ollama, Cohere ou Mistral, além de aceitar embeddings que você já calculou.
A biblioteca é voltada para geração aumentada por recuperação (RAG), busca semântica e recursos semelhantes em cargas de trabalho pequenas ou médias, não em conjuntos com milhões de documentos. A busca usa exaustivamente o método de vizinho mais próximo com similaridade de cosseno, e as consultas podem ser filtradas por metadados ou pelo texto dos documentos, incluindo ou não uma determinada string. Por padrão, os dados ficam na memória, com persistência imediata opcional em arquivos e exportação/importação de todo o banco para backups.
A API espelha os principais métodos do Chroma (add, query, get, create e delete collections) e também oferece alternativas mais idiomáticas para Go. O projeto está em beta e pode introduzir mudanças incompatíveis antes da versão 1.0.0.
Recursos principais
- 01Roda incorporado a uma aplicação Go, sem dependências externas nem servidor.
- 02Gera embeddings usando OpenAI, Azure OpenAI, Ollama, Cohere, Mistral e outros provedores, ou aceita vetores pré-calculados.
- 03Busca exaustiva por similaridade de cosseno, com filtros por metadados e conteúdo dos documentos.
- 04Armazenamento em memória, com persistência imediata opcional em arquivos.
- 05Exportação e importação de todo o banco de dados, com opção de compactação e criptografia.
Casos de uso
- Adicionar respostas a perguntas baseadas em RAG a um serviço Go sem implantar um banco de dados vetorial separado.
- Fazer busca semântica em um conjunto pequeno ou médio de documentos dentro de uma CLI ou ferramenta desktop.
- Prototipar recursos baseados em embeddings em Go antes de escolher um banco de dados maior.
Início rápido
- 1
Instale a biblioteca com go get
go get github.com/philippgille/chromem-go@latest - 2
Importe chromem-go e crie um DB em memória e uma coleção; em seguida, adicione documentos e faça consultas (veja o exemplo mínimo)
Antes de usar
- O projeto está em versão beta e pode introduzir alterações incompatíveis antes da v1.0.0.
- Foi desenvolvido para oferecer simplicidade e atender a projetos de pequeno a médio porte, não para milhões de documentos.
- A geração de embeddings padrão usa o OpenAI e requer uma chave de API, a menos que você configure outro provedor.
Em coleções
Tópicos
Perguntas frequentes
- O que é chromem-go?
- Banco de dados vetorial incorporável para Go, com uma interface semelhante à do Chroma, sem dependências de terceiros e com persistência opcional em disco. chromem-go é um banco de dados vetorial que roda dentro de um programa Go, como o SQLite roda dentro de uma aplicação, sem precisar instalar ou manter um servidor separado. Ele armazena documentos com seus embeddings e pode gerá-los usando provedores como OpenAI, Ollama, Cohere ou Mistral, além de aceitar embeddings que você já calculou.
- chromem-go é gratuito? Qual é a licença?
- chromem-go é open source sob a licença MPL-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- chromem-go ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de chromem-go foi em 6 de set. de 2026.
- Para que posso usar chromem-go?
- Adicionar respostas a perguntas baseadas em RAG a um serviço Go sem implantar um banco de dados vetorial separado. Fazer busca semântica em um conjunto pequeno ou médio de documentos dentro de uma CLI ou ferramenta desktop. Prototipar recursos baseados em embeddings em Go antes de escolher um banco de dados maior.
- Como instalar chromem-go?
- Instale a biblioteca com go get: go get github.com/philippgille/chromem-go@latest Importe chromem-go e crie um DB em memória e uma coleção; em seguida, adicione documentos e faça consultas (veja o exemplo mínimo)
- Onde consigo chromem-go?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/philippgille/chromem-go
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca Java que oferece a aplicações JVM uma API unificada para provedores de LLM e vector stores, com tool calling, agentes e RAG.
Biblioteca cliente Python para criar busca vetorial, RAG, cache semântico e memória para LLMs usando Redis.
Milvus é um banco de dados vetorial distribuído e open source para armazenar e pesquisar embeddings em grande escala, usado em buscas com IA e aplicações de RAG.
Um toolkit local de índices vetoriais e RAG que reduz o armazenamento em cerca de 97% ao recalcular embeddings sob demanda, permitindo pesquisar dados pessoais no laptop.
O Qdrant é um mecanismo de busca por similaridade vetorial e banco de dados vetorial baseado em Rust, com filtragem por payload, voltado a busca semântica e recomendações.