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