PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.0.4
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.0.4
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 / classes / engines / factory.php
ai-engine / classes / engines Last commit date
traits 1 year ago anthropic.php 10 months ago chatml.php 10 months ago core.php 11 months ago factory.php 1 year ago google.php 10 months ago hugging-face.php 1 year ago open-router.php 11 months ago openai.php 10 months ago perplexity.php 10 months ago replicate.php 1 year ago
factory.php
106 lines
1 <?php
2
3 class Meow_MWAI_Engines_Factory {
4 private static function get_default_env_id( $core ): ?string {
5 return $core->get_option( 'ai_default_env' );
6 }
7
8 private static function get_default_model( $core ): ?string {
9 return $core->get_option( 'ai_default_model' );
10 }
11
12 private static function get_env_from_id( $core, $envId ): ?array {
13 $envs = $core->get_option( 'ai_envs' );
14 foreach ( $envs as $env ) {
15 if ( $env['id'] === $envId ) {
16 return $env;
17 }
18 }
19 throw new Exception( "AI Engine: No environment found for ID ($envId)." );
20 }
21
22 private static function get_env_from_type( $core, $type, $envId ): ?array {
23 $types = is_array( $type ) ? $type : [ $type ];
24
25 // Try first to find the env with the ID provided.
26 if ( !empty( $envId ) ) {
27 $env = self::get_env_from_id( $core, $envId );
28 if ( in_array( $env['type'], $types ) ) {
29 return $env;
30 }
31 else {
32 $toTypes = implode( ', ', $types );
33 $toTypes = trim( $toTypes );
34 throw new Exception( "AI Engine: Environment ID ($envId) is not of type $toTypes." );
35 }
36 }
37 // If not, we will try to find the default one.
38 $envId = self::get_default_env_id( $core );
39 $env = self::get_env_from_id( $core, $envId );
40 if ( in_array( $env['type'], $type ) ) {
41 return $env;
42 }
43 // If not, we will try to find the first one.
44 $envs = $core->get_option( 'ai_envs' );
45 foreach ( $envs as $env ) {
46 if ( in_array( $env['type'], $type ) ) {
47 return $env;
48 }
49 }
50 throw new Exception( "AI Engine: No environment found for type ($type)." );
51 }
52
53 public static function get( $core, $envId = null ): ?Meow_MWAI_Engines_Core {
54 // If no envId is provided, we will use the default one as well as the default model.
55 $model = null;
56 if ( empty( $envId ) ) {
57 $envId = self::get_default_env_id( $core );
58 //$model = self::get_default_model( $core );
59 }
60 $env = self::get_env_from_id( $core, $envId );
61 if ( $env['type'] === 'openai' || $env['type'] === 'azure' ) {
62 $engine = Meow_MWAI_Engines_OpenAI::create( $core, $env );
63 return $engine;
64 }
65 else if ( $env['type'] === 'google' ) {
66 $engine = Meow_MWAI_Engines_Google::create( $core, $env );
67 return $engine;
68 }
69 else if ( $env['type'] === 'anthropic' ) {
70 $engine = new Meow_MWAI_Engines_Anthropic( $core, $env );
71 return $engine;
72 }
73 else if ( $env['type'] === 'openrouter' ) {
74 $engine = new Meow_MWAI_Engines_OpenRouter( $core, $env );
75 return $engine;
76 }
77 else if ( $env['type'] === 'huggingface' ) {
78 $engine = new Meow_MWAI_Engines_HuggingFace( $core, $env );
79 return $engine;
80 }
81 else if ( $env['type'] === 'replicate' ) {
82 $engine = new Meow_MWAI_Engines_Replicate( $core, $env );
83 return $engine;
84 }
85 else if ( $env['type'] === 'perplexity' ) {
86 $engine = new Meow_MWAI_Engines_Perplexity( $core, $env );
87 return $engine;
88 }
89
90 // Last chance via a filter.
91 $engine = apply_filters( 'mwai_init_engine', null, $core, $env );
92 if ( !is_null( $engine ) ) {
93 return $engine;
94 }
95
96 throw new Exception( "AI Engine: Unknown engine type ({$env['type']})." );
97 }
98
99 public static function get_openai( $core, $envId = null ): Meow_MWAI_Engines_OpenAI {
100 $env = self::get_env_from_type( $core, [ 'openai', 'azure' ], $envId );
101 $engine = Meow_MWAI_Engines_OpenAI::create( $core, $env );
102 return $engine;
103 }
104
105 }
106