PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.6.0
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.6.0
3.6.0 3.5.9 3.5.8 3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5.0 3.4.9 3.4.8 3.4.7 0.2.1 1.6.91 0.2.2 1.6.92 0.2.3 1.6.93 0.2.4 1.6.94 0.2.5 1.6.95 0.2.6 1.6.96 0.2.7 1.6.97 0.2.8 1.6.98 0.2.9 1.6.99 0.3.0 1.7.0 0.3.1 1.7.1 0.3.2 1.7.2 0.3.3 1.7.3 0.3.4 1.7.4 0.3.5 1.7.5 0.3.6 1.7.6 0.4.0 1.7.7 0.4.1 1.7.8 0.4.2 1.7.9 0.4.3 1.8.0 0.4.4 1.8.1 0.4.5 1.8.2 0.4.6 1.8.3 0.4.7 1.8.4 0.4.8 1.8.5 0.4.9 1.8.6 0.5.0 1.8.7 0.5.1 1.8.8 0.5.2 1.8.9 0.5.3 1.9.0 0.5.4 1.9.1 0.5.5 1.9.2 0.5.6 1.9.3 0.5.7 1.9.4 0.5.8 1.9.5 0.5.9 1.9.6 0.6.0 1.9.7 0.6.1 1.9.8 0.6.2 1.9.81 0.6.3 1.9.82 0.6.4 1.9.83 0.6.5 1.9.84 0.6.6 1.9.85 0.6.7 1.9.86 0.6.8 1.9.87 0.6.9 1.9.88 0.7.0 1.9.89 0.7.1 1.9.90 0.7.2 1.9.91 0.7.3 1.9.92 0.7.4 1.9.93 0.7.5 1.9.94 0.7.6 1.9.95 0.7.7 1.9.96 0.7.8 1.9.97 0.7.9 1.9.98 0.8.0 1.9.99 0.8.1 2.0.0 0.8.2 2.0.1 0.8.3 2.0.2 0.8.4 2.0.3 0.8.5 2.0.4 0.8.6 2.0.5 0.8.7 2.0.6 0.8.8 2.0.7 0.8.9 2.0.8 0.9.0 2.0.9 0.9.2 2.1.0 0.9.3 2.1.1 0.9.4 2.1.2 0.9.5 2.1.3 0.9.6 2.1.4 0.9.7 2.1.5 0.9.8 2.1.6 0.9.81 2.1.7 0.9.82 2.1.8 0.9.83 2.1.9 0.9.84 2.2.0 0.9.85 2.2.1 0.9.86 2.2.2 0.9.87 2.2.3 0.9.88 2.2.4 0.9.89 2.2.5 0.9.9 2.2.51 0.9.91 2.2.52 0.9.92 2.2.53 0.9.93 2.2.54 0.9.94 2.2.56 0.9.95 2.2.57 0.9.96 2.2.6 0.9.97 2.2.60 0.9.98 2.2.61 0.9.99 2.2.62 1.0.0 2.2.63 1.0.01 2.2.70 1.0.1 2.2.80 1.0.2 2.2.81 1.0.3 2.2.90 1.0.4 2.2.91 1.0.5 2.2.92 1.0.6 2.2.93 1.0.7 2.2.94 1.0.8 2.2.95 1.0.9 2.3.0 1.1.0 2.3.1 1.1.1 2.3.2 1.1.2 2.3.3 1.1.3 2.3.4 1.1.4 2.3.5 1.1.5 2.3.6 1.1.6 2.3.7 1.1.7 2.3.8 1.1.8 2.3.9 1.1.9 2.4.0 1.2.0 2.4.1 1.2.1 2.4.2 1.2.2 2.4.3 1.2.21 2.4.4 1.2.3 2.4.5 1.2.30 2.4.6 1.3.0 2.4.7 1.3.1 2.4.8 1.3.2 2.4.9 1.3.3 2.5.0 1.3.31 2.5.1 1.3.32 2.5.2 1.3.33 2.5.3 1.3.34 2.5.4 1.3.35 2.5.5 1.3.36 2.5.6 1.3.37 2.5.7 1.3.38 2.5.8 1.3.39 2.5.9 1.3.40 2.6.0 1.3.41 2.6.1 1.3.42 2.6.2 1.3.43 2.6.3 1.3.44 2.6.5 1.3.45 2.6.6 1.3.46 2.6.7 1.3.47 2.6.8 1.3.48 2.6.9 1.3.49 2.7.0 1.3.50 2.7.1 1.3.51 2.7.2 1.3.52 2.7.3 1.3.53 2.7.4 1.3.54 2.7.5 1.3.56 2.7.6 1.3.57 2.7.7 1.3.58 2.7.8 1.3.59 2.7.9 1.3.60 2.8.0 1.3.61 2.8.1 1.3.62 2.8.2 1.3.63 2.8.3 1.3.64 2.8.4 1.3.65 2.8.5 1.3.66 2.8.6 1.3.67 2.8.7 1.3.68 2.8.8 1.3.69 2.8.9 1.3.70 2.9.0 1.3.71 2.9.1 1.3.72 2.9.2 1.3.73 2.9.3 1.3.74 2.9.4 1.3.75 2.9.5 1.3.76 2.9.6 1.3.77 2.9.7 1.3.78 2.9.8 1.3.79 2.9.9 1.3.80 3.0.0 1.3.81 3.0.1 1.3.82 3.0.2 1.3.83 3.0.3 1.3.84 3.0.4 1.3.85 3.0.5 1.3.86 3.0.6 1.3.87 3.0.7 1.3.88 3.0.8 1.3.89 3.0.9 1.3.90 3.1.0 1.3.91 3.1.1 1.3.92 3.1.2 1.3.93 3.1.3 1.3.94 3.1.4 1.3.95 3.1.5 1.3.96 3.1.6 1.3.97 3.1.7 1.3.98 3.1.8 1.3.99 3.1.9 1.4.0 3.2.0 1.4.1 3.2.1 1.4.2 3.2.2 1.4.3 3.2.3 1.4.4 3.2.4 1.4.5 3.2.5 1.4.6 3.2.6 1.4.7 3.2.7 1.4.8 3.2.8 1.4.9 3.2.9 1.5.0 3.3.0 1.5.1 3.3.1 1.5.2 3.3.2 1.5.3 3.3.3 1.5.4 3.3.4 1.5.5 3.3.5 1.5.6 3.3.6 1.5.7 3.3.7 1.5.8 3.3.8 1.5.9 3.3.9 1.6.0 3.4.0 1.6.1 3.4.1 1.6.2 3.4.2 1.6.3 3.4.3 1.6.5 3.4.4 1.6.51 3.4.5 1.6.52 3.4.6 1.6.53 1.6.54 1.6.55 1.6.56 1.6.57 1.6.58 1.6.59 1.6.60 1.6.61 1.6.62 1.6.63 1.6.64 1.6.65 1.6.66 1.6.67 1.6.68 trunk 1.6.69 0.0.1 1.6.70 0.0.2 1.6.71 0.0.3 1.6.72 0.0.4 1.6.73 0.0.5 1.6.74 0.0.6 1.6.75 0.0.7 1.6.76 0.0.8 1.6.77 0.0.9 1.6.78 0.1.0 1.6.79 0.1.1 1.6.81 0.1.2 1.6.82 0.1.3 1.6.83 0.1.4 1.6.84 0.1.5 1.6.85 0.1.6 1.6.86 0.1.7 1.6.87 0.1.8 1.6.88 0.1.9 1.6.89 0.2.0 1.6.90
ai-engine / labs / wpai-gateway-providers.php
ai-engine / labs Last commit date
mcp-core.php 1 day ago mcp-oauth.php 1 month ago mcp-rest.php 3 weeks ago mcp.conf 1 year ago mcp.js 8 months ago mcp.md 8 months ago mcp.php 1 week ago wpai-connectors.php 2 months ago wpai-gateway-availability.php 2 months ago wpai-gateway-directory.php 2 months ago wpai-gateway-image-model.php 2 months ago wpai-gateway-model.php 2 months ago wpai-gateway-providers.php 2 months ago wpai-gateway.php 2 months ago
wpai-gateway-providers.php
117 lines
1 <?php
2 /**
3 * Per-id provider adapters. Each one is an AI Engine-backed class registered
4 * in AiClient under a specific provider id (anthropic, google, openai, …) so
5 * that `wp_ai_client_prompt()->using_provider('anthropic')` — wherever it
6 * appears in the WP AI framework — transparently routes through AI Engine.
7 *
8 * All subclasses share `Meow_MWAI_Labs_WPAI_Gateway_Model` for dispatch. They
9 * only differ in metadata (id, name, engine type) and are scoped to their
10 * matching engine type for the directory and availability check.
11 */
12
13 use WordPress\AiClient\Providers\AbstractProvider;
14 use WordPress\AiClient\Providers\Contracts\ModelMetadataDirectoryInterface;
15 use WordPress\AiClient\Providers\Contracts\ProviderAvailabilityInterface;
16 use WordPress\AiClient\Providers\DTO\ProviderMetadata;
17 use WordPress\AiClient\Providers\Enums\ProviderTypeEnum;
18 use WordPress\AiClient\Providers\Http\Enums\RequestAuthenticationMethod;
19 use WordPress\AiClient\Providers\Models\Contracts\ModelInterface;
20 use WordPress\AiClient\Providers\Models\DTO\ModelMetadata;
21
22 abstract class Meow_MWAI_Labs_WPAI_Gateway_Provider_Base extends AbstractProvider {
23
24 /** Provider id, e.g. 'anthropic'. Must match the AI Engine engine type. */
25 abstract protected static function provider_id(): string;
26
27 /** Human-readable name, e.g. 'Anthropic'. */
28 abstract protected static function provider_name(): string;
29
30 /** Anchor URL for "where to get a key" (nullable). */
31 protected static function credentials_url(): ?string { return null; }
32
33 protected static function createModel(
34 ModelMetadata $modelMetadata,
35 ProviderMetadata $providerMetadata
36 ): ModelInterface {
37 foreach ( $modelMetadata->getSupportedCapabilities() as $cap ) {
38 if ( $cap->isImageGeneration() ) {
39 return new Meow_MWAI_Labs_WPAI_Gateway_ImageModel( $modelMetadata, $providerMetadata );
40 }
41 }
42 return new Meow_MWAI_Labs_WPAI_Gateway_Model( $modelMetadata, $providerMetadata );
43 }
44
45 protected static function createProviderMetadata(): ProviderMetadata {
46 return new ProviderMetadata(
47 static::provider_id(),
48 static::provider_name(),
49 ProviderTypeEnum::cloud(),
50 static::credentials_url(),
51 RequestAuthenticationMethod::apiKey(),
52 /* translators: %s: provider name. */
53 sprintf( __( '%s via AI Engine. Keys and dispatch are handled by the AI Engine plugin.', 'ai-engine' ), static::provider_name() )
54 );
55 }
56
57 protected static function createProviderAvailability(): ProviderAvailabilityInterface {
58 return new Meow_MWAI_Labs_WPAI_Gateway_Availability( static::provider_id() );
59 }
60
61 protected static function createModelMetadataDirectory(): ModelMetadataDirectoryInterface {
62 return new Meow_MWAI_Labs_WPAI_Gateway_Directory( static::provider_id() );
63 }
64 }
65
66 class Meow_MWAI_Labs_WPAI_Gateway_Provider_Anthropic extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
67 protected static function provider_id(): string { return 'anthropic'; }
68 protected static function provider_name(): string { return 'Anthropic'; }
69 protected static function credentials_url(): ?string { return 'https://console.anthropic.com/settings/keys'; }
70 }
71
72 class Meow_MWAI_Labs_WPAI_Gateway_Provider_OpenAI extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
73 protected static function provider_id(): string { return 'openai'; }
74 protected static function provider_name(): string { return 'OpenAI'; }
75 protected static function credentials_url(): ?string { return 'https://platform.openai.com/api-keys'; }
76 }
77
78 class Meow_MWAI_Labs_WPAI_Gateway_Provider_Google extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
79 protected static function provider_id(): string { return 'google'; }
80 protected static function provider_name(): string { return 'Google'; }
81 protected static function credentials_url(): ?string { return 'https://aistudio.google.com/api-keys'; }
82 }
83
84 class Meow_MWAI_Labs_WPAI_Gateway_Provider_Mistral extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
85 protected static function provider_id(): string { return 'mistral'; }
86 protected static function provider_name(): string { return 'Mistral'; }
87 protected static function credentials_url(): ?string { return 'https://console.mistral.ai/api-keys/'; }
88 }
89
90 class Meow_MWAI_Labs_WPAI_Gateway_Provider_OpenRouter extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
91 protected static function provider_id(): string { return 'openrouter'; }
92 protected static function provider_name(): string { return 'OpenRouter'; }
93 protected static function credentials_url(): ?string { return 'https://openrouter.ai/keys'; }
94 }
95
96 class Meow_MWAI_Labs_WPAI_Gateway_Provider_Perplexity extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
97 protected static function provider_id(): string { return 'perplexity'; }
98 protected static function provider_name(): string { return 'Perplexity'; }
99 protected static function credentials_url(): ?string { return 'https://www.perplexity.ai/settings/api'; }
100 }
101
102 class Meow_MWAI_Labs_WPAI_Gateway_Provider_Replicate extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
103 protected static function provider_id(): string { return 'replicate'; }
104 protected static function provider_name(): string { return 'Replicate'; }
105 protected static function credentials_url(): ?string { return 'https://replicate.com/account/api-tokens'; }
106 }
107
108 class Meow_MWAI_Labs_WPAI_Gateway_Provider_Ollama extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
109 protected static function provider_id(): string { return 'ollama'; }
110 protected static function provider_name(): string { return 'Ollama'; }
111 }
112
113 class Meow_MWAI_Labs_WPAI_Gateway_Provider_Azure extends Meow_MWAI_Labs_WPAI_Gateway_Provider_Base {
114 protected static function provider_id(): string { return 'azure'; }
115 protected static function provider_name(): string { return 'Azure OpenAI'; }
116 }
117