Repolode
philippgille

philippgille/chromem-go

Chroma風のインターフェースを備え、サードパーティ依存なしで組み込めるGo向けベクトルデータベース。ディスクへの永続化にも対応。

代替できる製品:Pinecone

スター
1,075
フォーク
78
未解決の Issue
22
最終コミット
2 か月前

これは何?

chromem-goは、SQLiteのようにGoプログラム内で動作するベクトルデータベースです。別途サーバーをインストールしたり、運用したりする必要はありません。ドキュメントとその埋め込みベクトルを保存でき、OpenAI、Ollama、Cohere、Mistralなどのプロバイダーを使って埋め込みベクトルを生成することも、事前に計算したものを受け取ることもできます。

数百万件のドキュメントを扱う用途ではなく、小〜中規模のワークロードでの検索拡張生成(RAG)やセマンティック検索などを想定しています。検索にはコサイン類似度による総当たり最近傍探索を使い、メタデータや、指定した文字列を含む/含まないドキュメント本文で絞り込めます。データはデフォルトでメモリ上に保存されますが、ファイルへの即時永続化や、バックアップ用のデータベース全体のエクスポート/インポートにも対応しています。

APIはChromaの主要メソッド(add、query、get、コレクションの作成と削除)に準拠しつつ、Goらしい代替手段も提供します。プロジェクトはベータ版で、v1.0.0より前に後方互換性のない変更が導入される可能性があります。

主な機能

  • 01外部依存やサーバーなしで、Goアプリケーションに組み込んで実行できます。
  • 02OpenAI、Azure OpenAI、Ollama、Cohere、Mistralなどのプロバイダーで埋め込みベクトルを生成でき、事前計算済みのベクトルも受け取れます。
  • 03コサイン類似度による総当たり検索に対応し、メタデータやドキュメント本文で絞り込めます。
  • 04メモリ上に保存でき、オプションでファイルへ即時永続化できます。
  • 05データベース全体をエクスポート/インポートでき、オプションで圧縮や暗号化も利用できます。

ユースケース

  • 別のベクトルデータベースをデプロイせずに、GoサービスへRAGベースの質問応答機能を追加する。
  • CLIやデスクトップツール内で、小〜中規模のドキュメント群をセマンティック検索する。
  • より大規模なデータベースを選定する前に、Goで埋め込みベクトルを使った機能を試作する。

クイックスタート

  1. 1

    go get でライブラリをインストールします

    go get github.com/philippgille/chromem-go@latest
  2. 2

    chromem-go をインポートしてインメモリ DB とコレクションを作成し、ドキュメントを追加してクエリを実行します(最小限の例を参照)

使う前に知っておきたいこと

  • プロジェクトはベータ版のため、v1.0.0 より前に破壊的変更が導入される可能性があります。
  • シンプルさと小〜中規模での利用を想定しており、数百万件のドキュメントには適していません。
  • デフォルトの埋め込み生成には OpenAI を使用するため、別のプロバイダーを設定しない限り API キーが必要です。

収録されている特集

トピック

よくある質問

chromem-go とは?
Chroma風のインターフェースを備え、サードパーティ依存なしで組み込めるGo向けベクトルデータベース。ディスクへの永続化にも対応。 chromem-goは、SQLiteのようにGoプログラム内で動作するベクトルデータベースです。別途サーバーをインストールしたり、運用したりする必要はありません。ドキュメントとその埋め込みベクトルを保存でき、OpenAI、Ollama、Cohere、Mistralなどのプロバイダーを使って埋め込みベクトルを生成することも、事前に計算したものを受け取ることもできます。
chromem-go は無料で使えますか?ライセンスは?
chromem-go は MPL-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
chromem-go は今もメンテナンスされていますか?
半年以内に更新あり。chromem-go の最終コミットは 2026年9月6日 です。
chromem-go は何に使えますか?
別のベクトルデータベースをデプロイせずに、GoサービスへRAGベースの質問応答機能を追加する。 CLIやデスクトップツール内で、小〜中規模のドキュメント群をセマンティック検索する。 より大規模なデータベースを選定する前に、Goで埋め込みベクトルを使った機能を試作する。
chromem-go のインストール方法は?
go get でライブラリをインストールします: go get github.com/philippgille/chromem-go@latest chromem-go をインポートしてインメモリ DB とコレクションを作成し、ドキュメントを追加してクエリを実行します(最小限の例を参照)
chromem-go はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/philippgille/chromem-go

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト