philippgille/chromem-go

Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence.

何を解決するか

chromem-go は Go アプリケーション向けの埋め込み型ベクトルデータベースです。開発者が、独立したデータベースサーバーを起動する必要なく、リトリーバル拡張生成(RAG)、セマンティック検索、推薦システムをアプリ内に直接統合できるようにします(SQLite がフル SQL サーバーの代わりに使われるのと同様です)。

動作方法

データベースはメモリ上での動作を基本とし、オプションでディスクへの永続化をサポートします。類似度検索にはコサイン類似度を使用し、すべての近傍検索(FLAT インデックス)を実行します。コレクションの管理やドキュメントのクエリには、Chroma に似たインターフェースを提供します。

埋め込み処理には、複数のホスト提供者(OpenAI、Azure OpenAI、GCP Vertex AI、Cohere、Mistral、Jina、mixedbread.ai)とローカル提供者(Ollama、llmman、LocalAI)をサポートしており、ユーザー自身の埋め込み関数や事前に計算された埋め込みを提供することも可能です。

対象ユーザー

AI 機能(RAG やテキスト検索など)に使用する軽量で依存関係のないベクトルストアが必要であり、クライアント-サーバーアーキテクチャではなく埋め込み方式を好む Go 開発者。

特徴

  • 依存関係ゼロ:サードパーティライブラリは一切不要。
  • 埋め込み可能:クライアント-サーバーモデルを必要とせず、Go バイナリに直接統合される。
  • マルチスレッド対応:Go のネイティブ並行処理を活用して、ドキュメントの追加やクエリを高速に処理。
  • 柔軟なストレージ:メモリ上での動作をサポートし、オプションで永続化と暗号化バックアップ(AES-GCM)も可能。
  • 広範な埋め込み対応:多数のローカルおよびクラウド埋め込みモデルとの即時統合を提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト