PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 2.8.7
AI Engine – The Chatbot, AI Framework & MCP for WordPress v2.8.7
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 / services / model-environment.php
ai-engine / classes / services Last commit date
image.php 11 months ago message-builder.php 11 months ago model-environment.php 11 months ago response-id-manager.php 11 months ago session.php 11 months ago usage-stats.php 11 months ago
model-environment.php
122 lines
1 <?php
2
3 class Meow_MWAI_Services_ModelEnvironment {
4 private $core;
5
6 public function __construct( $core ) {
7 $this->core = $core;
8 }
9
10 public function validate_env_model( $query ) {
11 // The query object uses envId, not env
12 $env = $query->envId ?? $query->env ?? null;
13 $model = $query->model;
14
15 if ( empty( $env ) && empty( $model ) ) {
16 $this->set_default_env_and_model( $query, 'ai_default_env', 'ai_default_model' );
17 }
18 else if ( empty( $env ) && !empty( $model ) ) {
19 // If the model is available in the list of models, we can use it
20 $envs = $this->core->get_option( 'ai_envs' );
21 $models = $this->core->get_option( 'ai_models' );
22
23 // First check custom models
24 if ( !empty( $models ) ) {
25 foreach ( $models as $currentModel ) {
26 if ( $currentModel['model'] === $model && isset( $currentModel['envId'] ) ) {
27 $query->envId = $currentModel['envId'];
28 $query->env = $currentModel['envId']; // Set both for compatibility
29 $query->model = $currentModel['model'];
30 return;
31 }
32 }
33 }
34
35 // Then check models in environments
36 foreach ( $envs as $envId => $env ) {
37 if ( isset( $env['models'] ) ) {
38 foreach ( $env['models'] as $envModel ) {
39 if ( $envModel['model'] === $model ) {
40 $query->envId = $envId;
41 $query->env = $envId; // Set both for compatibility
42 $query->model = $model;
43 return;
44 }
45 }
46 }
47 }
48
49 throw new Exception( 'The environment is required.' );
50 }
51 else if ( !empty( $env ) && empty( $model ) ) {
52 $this->set_default_env_and_model( $query, 'ai_default_env', 'ai_default_model' );
53 }
54 else {
55 // We have both, let's continue
56 }
57 }
58
59 private function set_default_env_and_model( $query, $envOption, $modelOption ) {
60 $env = $this->core->get_option( $envOption );
61 $model = $this->core->get_option( $modelOption );
62 if ( !empty( $env ) ) {
63 // Use envId property which is what the query object uses
64 $query->envId = $env;
65 $query->env = $env; // Set both for compatibility
66 }
67 if ( !empty( $model ) ) {
68 $query->model = $model;
69 }
70 }
71
72 public function get_embeddings_env( $envId = null ) {
73 // Use provided envId or fall back to default
74 if ( empty( $envId ) ) {
75 $envId = $this->core->get_option( 'embeddings_default_env' );
76 }
77
78 // Get embeddings environments (not AI environments)
79 $envs = $this->core->get_option( 'embeddings_envs' );
80 if ( !empty( $envs ) ) {
81 foreach ( $envs as $env ) {
82 if ( isset( $env['id'] ) && $env['id'] === $envId ) {
83 return $env;
84 }
85 }
86 }
87
88 return null;
89 }
90
91 public function get_ai_env( $envId ) {
92 $envs = $this->core->get_option( 'ai_envs' );
93 if ( !empty( $envs ) ) {
94 foreach ( $envs as $env ) {
95 if ( isset( $env['id'] ) && $env['id'] === $envId ) {
96 return $env;
97 }
98 }
99 }
100 return null;
101 }
102
103 public function get_assistant( $envId, $assistantId ) {
104 $env = $this->get_ai_env( $envId );
105 if ( isset( $env['assistants'] ) ) {
106 foreach ( $env['assistants'] as $assistant ) {
107 if ( $assistant['id'] === $assistantId ) {
108 return $assistant;
109 }
110 }
111 }
112 return null;
113 }
114
115 public function get_engine_models( $query ) {
116 $envId = $query->env;
117 $env = $this->get_ai_env( $envId );
118 $models = apply_filters( 'mwai_engine_models', [], $env, $query );
119 return $models;
120 }
121 }
122