Skip to content

AI Router

WordPress 7.0+ PHP 8.3+ License: GPL v2+

Capability-based AI provider routing for WordPress 7.0

Works with WordPress 7.0-RC2, tested using WordPress AI. Tested text generation and image generation, using two separate Azure OpenAI deployments (gpt-4.1 for text, gpt-image-1 for images).

Route AI requests to different provider configurations based on capability. Configure multiple instances of the same AI provider (e.g., GPT-4o for text, gpt-image-1 for images) and let AI Router automatically select the right one.

Screenshot 2026-03-27 at 15 54 33

WordPress 7.0’s AI Client SDK only allows one configuration per provider type. AI Router solves this by enabling:

  • Multiple configurations of the same provider (e.g., separate Azure OpenAI deployments)
  • Capability-based routing — text generation to GPT-4, images to DALL-E
  • Default fallback — set a default for unmatched capabilities
  • Automatic selection — no code changes needed in plugins using the AI SDK

AI Router works with any AI provider registered with the WordPress 7 AI Client SDK. Providers are discovered dynamically at runtime via ProviderDiscovery.

Tested providers:

  • OpenAI
  • Azure OpenAI
  • Anthropic
  • Ollama

Other providers (Google AI, Cohere, etc.) will work automatically when installed — no code changes required.

  • WordPress 7.0+
  • PHP 8.3+
  • Underlying AI provider plugin(s) installed (e.g., ai-provider-for-openai)
  1. Download ai-router.zip from Releases
  2. Upload via Plugins → Add New → Upload Plugin
  3. Activate the plugin
Terminal window
cd wp-content/plugins
git clone https://github.com/soderlind/ai-router.git
cd ai-router
composer install --no-dev
npm install && npm run build

The plugin includes a GitHub updater — updates are delivered automatically when new releases are published.

  1. Go to Settings → Connectors in WordPress admin
  2. In the AI Router section, click Add Configuration
  3. Select a provider and configure its settings (API key, model, endpoint)
  4. Assign capabilities to the configuration
  5. Optionally set one configuration as default

Map specific capabilities to specific configurations:

text_generation → GPT-4 Config
image_generation → DALL-E Config
chat_history → GPT-4 Config

Unmapped capabilities fall back to the default configuration.

See docs/ for detailed routing logic and architecture.

Terminal window
npm install
npm run build # Production build
npm run start # Watch mode
Terminal window
# PHP tests (PHPUnit + Brain Monkey)
composer install
composer test
# JavaScript tests (Vitest)
npm run test:js
npm run test:js:watch

See CHANGELOG.md for version history.

GPL-2.0-or-later — see LICENSE for details.

Per Søderlind