Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

ストレージバックエンド

PRX-Memoryはメモリとそのベクトル埋め込みを永続化するために複数のストレージバックエンドをサポートします。prx-memory-storageクレートはすべてのバックエンドが実装する統一インターフェースを提供します。

利用可能なバックエンド

バックエンド設定値ベクトルサポート永続化最適用途
JSONjsonエントリに埋め込みファイルベース開発、小規模データセット
SQLitesqlite組み込みベクトル列ファイルベースプロダクション、中規模データセット
LanceDBlancedbネイティブベクトルインデックスディレクトリベース大規模データセット、高速ANN検索

デフォルトバックエンド

デフォルトバックエンドはJSON(PRX_MEMORY_BACKEND=json)で、追加のセットアップは不要です。プロダクションデプロイにはSQLiteを推奨します。

JSONバックエンド

最もシンプルなバックエンドで、すべてのメモリを単一のJSONファイルに保存します。開発、テスト、小規模メモリセット(10,000件未満)に最適です。

bash
PRX_MEMORY_BACKEND=json
PRX_MEMORY_DB=./data/memory-db.json

利点:

  • ゼロセットアップ -- ファイルパスを指定するだけ。
  • 人間が読める -- テキストエディタで検査・編集可能。
  • 移植性 -- ファイルをコピーするだけでメモリデータベース全体を移動できる。

制限:

  • 起動時にファイル全体をメモリに読み込む。
  • 書き込み操作がファイル全体を書き直す。
  • インデックス付きベクトル検索なし -- 類似度のためにブルートフォーススキャン。

SQLiteバックエンド

SQLiteはACIDトランザクション、インデックス付きクエリ、効率的な類似度検索のための組み込みベクトル列サポートを提供します。

bash
PRX_MEMORY_BACKEND=sqlite
PRX_MEMORY_DB=./data/memory.db

詳細な設定についてはSQLiteストレージを参照してください。

LanceDBバックエンド(オプション)

LanceDBはカラムナストレージを持つネイティブな近似最近傍(ANN)ベクトル検索を提供します。lancedb-backendフィーチャーフラグで有効にします:

bash
cargo build --release -p prx-memory-mcp --bin prx-memoryd --features lancedb-backend
bash
PRX_MEMORY_BACKEND=lancedb
PRX_MEMORY_DB=./data/lancedb

フィーチャーフラグが必要

LanceDBサポートはデフォルトビルドに含まれていません。コンパイル時にlancedb-backendフィーチャーフラグを有効にする必要があります。

バックエンドの選び方

シナリオ推奨バックエンド
ローカル開発JSON
100k件未満のプロダクションSQLite
100k件以上のプロダクションLanceDB
人間が読めるストレージが必要JSON
ACIDトランザクションが必要SQLite
高速ANNベクトル検索が必要LanceDB

ストレージ操作

PRX-Memoryはストレージメンテナンスのためのツールを提供します:

ツール説明
memory_exportすべてのメモリを移植可能なフォーマットでエクスポート
memory_importエクスポートからメモリをインポート
memory_migrateストレージバックエンド間を移行
memory_compactストレージを最適化してスペースを回収
memory_reembed新しいモデルですべてのメモリを再埋め込み

次のステップ

Released under the Apache-2.0 License.