Provider Setup
Configure LLM providers to enable evaluations and optimization.
OpenAI
Dashboard Setup
- Go to Settings > Providers
- Click Add Provider > OpenAI
- Enter your OpenAI API key
- Select default model
- Click Save
Via SDK
await client.providers.create({
type: 'openai',
name: 'Production OpenAI',
config: {
apiKey: 'sk-...',
defaultModel: 'gpt-5.1',
organization: 'org-...', // Optional
},
});
Anthropic
await client.providers.create({
type: 'anthropic',
name: 'Production Anthropic',
config: {
apiKey: 'sk-ant-...',
defaultModel: 'claude-sonnet-4-5-20251114',
},
});
Google (Gemini)
await client.providers.create({
type: 'google',
name: 'Production Google',
config: {
apiKey: 'AIza...',
defaultModel: 'gemini-2.5-flash',
},
});
Azure OpenAI
await client.providers.create({
type: 'azure-openai',
name: 'Production Azure',
config: {
apiKey: '...',
endpoint: 'https://your-resource.openai.azure.com/',
deploymentName: 'gpt-5',
apiVersion: '2025-01-01-preview',
},
});
Moonshot (Kimi)
await client.providers.create({
type: 'moonshot',
name: 'Production Kimi',
config: {
apiKey: 'sk-...',
defaultModel: 'kimi-k2.5',
},
});
Zhipu AI (GLM)
await client.providers.create({
type: 'zhipu',
name: 'Production GLM',
config: {
apiKey: '...',
defaultModel: 'glm-4.7',
},
});
Setting Default Provider
await client.providers.setDefault('provider_123');
Testing Connection
const result = await client.providers.test('provider_123');
console.log('Connection:', result.success ? 'OK' : 'Failed');
Security
Provider API keys are encrypted at rest and never exposed in API responses.
- Keys are stored encrypted using AES-256
- Access is scoped to your workspace
- Rotate keys regularly
- Use least-privilege API keys when possible