PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 2.7.8
AI Engine – The Chatbot, AI Framework & MCP for WordPress v2.7.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 / queries / function.php
ai-engine / classes / queries Last commit date
assistant.php 1 year ago assistfeedback.php 1 year ago base.php 1 year ago droppedfile.php 1 year ago embed.php 1 year ago feedback.php 1 year ago function.php 1 year ago image.php 1 year ago parameter.php 1 year ago text.php 1 year ago transcribe.php 1 year ago
function.php
157 lines
1 <?php
2
3 class Meow_MWAI_Query_Function {
4 public string $name;
5 public string $description;
6 public array $parameters;
7 public string $type; // 'code-engine', etc...
8 public string $target; // 'server' or 'client'
9 public ?string $id;
10
11 public function __construct( string $name, string $description,
12 array $parameters = [], string $type = null, string $id = null, string $target = null ) {
13 // $name: The name of the function to be called.
14 // Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.
15 if ( !preg_match( '/^[a-zA-Z0-9_-]{1,64}$/', $name ) ) {
16 throw new InvalidArgumentException( "AI Engine: Invalid function name ($name) for Meow_MWAI_Query_Function." );
17 }
18
19 foreach ( $parameters as $parameter ) {
20 if ( !( $parameter instanceof Meow_MWAI_Query_Parameter ) ) {
21 throw new InvalidArgumentException( "AI Engine: Invalid parameter for Meow_MWAI_Query_Function." );
22 }
23 }
24
25 $this->name = $name;
26 $this->description = $description;
27 $this->parameters = $parameters;
28 $this->type = $type ?? 'manual';
29 $this->id = $id;
30 $this->target = $target ?? 'server';
31 }
32
33 public function serializeForOpenAI() {
34 // Initialize the base structure with name and description
35 $json = [ 'name' => $this->name, 'description' => $this->description ];
36
37 // Check if parameters are set and not empty
38 if ( !empty( $this->parameters ) ) {
39 $properties = [];
40 $required = [];
41
42 // Loop through each parameter to construct the properties object
43 foreach ( $this->parameters as $parameter ) {
44
45 $properties[$parameter->name] = [
46 'type' => $parameter->type, // Assuming each parameter has a 'type' attribute
47 'description' => $parameter->description, // Assuming each parameter has a 'description' attribute
48 ];
49
50 // If the parameter type is "array" and has a "items" attribute, include it
51 if ( $parameter->type === 'array' ) {
52 $properties[$parameter->name]['items'] = [
53 'type' => 'string', // Assuming the items are strings
54 ];
55 }
56
57 // If an enum is set for the parameter, include it
58 if ( isset($parameter->enum) ) {
59 $properties[$parameter->name]['enum'] = $parameter->enum;
60 }
61
62 // If the parameter is required, add its name to the required array
63 if ( $parameter->required ) {
64 $required[] = $parameter->name;
65 }
66 }
67
68 // Assemble the parameters part of the JSON
69 $json['parameters'] = [
70 'type' => 'object',
71 'properties' => $properties,
72 'required' => $required,
73 ];
74 }
75
76 return $json;
77 }
78
79 public function serializeForAnthropic() {
80 $json = [
81 'name' => $this->name,
82 'description' => $this->description,
83 'input_schema' => [
84 'type' => 'object',
85 'properties' => new stdClass()
86 ],
87 ];
88
89 if ( !empty( $this->parameters ) ) {
90 $properties = [];
91 $required = [];
92 foreach ( $this->parameters as $parameter )
93 {
94 $properties[$parameter->name] = [
95 'type' => $parameter->type,
96 'description' => $parameter->description,
97 ];
98 if ( isset( $parameter->enum ) ) {
99 $properties[$parameter->name]['enum'] = $parameter->enum;
100 }
101 if ( $parameter->required ) {
102 $required[] = $parameter->name;
103 }
104 }
105 $json['input_schema']['properties'] = empty( $properties ) ? new stdClass() : $properties;
106 if ( !empty( $required ) ) {
107 $json['input_schema']['required'] = $required;
108 }
109 }
110
111 return $json;
112 }
113
114 public static function fromJson( array $json ): Meow_MWAI_Query_Function {
115 $funcName = $json['name'];
116 $funcDesc = $json['desc'];
117 $funcType = $json['type'] ?? null;
118 $funcId = $json['id'] ?? null;
119 $funcTarget = $json['target'] ?? null;
120 if ( $funcId === null && !empty( $json['snippetId'] ) ) {
121 $funcId = $json['snippetId'];
122 }
123 $args = [];
124 if ( !empty( $json['args'] ) ) {
125 foreach ( $json['args'] as $arg ) {
126 $name = ltrim( $arg['name'], '$' );
127 $desc = $arg['desc'] ?? null;
128 $type = $arg['type'] ?? 'string';
129 $required = $arg['required'] ?? false;
130 $args[] = new Meow_MWAI_Query_Parameter( $name, $desc, $type, $required );
131 }
132 }
133 return new self( $funcName, $funcDesc, $args, $funcType, $funcId, $funcTarget );
134 }
135
136 public static function toJson( Meow_MWAI_Query_Function $function ): array {
137 $json = [
138 'name' => $function->name,
139 'desc' => $function->description,
140 'type' => $function->type,
141 'id' => $function->id,
142 'target' => $function->target,
143 'args' => [],
144 ];
145
146 foreach ( $function->parameters as $param ) {
147 $json['args'][] = [
148 'name' => $param->name,
149 'desc' => $param->description,
150 'type' => $param->type,
151 'required' => $param->required,
152 ];
153 }
154
155 return $json;
156 }
157 }