PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.0.9
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.0.9
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 / query / text.php
ai-engine / classes / query Last commit date
assist-feedback.php 10 months ago assistant.php 10 months ago base.php 10 months ago dropped-file.php 11 months ago edit-image.php 1 year ago embed.php 10 months ago feedback.php 10 months ago function.php 1 year ago image.php 10 months ago parameter.php 1 year ago text.php 10 months ago transcribe.php 11 months ago
text.php
187 lines
1 <?php
2
3 class Meow_MWAI_Query_Text extends Meow_MWAI_Query_Base implements JsonSerializable {
4 // Core Content
5 public ?Meow_MWAI_Query_DroppedFile $attachedFile = null;
6
7 // Parameters
8 public ?float $temperature = null;
9 public ?int $maxTokens = null;
10 public ?string $stop = null;
11 public ?string $responseFormat = null;
12 public ?string $reasoning = null; // GPT-5 reasoning effort
13 public ?string $verbosity = null; // GPT-5 verbosity level
14
15 #region Constructors, Serialization
16
17 public function __construct( ?string $message = '', ?int $maxTokens = null, string $model = null ) {
18 parent::__construct( $message );
19 if ( !empty( $model ) ) {
20 $this->set_model( $model );
21 }
22 if ( !empty( $maxTokens ) ) {
23 $this->set_max_tokens( $maxTokens );
24 }
25 }
26
27 #[\ReturnTypeWillChange]
28 public function jsonSerialize(): array {
29 $json = [
30 'message' => $this->message,
31 'instructions' => $this->instructions,
32
33 'ai' => [
34 'model' => $this->model,
35 'feature' => $this->feature,
36 'maxTokens' => $this->maxTokens,
37 'temperature' => $this->temperature,
38 ],
39
40 'system' => [
41 'class' => get_class( $this ),
42 'envId' => $this->envId,
43 'scope' => $this->scope,
44 'session' => $this->session,
45 'customId' => $this->customId,
46 'maxMessages' => $this->maxMessages,
47 ]
48 ];
49
50 if ( !empty( $this->context ) ) {
51 $json['context']['content'] = $this->context;
52 }
53
54 if ( !empty( $this->attachedFile ) ) {
55 $json['context']['hasFile'] = true;
56 if ( $this->attachedFile->get_type() === 'url' ) {
57 $json['context']['fileUrl'] = $this->attachedFile->get_url();
58 }
59 }
60
61 return $json;
62 }
63
64 #endregion
65
66 #region File Handling
67
68 public function set_file( Meow_MWAI_Query_DroppedFile $file ): void {
69 $this->attachedFile = $file;
70 }
71
72 #endregion
73
74 #region Parameters
75
76 /**
77 * The type of return expected from the API. It can be either null or "json".
78 * @param int $maxResults The maximum number of completions.
79 */
80 public function set_response_format( $responseFormat ) {
81 if ( !empty( $responseFormat ) && $responseFormat !== 'json' ) {
82 throw new Exception( 'AI Engine: The response format can only be null or json.' );
83 }
84 $this->responseFormat = $responseFormat;
85 }
86
87 /**
88 * The maximum number of tokens to generate in the completion.
89 * The token count of your prompt plus max_tokens cannot exceed the model's context length.
90 * Most models have a context length of 2048 tokens (except for the newest models, which support 4096).
91 * @param float $maxTokens The maximum number of tokens.
92 */
93 public function set_max_tokens( int $maxTokens ): void {
94 $this->maxTokens = $maxTokens;
95 }
96
97 /**
98 * Set the sampling temperature to use. Higher values means the model will take more risks.
99 * Try 0.9 for more creative applications, and 0 for ones with a well-defined reply.
100 * @param float $temperature The temperature.
101 */
102 public function set_temperature( float $temperature ): void {
103 $temperature = floatval( $temperature );
104 if ( $temperature > 1 ) {
105 $temperature = 1;
106 }
107 if ( $temperature < 0 ) {
108 $temperature = 0;
109 }
110 $this->temperature = round( $temperature, 2 );
111 }
112
113 public function set_stop( string $stop ): void {
114 $this->stop = $stop;
115 }
116
117 /**
118 * Set the reasoning effort for GPT-5 models.
119 * @param string $reasoning The reasoning effort level (minimal, low, medium, high).
120 */
121 public function set_reasoning( string $reasoning ): void {
122 $valid = ['minimal', 'low', 'medium', 'high'];
123 if ( !in_array( $reasoning, $valid ) ) {
124 throw new Exception( 'AI Engine: Invalid reasoning level. Must be one of: minimal, low, medium, high.' );
125 }
126 $this->reasoning = $reasoning;
127 }
128
129 /**
130 * Set the verbosity level for GPT-5 models.
131 * @param string $verbosity The verbosity level (low, medium, high).
132 */
133 public function set_verbosity( string $verbosity ): void {
134 $valid = ['low', 'medium', 'high'];
135 if ( !in_array( $verbosity, $valid ) ) {
136 throw new Exception( 'AI Engine: Invalid verbosity level. Must be one of: low, medium, high.' );
137 }
138 $this->verbosity = $verbosity;
139 }
140
141 #endregion
142
143 #region Inject Params
144
145 // Based on the params of the query, update the attributes
146 public function inject_params( array $params ): void {
147 parent::inject_params( $params );
148 $params = $this->convert_keys( $params );
149
150 if ( !empty( $params['maxTokens'] ) && intval( $params['maxTokens'] ) > 0 ) {
151 $this->set_max_tokens( intval( $params['maxTokens'] ) );
152 }
153 if ( isset( $params['temperature'] ) && $params['temperature'] !== '' ) {
154 $this->set_temperature( $params['temperature'] );
155 }
156 if ( !empty( $params['stop'] ) ) {
157 $this->set_stop( $params['stop'] );
158 }
159 if ( !empty( $params['responseFormat'] ) ) {
160 $this->set_response_format( $params['responseFormat'] );
161 }
162 // Accept both 'reasoning' and 'reasoningEffort' (UI uses reasoningEffort)
163 if ( !empty( $params['reasoning'] ) ) {
164 $this->set_reasoning( $params['reasoning'] );
165 }
166 if ( !empty( $params['reasoningEffort'] ) ) {
167 $this->set_reasoning( $params['reasoningEffort'] );
168 }
169 if ( !empty( $params['verbosity'] ) ) {
170 $this->set_verbosity( $params['verbosity'] );
171 }
172 // Store prompt-related params as extra params
173 if ( !empty( $params['promptId'] ) ) {
174 $this->setExtraParam( 'promptId', $params['promptId'] );
175 }
176 // TODO: Prompt Variables support - might be added later
177 // if ( !empty( $params['promptVariables'] ) ) {
178 // $this->setExtraParam( 'promptVariables', $params['promptVariables'] );
179 // }
180 // if ( !empty( $params['promptVersion'] ) ) {
181 // $this->setExtraParam( 'promptVersion', $params['promptVersion'] );
182 // }
183 }
184
185 #endregion
186 }
187