mcpField
G
grepai-storage-gob

grepai-storage-gob

github.com/yoanbernabeu開発20675 回インストール38 週間前に更新
リポジトリ

grepai-storage-gob について

GrepAI のローカルファイルストレージとして GOB を使うためのガイドです。個人開発や中小規模のコードベース向けで、外部サービス不要ですが、大規模な索引や同時共有には適しません。

主な機能

  1. 01埋め込みとメタデータを単一ファイルに保存
  2. 02grepai コマンドで索引を作成・確認
  3. 03索引ファイルのバックアップや移行
  4. 04メモリ使用量と拡張上の制限を説明

活用シーン

  1. 01ローカル開発プロジェクトのコード索引
  2. 02.grepai 索引のバックアップや再作成
  3. 03PostgreSQL または Qdrant への移行判断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yoanbernabeu/grepai-skills --skill grepai-storage-gob

インストール後、Claude Code で/grepai-storage-gobを入力して読み込まれたか確認します。

詳細

GrepAI の GOB ストレージ

このスキルでは、GrepAI のストレージバックエンドとして GOB(Go Binary)を使用する方法を説明します。GOB はデフォルトであり、最もシンプルな選択肢です。

このスキルを使う場面

  • 1 人の開発者で進めるプロジェクト
  • 小規模から中規模のコードベース
  • 外部依存関係のないシンプルなセットアップ
  • ローカル開発環境

GOB ストレージとは

GOB は Go ネイティブのバイナリーシリアライズ形式です。GrepAI は次のデータの保存に使用します。

  • ベクトル埋め込み
  • ファイルのメタデータ
  • チャンク情報

すべて単一のローカルファイルに保存されます。

メリット

メリット説明
🚀 シンプル外部サービスは不要です
⚡ セットアップが高速すぐに動作します
📁 ポータブル単一ファイルで、簡単にバックアップできます
💰 無料インフラストラクチャの費用はかかりません
🔒 プライベートデータはローカルに保存されます

制限事項

制限事項説明
📏 スケーラビリティ非常に大きなコードベースには適していません
👤 シングルユーザー同時アクセスには対応していません
🔄 共有不可マシン間でインデックスを共有できません
💾 メモリ検索時にメモリへ読み込まれます

設定

デフォルト設定

GOB はデフォルトのバックエンドです。最小限の設定は次のとおりです。

# .grepai/config.yaml
store:
  backend: gob
明示的な設定
store:
  backend: gob
  # Index stored in .grepai/index.gob (automatic)

ストレージの場所

GOB ストレージは、プロジェクトの .grepai/ ディレクトリにファイルを作成します。

.grepai/
├── config.yaml    # Configuration
├── index.gob      # Vector embeddings
└── symbols.gob    # Symbol index for trace

ファイルサイズ

.grepai/index.gob のおおよそのサイズ:

コードベースファイル数チャンク数インデックスサイズ
小規模100500~5 MB
中規模1,0005,000~50 MB
大規模10,00050,000~500 MB

操作

インデックスの作成
# Initialize project
grepai init

# Start indexing (creates index.gob)
grepai watch
インデックスの状態確認
grepai status

# Output:
# Index: .grepai/index.gob
# Files: 245
# Chunks: 1,234
# Size: 12.5 MB
# Last updated: 2025-01-28 10:30:00
インデックスのバックアップ
# Simple file copy
cp .grepai/index.gob .grepai/index.gob.backup
インデックスのクリア
# Delete and re-index
rm .grepai/index.gob
grepai watch
新しいマシンへの移行
# Copy entire .grepai directory
cp -r .grepai /path/to/new/location/

# Note: Only works if using same embedding model

パフォーマンスに関する考慮事項

メモリ使用量

GOB は検索時にインデックス全体をメモリに読み込みます。

インデックスサイズRAM 使用量
10 MB~20 MB
50 MB~100 MB
500 MB~1 GB
検索速度

GOB は一般的なコードベースで高速な検索を実現します。

コードベースのサイズ検索時間
小規模(100 ファイル)<50ms
中規模(1K ファイル)<200ms
大規模(10K ファイル)<1s
アップグレードを検討するタイミング

次のような場合は、PostgreSQL または Qdrant を検討してください。

  • インデックスが 1 GB を超える
  • 同時アクセスが必要
  • チーム内でインデックスを共有したい
  • コードベースに 50K 以上のファイルがある

.gitignore の設定

.gitignore に .grepai/ を追加してください。

# GrepAI (machine-specific index)
.grepai/

理由: インデックスは次の理由により、マシン固有です。

  • バイナリー埋め込みを含む
  • 使用する埋め込みモデルに依存する
  • 各マシンで独自に生成する必要がある

インデックスの共有(非推奨)

インデックスファイルをコピーすることはできますが、次の理由から推奨されません。

  1. 同一の埋め込みモデルを使用する必要がある
  2. ファイルパスが絶対パスである
  3. マシンごとにコードのバージョンが異なる場合がある

より良い方法: 各開発者が独自に grepai watch を実行します。

他のバックエンドへの移行

PostgreSQL への移行
  1. 設定を更新します。
store:
  backend: postgres
  postgres:
    dsn: postgres://user:pass@localhost:5432/grepai
  1. インデックスを再作成します。
rm .grepai/index.gob
grepai watch
Qdrant への移行
  1. 設定を更新します。
store:
  backend: qdrant
  qdrant:
    endpoint: localhost
    port: 6334
  1. インデックスを再作成します。
rm .grepai/index.gob
grepai watch

よくある問題

❌ 問題: インデックスファイルが大きすぎる
✅ 解決策: 除外パターンを追加するか、PostgreSQL/Qdrant に移行してください

❌ 問題: 大規模なコードベースで検索が遅い
✅ 解決策: パフォーマンスを向上させるため、Qdrant に移行してください

❌ 問題: インデックスが破損している
✅ 解決策: 削除してインデックスを再作成してください。

rm .grepai/index.gob .grepai/symbols.gob
grepai watch

❌ 問題: 「Index not found」エラー
✅ 解決策: grepai watch を実行してインデックスを作成してください

ベストプラクティス

  1. 小規模・中規模のプロジェクトで使用する: ファイル数が約 10K まで
  2. .gitignore に追加する: インデックスをコミットしない
  3. 大きな変更の前にバックアップする: 実験の前に index.gob をコピーする
  4. モデルの変更後にインデックスを再作成する: 埋め込みモデルを変更した場合
  5. ファイルサイズを監視する: インデックスが 1GB を超えたら移行する

出力形式

GOB ストレージの状態:

✅ GOB Storage Configured

   Backend: GOB (local file)
   Index: .grepai/index.gob
   Size: 12.5 MB

   Contents:
   - Files: 245
   - Chunks: 1,234
   - Vectors: 1,234 × 768 dimensions

   Performance:
   - Search latency: <100ms
   - Memory usage: ~25 MB

コメント