AI Configuration
This endpoint group provides methods for retrieving the AppBuilder AI configuration, including details about AI providers, available models, default model settings, and task-specific recommendations. It exposes configuration details necessary for clients to interact with AI functionalities without exposing sensitive API keys.
Endpoints
POST /api/rpc (Method: AIConfigRpc.getAIConfiguration)
Description: Retrieves the entire AI configuration (providers, models, defaults). Sensitive keys like API key env var names are included, but actual keys are not.
Request Body:
{ "method": "AIConfigRpc.getAIConfiguration", "params": {} }Parameters:
Name Type Required Description This method takes no parameters. Response:
{ "success": true, "data": { "providers": [ { "name": "OpenAI", "type": "openai", "baseUrl": "https://api.openai.com/v1", "apiKeyEnvVar": "OPENAI_API_KEY", "models": [...] } ], "models": [ { "id": "gpt-4o", "name": "GPT-4o", "provider": "OpenAI", "type": "chat", "endpoints": ["chat"], "capabilities": ["code_generation", "vision"], "modality": "multimodal", "inputModalities": ["text-in", "image-in"], "outputModalities": ["text-out"], "contextWindow": 128000 } ], "defaults": { "chat": "gpt-4o", "embedding": "text-embedding-ada-002", "tts": "tts-1" }, "categories": ["chat", "embedding", "image_generation"], "recommendations": { "summarization": { "modelId": "gpt-4o", "reason": "Excellent for concise summaries." } } } }Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AIConfigRpc.getAIConfiguration", "params": {} }'
POST /api/rpc (Method: AIConfigRpc.getModels)
Description: Retrieves a list of AI models, optionally filtered by various criteria.
Request Body:
{ "method": "AIConfigRpc.getModels", "params": { "capabilities": ["tts", "transcription", "image_generation"], "endpoints": ["chat", "realtime", "embedding"], "provider": "OpenAI", "type": "chat", "modality": "multimodal", "supportsModalities": ["text-in", "image-out"] } }Parameters:
Name Type Required Description capabilitiesArray<String>No Filter by model capabilities (e.g., ['tts', 'transcription', 'image_generation']).endpointsArray<String>No Filter by model API endpoints it supports (e.g., ['chat', 'realtime', 'embedding']).providerStringNo Filter by provider name (e.g., 'OpenAI','Google').typeStringNo Filter by model type (e.g., 'chat','embedding','tts','image_generation').modalityStringNo Filter by primary modality (e.g., 'text','multimodal','audio_to_text').supportsModalitiesArray<String>No Filter by models that support ALL listed modalities (e.g., ['text-in', 'image-out']).Response:
{ "success": true, "data": [ { "id": "gpt-4o", "name": "GPT-4o", "provider": "OpenAI", "type": "chat", "endpoints": ["chat"], "capabilities": ["code_generation", "vision"], "modality": "multimodal", "inputModalities": ["text-in", "image-in"], "outputModalities": ["text-out"], "contextWindow": 128000 }, { "id": "claude-3-opus-20240229", "name": "Claude 3 Opus", "provider": "Anthropic", "type": "chat", "endpoints": ["chat"], "capabilities": ["vision"], "modality": "multimodal", "inputModalities": ["text-in", "image-in"], "outputModalities": ["text-out"], "contextWindow": 200000 } ] }Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AIConfigRpc.getModels", "params": { "provider": "OpenAI", "type": "chat" } }'
POST /api/rpc (Method: AIConfigRpc.getProviders)
Description: Retrieves the list of configured AI providers.
Request Body:
{ "method": "AIConfigRpc.getProviders", "params": {} }Parameters:
Name Type Required Description This method takes no parameters. Response:
{ "success": true, "data": [ { "name": "OpenAI", "type": "openai", "baseUrl": "https://api.openai.com/v1", "apiKeyEnvVar": "OPENAI_API_KEY" }, { "name": "Google", "type": "google", "baseUrl": "https://generativelanguage.googleapis.com", "apiKeyEnvVar": "GOOGLE_API_KEY" } ] }Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AIConfigRpc.getProviders", "params": {} }'
POST /api/rpc (Method: AIConfigRpc.getDefaultModels)
Description: Retrieves the default AI models for various tasks or types.
Request Body:
{ "method": "AIConfigRpc.getDefaultModels", "params": {} }Parameters:
Name Type Required Description This method takes no parameters. Response:
{ "success": true, "data": { "chat": "gpt-4o", "embedding": "text-embedding-ada-002", "image_generation": "dall-e-3", "tts": "tts-1", "transcription": "whisper-1" } }Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AIConfigRpc.getDefaultModels", "params": {} }'
POST /api/rpc (Method: AIConfigRpc.getProviderSettings)
Description: Retrieves settings for a specific AI provider or all provider settings.
Request Body:
{ "method": "AIConfigRpc.getProviderSettings", "params": { "providerName": "OpenAI" } }Parameters:
Name Type Required Description providerNameStringNo If provided, returns settings for a specific provider. Otherwise, returns settings for all configured providers. Response:
{ "success": true, "data": { "OpenAI": { "name": "OpenAI", "type": "openai", "baseUrl": "https://api.openai.com/v1", "apiKeyEnvVar": "OPENAI_API_KEY" }, "Google": { "name": "Google", "type": "google", "baseUrl": "https://generativelanguage.googleapis.com", "apiKeyEnvVar": "GOOGLE_API_KEY" } } }Or, if
providerNameis specified:{ "success": true, "data": { "name": "OpenAI", "type": "openai", "baseUrl": "https://api.openai.com/v1", "apiKeyEnvVar": "OPENAI_API_KEY" } }Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AIConfigRpc.getProviderSettings", "params": { "providerName": "OpenAI" } }'
POST /api/rpc (Method: AIConfigRpc.getModelCategories)
Description: Retrieves model categories.
Request Body:
{ "method": "AIConfigRpc.getModelCategories", "params": {} }Parameters:
Name Type Required Description This method takes no parameters. Response:
{ "success": true, "data": [ "chat", "embedding", "image_generation", "tts", "transcription", "code_generation" ] }Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AIConfigRpc.getModelCategories", "params": {} }'
POST /api/rpc (Method: AIConfigRpc.getTaskRecommendations)
Description: Retrieves task-specific model recommendations.
Request Body:
{ "method": "AIConfigRpc.getTaskRecommendations", "params": { "taskName": "summarization" } }Parameters:
Name Type Required Description taskNameStringNo If provided, returns recommendation for a specific task. Otherwise, returns all recommendations. Response:
{ "success": true, "data": { "summarization": { "modelId": "gpt-4o", "reason": "Excellent for concise summaries.", "alternatives": [ { "modelId": "claude-3-opus-20240229", "reason": "Good for longer documents." } ] }, "code_generation": { "modelId": "gpt-4o", "reason": "Strong performance in generating and understanding code." } } }Or, if
taskNameis specified:{ "success": true, "data": { "modelId": "gpt-4o", "reason": "Excellent for concise summaries.", "alternatives": [ { "modelId": "claude-3-opus-20240229", "reason": "Good for longer documents." } ] } }Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AIConfigRpc.getTaskRecommendations", "params": { "taskName": "summarization" } }'