Configure OpenAI as embedding provider for GrepAI. Use this skill for high-quality cloud embeddings.
This skill covers using OpenAI's embedding API with GrepAI for high-quality, cloud-based embeddings.
| Aspect | Details |
|---|---|
| ā Quality | State-of-the-art embeddings |
| ā Speed | Fast, no local compute needed |
| ā Scalability | Handles any codebase size |
| ā ļø Privacy | Code sent to OpenAI servers |
| ā ļø Cost | Pay per token |
| ā ļø Internet | Requires connection |
Get your API key at: https://platform.openai.com/api-keys
# .grepai/config.yaml
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
Set the environment variable:
export OPENAI_API_KEY="sk-..."
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
parallelism: 8 # Concurrent requests for speed
embedder:
provider: openai
model: text-embedding-3-small
api_key: sk-your-api-key-here # Avoid committing secrets!
Warning: Never commit API keys to version control.
| Property | Value |
|---|---|
| Dimensions | 1536 |
| Price | $0.00002 / 1K tokens |
| Quality | Very high |
| Speed | Fast |
Best for: Most use cases, good balance of cost/quality.
embedder:
provider: openai
model: text-embedding-3-small
| Property | Value |
|---|---|
| Dimensions | 3072 |
| Price | $0.00013 / 1K tokens |
| Quality | Highest |
| Speed | Fast |
Best for: Maximum accuracy, cost not a concern.
embedder:
provider: openai
model: text-embedding-3-large
dimensions: 3072
You can reduce dimensions to save storage:
embedder:
provider: openai
model: text-embedding-3-large
dimensions: 1024 # Reduced from 3072
| Model | Dimensions | Cost/1K tokens | Quality |
|---|---|---|---|
text-embedding-3-small |
1536 | $0.00002 | āāāā |
text-embedding-3-large |
3072 | $0.00013 | āāāāā |
Approximate costs per 1000 source files:
| Codebase Size | Chunks | Small Model | Large Model |
|---|---|---|---|
| Small (100 files) | ~500 | $0.01 | $0.06 |
| Medium (1000 files) | ~5,000 | $0.10 | $0.65 |
| Large (10000 files) | ~50,000 | $1.00 | $6.50 |
Note: Costs are one-time for initial indexing. Updates only re-embed changed files.
GrepAI v0.24.0+ supports adaptive rate limiting and parallel requests:
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
parallelism: 8 # Adjust based on your rate limit tier
Parallelism recommendations:
GrepAI automatically batches chunks for efficient API usage.
OpenAI has rate limits based on your account tier:
| Tier | RPM | TPM |
|---|---|---|
| Free | 3 | 150,000 |
| Tier 1 | 500 | 1,000,000 |
| Tier 2 | 5,000 | 5,000,000 |
GrepAI handles rate limiting automatically with adaptive backoff.
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')
Create .env in your project root:
OPENAI_API_KEY=sk-...
Add to .gitignore:
.env
For Azure-hosted OpenAI:
embedder:
provider: openai
model: your-deployment-name
api_key: ${AZURE_OPENAI_API_KEY}
endpoint: https://your-resource.openai.azure.com
.env filesā Problem: 401 Unauthorized
ā
Solution: Check API key is correct and environment variable is set:
echo $OPENAI_API_KEY
ā Problem: 429 Rate limit exceeded
ā
Solution: Reduce parallelism or upgrade OpenAI tier:
embedder:
parallelism: 2 # Lower value
ā Problem: High costs ā Solutions:
text-embedding-3-small instead of largeā Problem: Slow indexing ā Solution: Increase parallelism:
embedder:
parallelism: 8
ā Problem: Privacy concerns ā Solution: Use Ollama for local embeddings instead
embedder:
provider: openai
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
rm .grepai/index.gob
grepai watch
Important: You cannot mix embeddings from different models/providers.
Successful OpenAI configuration:
ā
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.