PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.0.0
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.0.0
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 1 year ago assistant.php 11 months ago base.php 10 months ago dropped-file.php 11 months ago edit-image.php 1 year ago embed.php 1 year ago feedback.php 1 year 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
175 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 'maxMessages' => $this->maxMessages,
46 ]
47 ];
48
49 if ( !empty( $this->context ) ) {
50 $json['context']['content'] = $this->context;
51 }
52
53 if ( !empty( $this->attachedFile ) ) {
54 $json['context']['hasFile'] = true;
55 if ( $this->attachedFile->get_type() === 'url' ) {
56 $json['context']['fileUrl'] = $this->attachedFile->get_url();
57 }
58 }
59
60 return $json;
61 }
62
63 #endregion
64
65 #region File Handling
66
67 public function set_file( Meow_MWAI_Query_DroppedFile $file ): void {
68 $this->attachedFile = $file;
69 }
70
71 #endregion
72
73 #region Parameters
74
75 /**
76 * The type of return expected from the API. It can be either null or "json".
77 * @param int $maxResults The maximum number of completions.
78 */
79 public function set_response_format( $responseFormat ) {
80 if ( !empty( $responseFormat ) && $responseFormat !== 'json' ) {
81 throw new Exception( 'AI Engine: The response format can only be null or json.' );
82 }
83 $this->responseFormat = $responseFormat;
84 }
85
86 /**
87 * The maximum number of tokens to generate in the completion.
88 * The token count of your prompt plus max_tokens cannot exceed the model's context length.
89 * Most models have a context length of 2048 tokens (except for the newest models, which support 4096).
90 * @param float $maxTokens The maximum number of tokens.
91 */
92 public function set_max_tokens( int $maxTokens ): void {
93 $this->maxTokens = $maxTokens;
94 }
95
96 /**
97 * Set the sampling temperature to use. Higher values means the model will take more risks.
98 * Try 0.9 for more creative applications, and 0 for ones with a well-defined reply.
99 * @param float $temperature The temperature.
100 */
101 public function set_temperature( float $temperature ): void {
102 $temperature = floatval( $temperature );
103 if ( $temperature > 1 ) {
104 $temperature = 1;
105 }
106 if ( $temperature < 0 ) {
107 $temperature = 0;
108 }
109 $this->temperature = round( $temperature, 2 );
110 }
111
112 public function set_stop( string $stop ): void {
113 $this->stop = $stop;
114 }
115
116 /**
117 * Set the reasoning effort for GPT-5 models.
118 * @param string $reasoning The reasoning effort level (minimal, low, medium, high).
119 */
120 public function set_reasoning( string $reasoning ): void {
121 $valid = ['minimal', 'low', 'medium', 'high'];
122 if ( !in_array( $reasoning, $valid ) ) {
123 throw new Exception( 'AI Engine: Invalid reasoning level. Must be one of: minimal, low, medium, high.' );
124 }
125 $this->reasoning = $reasoning;
126 }
127
128 /**
129 * Set the verbosity level for GPT-5 models.
130 * @param string $verbosity The verbosity level (low, medium, high).
131 */
132 public function set_verbosity( string $verbosity ): void {
133 $valid = ['low', 'medium', 'high'];
134 if ( !in_array( $verbosity, $valid ) ) {
135 throw new Exception( 'AI Engine: Invalid verbosity level. Must be one of: low, medium, high.' );
136 }
137 $this->verbosity = $verbosity;
138 }
139
140 #endregion
141
142 #region Inject Params
143
144 // Based on the params of the query, update the attributes
145 public function inject_params( array $params ): void {
146 parent::inject_params( $params );
147 $params = $this->convert_keys( $params );
148
149 if ( !empty( $params['maxTokens'] ) && intval( $params['maxTokens'] ) > 0 ) {
150 $this->set_max_tokens( intval( $params['maxTokens'] ) );
151 }
152 if ( isset( $params['temperature'] ) && $params['temperature'] !== '' ) {
153 $this->set_temperature( $params['temperature'] );
154 }
155 if ( !empty( $params['stop'] ) ) {
156 $this->set_stop( $params['stop'] );
157 }
158 if ( !empty( $params['responseFormat'] ) ) {
159 $this->set_response_format( $params['responseFormat'] );
160 }
161 // Accept both 'reasoning' and 'reasoningEffort' (UI uses reasoningEffort)
162 if ( !empty( $params['reasoning'] ) ) {
163 $this->set_reasoning( $params['reasoning'] );
164 }
165 if ( !empty( $params['reasoningEffort'] ) ) {
166 $this->set_reasoning( $params['reasoningEffort'] );
167 }
168 if ( !empty( $params['verbosity'] ) ) {
169 $this->set_verbosity( $params['verbosity'] );
170 }
171 }
172
173 #endregion
174 }
175