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