on_http_request:
- type: ai-gateway
config:
per_request_timeout: "45s"
total_timeout: "3m"
on_error: "halt"
providers:
# Primary: OpenAI with 3 keys
- id: openai
api_keys:
- value: ${secrets.get('openai', 'prod-1')}
- value: ${secrets.get('openai', 'prod-2')}
- value: ${secrets.get('openai', 'prod-3')}
metadata:
tier: "primary"
# Secondary: Anthropic with 2 keys
- id: anthropic
api_keys:
- value: ${secrets.get('anthropic', 'prod-1')}
- value: ${secrets.get('anthropic', 'prod-2')}
metadata:
tier: "secondary"
# Tertiary: Google with 1 key
- id: google
api_keys:
- value: ${secrets.get('google', 'prod')}
metadata:
tier: "tertiary"
model_selection:
strategy:
- "ai.models.filter(m, m.metrics.global.error_rate.total < 0.05)"
- "ai.models.filter(m, m.metrics.global.latency.upstream_ms_p95 < 3000)"
- "ai.models"