0d3cb498a3
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Waiting to run
Test and Publish Multi-arch Docker Image / test (push) Waiting to run
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Blocked by required conditions
Validate Renovate Config / Validate Renovate Configuration (push) Waiting to run
CI / Shell Format Check (push) Has been cancelled
CI / Check Ruby (3.4) (push) Has been cancelled
CI / CI Config (push) Has been cancelled
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Has been cancelled
CI / Build on Node ${{ matrix.node }} (push) Has been cancelled
CI / Style Check (push) Has been cancelled
CI / Generate Assets (push) Has been cancelled
CI / Check Python (3.14) (push) Has been cancelled
CI / Check Python (3.9) (push) Has been cancelled
CI / Build Docs (push) Has been cancelled
CI / Code Scan Action (push) Has been cancelled
CI / Site tests (push) Has been cancelled
CI / webui tests (push) Has been cancelled
CI / Run Integration Tests (push) Has been cancelled
CI / Run Smoke Tests (push) Has been cancelled
CI / Go Tests (push) Has been cancelled
CI / Share Test (push) Has been cancelled
CI / Redteam (Production API) (push) Has been cancelled
CI / Redteam (Staging API) (push) Has been cancelled
CI / GitHub Actions Lint (push) Has been cancelled
CI / Check Ruby (3.0) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build (push) Has been cancelled
release-please / publish-npm (push) Has been cancelled
release-please / publish-npm-backfill (push) Has been cancelled
release-please / docker (push) Has been cancelled
release-please / publish-code-scan-action (push) Has been cancelled
release-please / attest-code-scan-action (push) Has been cancelled
integration-helicone (Helicone AI Gateway)
You can run this example with:
npx promptfoo@latest init --example integration-helicone
cd integration-helicone
This example demonstrates how to use the Helicone AI Gateway provider in promptfoo to route requests through a self-hosted Helicone AI Gateway instance for unified provider access.
What This Example Shows
- Unified Interface: Use the same OpenAI-compatible syntax to access multiple providers
- Load Balancing: Smart routing based on provider availability and performance
- Self-Hosted Gateway: Full control over your LLM routing infrastructure
- Provider Comparison: Compare responses from different providers through a single interface
- Flexible Configuration: Easy switching between providers and models
Prerequisites
- Helicone AI Gateway: A running instance (we'll start one locally)
- API Keys: You'll need at least one provider API key:
- OpenAI API key (recommended)
- Anthropic API key (optional)
- Groq API key (optional)
Setup
-
Set Environment Variables:
# Set your provider API keys export OPENAI_API_KEY=your_openai_api_key_here export ANTHROPIC_API_KEY=your_anthropic_api_key_here # Optional export GROQ_API_KEY=your_groq_api_key_here # Optional -
Start Helicone AI Gateway:
# In a separate terminal, start the gateway npx @helicone/ai-gateway@latestThe gateway will start on
http://localhost:8080by default. -
Install promptfoo (if you haven't already):
npm install -g promptfoo
Running the Example
From this directory, run:
promptfoo eval
This will:
- Send the same prompts to all three providers through the Helicone AI Gateway
- Compare responses and performance across providers
- Generate a detailed comparison report
- Show differences in model capabilities and response patterns
What Happens
- Request Routing: Each request is sent to the local Helicone AI Gateway at
http://localhost:8080 - Provider Selection: The gateway routes each request to the appropriate provider (OpenAI, Anthropic, or Groq)
- Unified Interface: All providers use the same OpenAI-compatible request/response format
- Response Comparison: promptfoo compares the responses from each provider
Gateway Features
The Helicone AI Gateway provides several powerful features:
- Load Balancing: Automatic routing to the fastest/most reliable provider
- Caching: Built-in response caching to reduce costs and improve latency
- Rate Limiting: Configurable rate limits to prevent abuse
- Observability: Optional integration with Helicone's observability platform
- Self-Hosted: Full control over your infrastructure and data
Configuration Details
The example configuration includes:
Provider Setup
providers:
- id: helicone:openai/gpt-4o-mini
label: 'OpenAI via Helicone Gateway'
config:
temperature: 0.7
max_tokens: 500
Key Features Demonstrated
- Unified Interface: All providers use the same
helicone:provider/modelformat - OpenAI Compatibility: Standard OpenAI parameters work across all providers
- Easy Switching: Change providers by simply updating the model name
- Local Gateway: All requests go through your self-hosted gateway instance
Customization
You can modify the configuration to:
- Add More Providers: Include any providers supported by your Helicone AI Gateway
- Change Models: Specify different models using the
provider/modelformat - Custom Gateway: Point to a different Helicone AI Gateway instance
- Router Configuration: Use custom routers for different environments
Example with Custom Gateway and Router
providers:
- id: helicone:openai/gpt-4o
config:
baseUrl: http://my-gateway.company.com:8080
router: production
temperature: 0.5
Advanced Features
Using Different Gateway Endpoints
Route to different environments using routers:
providers:
- id: helicone:openai/gpt-4o
config:
router: production
- id: helicone:openai/gpt-4o-mini
config:
router: development
Custom Gateway Configuration
If you're running your own Helicone AI Gateway with custom configuration:
providers:
- id: helicone:custom-provider/custom-model
config:
baseUrl: http://localhost:9000
headers:
Custom-Header: value
Troubleshooting
Common Issues
- Authentication Error: Verify your
HELICONE_API_KEYis correct - Provider API Key Missing: Ensure you have valid API keys for the providers you're testing
- No Data in Dashboard: Check that requests are successfully completing
Debug Mode
For detailed request logging:
LOG_LEVEL=debug promptfoo eval
Learn More
Next Steps
- Explore the Dashboard: Review the analytics in your Helicone dashboard
- Set Up Alerts: Configure cost and usage alerts in Helicone
- Optimize Costs: Use caching and rate limiting to reduce expenses
- Scale Testing: Add more providers and test cases for comprehensive evaluation