Skip to content

AI Router Documentation

AI Router provides capability-based routing for WordPress 7.0 AI requests — automatically directing each request to the most appropriate provider configuration.

WordPress 7.0 introduced the AI Client SDK, but different providers excel at different tasks:

  • OpenAI GPT-4 — text generation and chat
  • DALL-E / Stable Diffusion — image generation
  • Anthropic Claude — reasoning and analysis
  • Local Ollama models — privacy and cost benefits

AI Router lets you configure multiple providers and route each capability to the best one.

DocumentDescription
RoutingHow routing decisions are made (priority, fallbacks)
Data ModelConfiguration, RequestContext, and Vocabulary DTOs
Provider DiscoveryHow AI providers are discovered and configured
WordPress IntegrationHooks, REST API, credential sync
ExtensibilityFilters, actions, security considerations
sequenceDiagram
participant App as Plugin/Theme
participant Router as AI Router
participant Map as CapabilityMap
participant Repo as ConfigRepository
participant Provider as AI Provider
App->>Router: AI Request (e.g., text_generation)
Router->>Map: Check explicit mapping
alt Mapping exists
Map-->>Router: Mapped config ID
Router->>Repo: Get config
Repo-->>Router: Configuration
else No mapping
Router->>Repo: Get default config
alt Default supports capability
Repo-->>Router: Default configuration
else Default doesn't support
Router->>Repo: Find any supporting config
Repo-->>Router: Fallback (sorted by priority)
end
end
Router->>Provider: Route request
Note over Provider: OpenAI, Anthropic,<br/>Azure OpenAI, Ollama
LayerComponents
Admin UIConnectorsIntegration.php, connectors.js
REST APIConfigurationsController.php
DomainConfigurationService.php, Vocabulary.php
Core LogicRouter.php, CapabilityMap.php, ConnectorSync.php, ProviderDiscovery.php
DataConfigurationRepository.php, Configuration.php, RequestContext.php
Storagewp_options
ai-router/
├── src/
│ ├── DTO/
│ │ ├── Configuration.php # Immutable config data object
│ │ └── RequestContext.php # Per-request routing state
│ ├── Repository/
│ │ └── ConfigurationRepository.php
│ ├── Service/
│ │ └── ConfigurationService.php # Domain logic
│ ├── Admin/
│ │ └── ConnectorsIntegration.php
│ ├── Rest/
│ │ └── ConfigurationsController.php
│ ├── Vocabulary.php
│ ├── CapabilityMap.php
│ ├── ConnectorSync.php
│ ├── Router.php
│ └── ProviderDiscovery.php
├── src/js/
│ └── connectors.js
└── tests/
├── php/ # PHPUnit (126 tests)
└── js/ # Vitest (6 tests)
CapabilityDescription
text_generationGenerate text responses (GPT, Claude, etc.)
chat_historyMaintain conversation context
image_generationGenerate images (DALL-E, Stable Diffusion)
embedding_generationCreate vector embeddings
text_to_speech_conversionConvert text to audio
speech_generationGenerate speech/audio
music_generationGenerate music
video_generationGenerate video content