mcpField
G
grepai-embeddings-ollama

grepai-embeddings-ollama

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

grepai-embeddings-ollama について

grepai-embeddings-ollama は、grepai のコード検索用埋め込み生成に Ollama を設定するスキルです。コードをローカルで処理したい開発者向けに、モデル選択、エンドポイント、性能調整、問題解決を説明します。

主な機能

  1. 01埋め込みプロバイダーとして Ollama を設定
  2. 02モデルと埋め込み次元の選択
  3. 03ローカルまたはリモートのエンドポイント設定
  4. 04性能調整とトラブルシューティングの案内

活用シーン

  1. 01ローカルのコード検索用埋め込みを生成
  2. 02多言語コードベース向けモデルを選択
  3. 03リモート Ollama サーバーで埋め込みを生成

インストール

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

$npx skills add https://github.com/yoanbernabeu/grepai-skills --skill grepai-embeddings-ollama

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

詳細

Ollama を使用した GrepAI の埋め込み

このスキルでは、Ollama を GrepAI の埋め込みプロバイダーとして使用し、100%プライベートなローカルコード検索を実現する方法を説明します。

このスキルを使用するタイミング

  • プライベートなローカル埋め込みを設定するとき
  • 適切な Ollama モデルを選ぶとき
  • Ollama のパフォーマンスを最適化するとき
  • Ollama の接続問題をトラブルシューティングするとき

Ollama を選ぶ理由

利点説明
🔒 プライバシーコードがマシンの外に出ることはありません
💰 無料API 費用や使用制限はありません
⚡ 高速ネットワーク遅延がありません
🔌 オフラインインターネット接続なしで動作します
🔧 制御使用するモデルを選べます

前提条件

  1. Ollama がインストールされ、実行中であること
  2. 埋め込みモデルをダウンロード済みであること
# Install Ollama
brew install ollama  # macOS
# or
curl -fsSL https://ollama.com/install.sh | sh  # Linux

# Start Ollama
ollama serve

# Download model
ollama pull nomic-embed-text

設定

基本設定
# .grepai/config.yaml
embedder:
  provider: ollama
  model: nomic-embed-text
  endpoint: http://localhost:11434
カスタムエンドポイントを使用する場合
embedder:
  provider: ollama
  model: nomic-embed-text
  endpoint: http://192.168.1.100:11434  # Remote Ollama server
次元数を明示的に指定する場合
embedder:
  provider: ollama
  model: nomic-embed-text
  endpoint: http://localhost:11434
  dimensions: 768  # Usually auto-detected

利用可能なモデル

おすすめ:nomic-embed-text
ollama pull nomic-embed-text
プロパティ値
次元数768
サイズ約 274 MB
速度高速
品質コードに最適
言語英語に最適化

設定:

embedder:
  provider: ollama
  model: nomic-embed-text
多言語対応:nomic-embed-text-v2-moe
ollama pull nomic-embed-text-v2-moe
プロパティ値
次元数768
サイズ約 500 MB
速度中速
品質優秀
言語多言語

英語以外のコメントやドキュメントを含むコードベースに最適です。

設定:

embedder:
  provider: ollama
  model: nomic-embed-text-v2-moe
高品質:bge-m3
ollama pull bge-m3
プロパティ値
次元数1024
サイズ約 1.2 GB
速度低速
品質非常に高い
言語多言語

精度が重要となる大規模で複雑なコードベースに最適です。

設定:

embedder:
  provider: ollama
  model: bge-m3
  dimensions: 1024
最高品質:mxbai-embed-large
ollama pull mxbai-embed-large
プロパティ値
次元数1024
サイズ約 670 MB
速度中速
品質最高
言語英語

設定:

embedder:
  provider: ollama
  model: mxbai-embed-large
  dimensions: 1024

モデルの比較

モデル次元数サイズ速度品質用途
nomic-embed-text768274MB⚡⚡⚡⭐⭐⭐一般用途
nomic-embed-text-v2-moe768500MB⚡⚡⭐⭐⭐⭐多言語
bge-m310241.2GB⚡⭐⭐⭐⭐⭐大規模なコードベース
mxbai-embed-large1024670MB⚡⚡⭐⭐⭐⭐⭐最高の精度

パフォーマンスの最適化

メモリ管理

モデルは RAM に読み込まれます。十分なメモリを確保してください。

モデル必要な RAM
nomic-embed-text約 500 MB
nomic-embed-text-v2-moe約 800 MB
bge-m3約 1.5 GB
mxbai-embed-large約 1 GB
GPU アクセラレーション

Ollama は自動的に以下を使用します。

  • macOS: Metal(Apple Silicon)
  • Linux/Windows: CUDA(NVIDIA GPU)

GPU の使用状況を確認します。

ollama ps
モデルを読み込んだままにする

デフォルトでは、Ollama は 5 分間操作がないとモデルをアンロードします。読み込んだままにするには:

# Keep model loaded indefinitely
curl http://localhost:11434/api/generate -d '{
  "model": "nomic-embed-text",
  "keep_alive": -1
}'

接続の確認

Ollama が実行中か確認する
curl http://localhost:11434/api/tags
利用可能なモデルを一覧表示する
ollama list
埋め込みをテストする
curl http://localhost:11434/api/embeddings -d '{
  "model": "nomic-embed-text",
  "prompt": "function authenticate(user, password)"
}'

Ollama をサービスとして実行する

macOS(launchd)

Ollama アプリはログイン時に自動的に実行されます。

Linux(systemd)
# Enable service
sudo systemctl enable ollama

# Start service
sudo systemctl start ollama

# Check status
sudo systemctl status ollama
手動でバックグラウンド実行する
nohup ollama serve > /dev/null 2>&1 &

リモート Ollama サーバー

高性能なサーバーで Ollama を実行し、リモートから接続します。

サーバー側
# Allow remote connections
OLLAMA_HOST=0.0.0.0 ollama serve
クライアント側
# .grepai/config.yaml
embedder:
  provider: ollama
  model: nomic-embed-text
  endpoint: http://server-ip:11434

よくある問題

❌ 問題: 接続が拒否される ✅ 解決策:

# Start Ollama
ollama serve

❌ 問題: モデルが見つからない ✅ 解決策:

# Pull the model
ollama pull nomic-embed-text

❌ 問題: 埋め込みの生成が遅い ✅ 解決策:

  • 小さなモデル(nomic-embed-text)を使用する
  • GPU が使用されていることを確認する(ollama ps)
  • メモリを大量に使用するアプリケーションを終了する
  • より高性能なハードウェアを備えたリモートサーバーを検討する

❌ 問題: メモリ不足 ✅ 解決策:

  • 小さなモデルを使用する
  • ほかのアプリケーションを終了する
  • RAM を増設する
  • リモート Ollama サーバーを使用する

❌ 問題: モデル更新後に埋め込みが異なる ✅ 解決策: モデルを更新した後に再インデックスします。

rm .grepai/index.gob
grepai watch

ベストプラクティス

  1. nomic-embed-text から始める: 速度と品質のバランスに優れています
  2. Ollama を起動したままにする: バックグラウンドサービスとしての実行をおすすめします
  3. 次元数を合わせる: 次元数の異なるモデルを混在させないでください
  4. モデル変更時に再インデックスする: インデックスを削除して、watch を再実行してください
  5. メモリを監視する: 埋め込みモデルは大量の RAM を使用します

出力形式

Ollama の設定が成功した場合:

✅ Ollama Embedding Provider Configured

   Provider: Ollama
   Model: nomic-embed-text
   Endpoint: http://localhost:11434
   Dimensions: 768 (auto-detected)
   Status: Connected

   Model Info:
   - Size: 274 MB
   - Loaded: Yes
   - GPU: Apple Metal

コメント