grepai-embeddings-ollama について
grepai-embeddings-ollama は、grepai のコード検索用埋め込み生成に Ollama を設定するスキルです。コードをローカルで処理したい開発者向けに、モデル選択、エンドポイント、性能調整、問題解決を説明します。
主な機能
- 01埋め込みプロバイダーとして Ollama を設定
- 02モデルと埋め込み次元の選択
- 03ローカルまたはリモートのエンドポイント設定
- 04性能調整とトラブルシューティングの案内
活用シーン
- 01ローカルのコード検索用埋め込みを生成
- 02多言語コードベース向けモデルを選択
- 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 費用や使用制限はありません |
| ⚡ 高速 | ネットワーク遅延がありません |
| 🔌 オフライン | インターネット接続なしで動作します |
| 🔧 制御 | 使用するモデルを選べます |
前提条件
- Ollama がインストールされ、実行中であること
- 埋め込みモデルをダウンロード済みであること
# 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-text | 768 | 274MB | ⚡⚡⚡ | ⭐⭐⭐ | 一般用途 |
nomic-embed-text-v2-moe | 768 | 500MB | ⚡⚡ | ⭐⭐⭐⭐ | 多言語 |
bge-m3 | 1024 | 1.2GB | ⚡ | ⭐⭐⭐⭐⭐ | 大規模なコードベース |
mxbai-embed-large | 1024 | 670MB | ⚡⚡ | ⭐⭐⭐⭐⭐ | 最高の精度 |
パフォーマンスの最適化
メモリ管理
モデルは 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
ベストプラクティス
nomic-embed-textから始める: 速度と品質のバランスに優れています- Ollama を起動したままにする: バックグラウンドサービスとしての実行をおすすめします
- 次元数を合わせる: 次元数の異なるモデルを混在させないでください
- モデル変更時に再インデックスする: インデックスを削除して、watch を再実行してください
- メモリを監視する: 埋め込みモデルは大量の 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
コメント
Markdown 対応