grepai-embeddings-openai について
OpenAI APIを通じてGrepAIの埋め込みを生成するためのスキルです。ローカルの埋め込みサーバーを管理せず、クラウド処理を利用するチーム向けに、モデル選択、並列リクエスト、費用、APIキー管理を説明します。
主な機能
- 01OpenAI埋め込みモデルの設定
- 02並列リクエストと自動バッチ処理
- 03埋め込み次元数の調整
- 04費用とレート制限の案内
- 05APIキーのセキュリティ設定
活用シーン
- 01GrepAIのコード索引用埋め込み生成
- 02並列リクエストによる索引作成の高速化
- 03ストレージ要件に合わせたベクトル次元数の削減
- 04API制限または認証エラーの診断
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ yoanbernabeu/ grepai-skills --skill grepai-embeddings-openaiインストール後、Claude Code で/grepai-embeddings-openaiを入力して読み込まれたか確認します。
詳細
GrepAI と OpenAI による埋め込み
このスキルでは、GrepAI で OpenAI の埋め込み API を使用して、高品質なクラウドベースの埋め込みを作成する方法を説明します。
このスキルを使用する場面
- 最高品質の埋め込みが必要な場合
- インフラを共有するチーム環境の場合
- ローカルの埋め込みサーバーを管理したくない場合
- 品質や利便性のためにプライバシーを犠牲にしてもよい場合
検討事項
| 項目 | 詳細 |
|---|---|
| ✅ 品質 | 最先端の埋め込み |
| ✅ 速度 | 高速で、ローカルの計算処理は不要 |
| ✅ スケーラビリティ | あらゆる規模のコードベースに対応 |
| ⚠️ プライバシー | コードが OpenAI のサーバーに送信されます |
| ⚠️ コスト | トークンごとに課金されます |
| ⚠️ インターネット | 接続が必要です |
前提条件
- OpenAI API キー
- OpenAI アカウントで課金が有効になっていること
API キーは https://platform.openai.com/api-keys で取得できます。
設定
基本設定
# .grepai/config.yaml
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
環境変数を設定します。
export OPENAI_API_KEY="sk-..."
並列処理を使用する場合
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
parallelism: 8 # Concurrent requests for speed
API キーを直接指定する場合(非推奨)
embedder:
provider: openai
model: text-embedding-3-small
api_key: sk-your-api-key-here # Avoid committing secrets!
警告: API キーをバージョン管理にコミットしないでください。
利用可能なモデル
text-embedding-3-small(推奨)
| プロパティ | 値 |
|---|---|
| 次元数 | 1536 |
| 価格 | $0.00002 / 1K トークン |
| 品質 | 非常に高い |
| 速度 | 高速 |
最適な用途: ほとんどのユースケース。コストと品質のバランスに優れています。
embedder:
provider: openai
model: text-embedding-3-small
text-embedding-3-large
| プロパティ | 値 |
|---|---|
| 次元数 | 3072 |
| 価格 | $0.00013 / 1K トークン |
| 品質 | 最高 |
| 速度 | 高速 |
最適な用途: 最大限の精度が必要で、コストを重視しない場合。
embedder:
provider: openai
model: text-embedding-3-large
dimensions: 3072
次元数の削減
ストレージを節約するために、次元数を減らすことができます。
embedder:
provider: openai
model: text-embedding-3-large
dimensions: 1024 # Reduced from 3072
モデルの比較
| モデル | 次元数 | 1K トークンあたりのコスト | 品質 |
|---|---|---|---|
text-embedding-3-small | 1536 | $0.00002 | ⭐⭐⭐⭐ |
text-embedding-3-large | 3072 | $0.00013 | ⭐⭐⭐⭐⭐ |
コストの見積もり
ソースファイル 1000 件あたりの概算コスト:
| コードベースの規模 | チャンク数 | small モデル | large モデル |
|---|---|---|---|
| 小規模(100 ファイル) | ~500 | $0.01 | $0.06 |
| 中規模(1000 ファイル) | ~5,000 | $0.10 | $0.65 |
| 大規模(10000 ファイル) | ~50,000 | $1.00 | $6.50 |
注: 初回のインデックス作成時に一度だけコストが発生します。更新時は、変更されたファイルのみ再埋め込みされます。
速度の最適化
並列リクエスト
GrepAI v0.24.0+ は、適応型レート制限と並列リクエストに対応しています。
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
parallelism: 8 # Adjust based on your rate limit tier
並列処理数の推奨値:
- Tier 1(無料): 1-2
- Tier 2: 4-8
- Tier 3 以上: 8-16
バッチ処理
GrepAI は、API を効率的に使用できるようチャンクを自動的にバッチ処理します。
レート制限
OpenAI のレート制限はアカウントのティアによって異なります。
| ティア | RPM | TPM |
|---|---|---|
| 無料 | 3 | 150,000 |
| Tier 1 | 500 | 1,000,000 |
| Tier 2 | 5,000 | 5,000,000 |
GrepAI は、適応型バックオフによってレート制限を自動的に処理します。
環境変数
API キーの設定
macOS/Linux:
# In ~/.bashrc, ~/.zshrc, or ~/.profile
export OPENAI_API_KEY="sk-..."
Windows(PowerShell):
$env:OPENAI_API_KEY = "sk-..."
# Or permanently
[System.Environment]::SetEnvironmentVariable('OPENAI_API_KEY', 'sk-...', 'User')
.env ファイルの使用
プロジェクトのルートに .env を作成します。
OPENAI_API_KEY=sk-...
.gitignore に追加します。
.env
Azure OpenAI
Azure でホストされた OpenAI を使用する場合:
embedder:
provider: openai
model: your-deployment-name
api_key: ${AZURE_OPENAI_API_KEY}
endpoint: https://your-resource.openai.azure.com
セキュリティのベストプラクティス
- 環境変数を使用する: API キーをハードコードしないでください
- .gitignore に追加する:
.envファイルを除外してください - キーをローテーションする: API キーを定期的にローテーションしてください
- 使用状況を監視する: OpenAI のダッシュボードで予期しない使用がないか確認してください
- コードを確認する: 機密コードがインデックスに含まれないようにしてください
よくある問題
❌ 問題: 401 Unauthorized
✅ 解決策: API キーが正しく、環境変数が設定されていることを確認します。
echo $OPENAI_API_KEY
❌ 問題: 429 Rate limit exceeded
✅ 解決策: 並列処理数を減らすか、OpenAI のティアをアップグレードします。
embedder:
parallelism: 2 # Lower value
❌ 問題: コストが高い ✅ 解決策:
- large の代わりに
text-embedding-3-smallを使用する - 次元数を減らす
- 除外パターンを追加して、インデックス対象のファイルを減らす
❌ 問題: インデックス作成が遅い ✅ 解決策: 並列処理数を増やします。
embedder:
parallelism: 8
❌ 問題: プライバシーに関する懸念 ✅ 解決策: ローカルで埋め込みを作成するには、代わりに Ollama を使用します
Ollama から OpenAI への移行
- 設定を更新します。
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
- 既存のインデックスを削除します。
rm .grepai/index.gob
- 再インデックスします。
grepai watch
重要: 異なるモデルやプロバイダーの埋め込みを混在させることはできません。
出力形式
OpenAI の設定が成功した場合:
✅ OpenAI Embedding Provider Configured
Provider: OpenAI
Model: text-embedding-3-small
Dimensions: 1536
Parallelism: 4
API Key: sk-...xxxx (from environment)
Estimated cost for this codebase:
- Files: 245
- Chunks: ~1,200
- Cost: ~$0.02
Note: Code will be sent to OpenAI servers.