Repolode
philippgille

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. 1

    Instale a biblioteca com go get

    go get github.com/philippgille/chromem-go@latest
  2. 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