PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 2.0.6
AI Engine – The Chatbot, AI Framework & MCP for WordPress v2.0.6
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 / reply.php
ai-engine / classes Last commit date
engines 2 years ago modules 2 years ago queries 2 years ago admin.php 2 years ago api.php 2 years ago core.php 2 years ago init.php 3 years ago reply.php 2 years ago rest.php 2 years ago
reply.php
166 lines
1 <?php
2
3 class Meow_MWAI_Reply implements JsonSerializable {
4
5 public $result = '';
6 public $results = [];
7 public $usage = [ 'prompt_tokens' => 0, 'completion_tokens' => 0, 'total_tokens' => 0 ];
8 public $query = null;
9 public $type = 'text';
10
11 // Function Call
12 public $functionCall = null;
13
14 public function __construct( $query = null ) {
15 $this->query = $query;
16 }
17
18 #[\ReturnTypeWillChange]
19 public function jsonSerialize() {
20 return [
21 'class' => get_class( $this ),
22 'result' => $this->result,
23 'results' => $this->results,
24 'usage' => $this->usage
25 ];
26 }
27
28 public function setQuery( $query ) {
29 $this->query = $query;
30 }
31
32 public function setUsage( $usage ) {
33 $this->usage = $usage;
34 }
35
36 public function setType( $type ) {
37 $this->type = $type;
38 }
39
40 public function getTotalTokens() {
41 return $this->usage['total_tokens'];
42 }
43
44 public function getPromptTokens() {
45 return $this->usage['prompt_tokens'];
46 }
47
48 public function getCompletionTokens() {
49 return $this->usage['completion_tokens'];
50 }
51
52 public function getUnits() {
53 if ( isset( $this->usage['total_tokens'] ) ) {
54 return $this->usage['total_tokens'];
55 }
56 else if ( isset( $this->usage['images'] ) ) {
57 return $this->usage['images'];
58 }
59 else if ( isset( $this->usage['seconds'] ) ) {
60 return $this->usage['seconds'];
61 }
62 return null;
63 }
64
65 public function getResults() {
66 return $this->results;
67 }
68
69 public function getUsage() {
70 return $this->usage;
71 }
72
73 public function getResult() {
74 return $this->result;
75 }
76
77 public function getType() {
78 return $this->type;
79 }
80
81 public function setReply( $reply ) {
82 $this->result = $reply;
83 $this->results[] = [ $reply ];
84 }
85
86 public function replace( $search, $replace ) {
87 $this->result = str_replace( $search, $replace, $this->result );
88 $this->results = array_map( function( $result ) use ( $search, $replace ) {
89 return str_replace( $search, $replace, $result );
90 }, $this->results );
91 }
92
93 /**
94 * Set the choices from OpenAI as the results.
95 * The last (or only) result is set as the result.
96 * @param array $choices ID of the model to use.
97 */
98 public function setChoices( $choices ) {
99 $this->results = [];
100 if ( is_array( $choices ) ) {
101 foreach ( $choices as $choice ) {
102
103 // It's chat completion
104 if ( isset( $choice['message'] ) ) {
105
106 // It's text content
107 if ( isset( $choice['message']['content'] ) ) {
108 $content = trim( $choice['message']['content'] );
109 $this->results[] = $content;
110 $this->result = $content;
111 }
112
113 // It's a function call
114 if ( isset( $choice['message']['function_call'] ) ) {
115 $content = $choice['message']['function_call'];
116 $name = trim( $content['name'] );
117 $arguments = trim( str_replace( "\n", "", $content['arguments'] ) );
118 if ( substr( $arguments, 0, 1 ) == '{' ) {
119 $arguments = json_decode( $arguments, true );
120 }
121 $this->functionCall = [ 'name' => $name, 'arguments' => $arguments ];
122 }
123 }
124
125 // It's text completion
126 else if ( isset( $choice['text'] ) ) {
127
128 // TODO: Assistants return an array (so actually not really a text completion)
129 // We should probably make this clearer and analyze all the outputs from different endpoints.
130 if ( is_array( $choice['text'] ) ) {
131 $text = trim( $choice['text']['value'] );
132 $this->results[] = $text;
133 $this->result = $text;
134 }
135 else {
136 $text = trim( $choice['text'] );
137 $this->results[] = $text;
138 $this->result = $text;
139 }
140 }
141
142 // It's url/image
143 else if ( isset( $choice['url'] ) ) {
144 $url = trim( $choice['url'] );
145 $this->results[] = $url;
146 $this->result = $url;
147 }
148
149 // It's embedding
150 else if ( isset( $choice['embedding'] ) ) {
151 $content = $choice['embedding'];
152 $this->results[] = $content;
153 $this->result = $content;
154 }
155 }
156 }
157 else {
158 $this->result = $choices;
159 $this->results[] = $choices;
160 }
161 }
162
163 public function toJson() {
164 return json_encode( $this );
165 }
166 }