PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 0.9.87
AI Engine – The Chatbot, AI Framework & MCP for WordPress v0.9.87
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 / querytext.php
ai-engine / classes Last commit date
modules 3 years ago admin.php 3 years ago ai.php 3 years ago answer.php 3 years ago core.php 3 years ago init.php 3 years ago openai.php 3 years ago query.php 3 years ago queryimage.php 3 years ago querytext.php 3 years ago rest.php 3 years ago ui.php 3 years ago
querytext.php
140 lines
1 <?php
2
3 class Meow_MWAI_QueryText extends Meow_MWAI_Query {
4 public $maxTokens = 16;
5 public $temperature = 0.8;
6 public $stop = null;
7
8 public function __construct( $prompt = '', $maxTokens = 16, $model = 'text-davinci-003' ) {
9 $this->prompt = $prompt;
10 $this->maxTokens = $maxTokens;
11 $this->model = $model;
12 $this->mode = "completion";
13 }
14
15 // Quick and dirty token estimation
16 function estimate_tokens( $text, $method = "max" )
17 {
18 // method can be "average", "words", "chars", "max", "min", defaults to "max"
19 // "average" is the average of words and chars
20 // "words" is the word count divided by 0.75
21 // "chars" is the char count divided by 4
22 // "max" is the max of word and char
23 // "min" is the min of word and char
24 $word_count = count(explode(" ", $text));
25 $char_count = strlen($text);
26 $tokens_count_word_est = $word_count / 0.75;
27 $tokens_count_char_est = $char_count / 4.0;
28 $output = 0;
29 if ( $method == 'average' ) {
30 $output = ($tokens_count_word_est + $tokens_count_char_est) / 2;
31 }
32 else if ( $method == 'words' ) {
33 $output = $tokens_count_word_est;
34 }
35 else if ( $method == 'chars' ) {
36 $output = $tokens_count_char_est;
37 }
38 else if ( $method == 'max') {
39 $output = max($tokens_count_word_est, $tokens_count_char_est);
40 }
41 else if ( $method == 'min') {
42 $output = min($tokens_count_word_est, $tokens_count_char_est);
43 }
44 else {
45 // return invalid method message
46 return "Invalid method. Use 'average', 'words', 'chars', 'max', or 'min'.";
47 }
48 return (int)$output;
49 }
50
51
52 /**
53 * Make sure the maxTokens is not greater than the model's context length.
54 */
55 private function validateMaxTokens() {
56 $contains = strpos( $this->model, 'davinci' ) !== false;
57 $realMax = $contains ? 4096 : 2048;
58 $estimatedTokens = $this->estimate_tokens( $this->prompt );
59 $realMax = $realMax - $estimatedTokens - 32;
60 if ( $this->maxTokens > $realMax ) {
61 $this->maxTokens = $realMax;
62 }
63 }
64
65 /**
66 * Given a prompt, the model will return one or more predicted completions.
67 * It can also return the probabilities of alternative tokens at each position.
68 * @param string $prompt The prompt to generate completions.
69 */
70 public function setPrompt( $prompt ) {
71 parent::setPrompt( $prompt );
72 $this->validateMaxTokens();
73 }
74
75 /**
76 * The maximum number of tokens to generate in the completion.
77 * The token count of your prompt plus max_tokens cannot exceed the model's context length.
78 * Most models have a context length of 2048 tokens (except for the newest models, which support 4096).
79 * @param float $prompt The maximum number of tokens.
80 */
81 public function setMaxTokens( $maxTokens ) {
82 $this->maxTokens = intval( $maxTokens );
83 $this->validateMaxTokens();
84 }
85
86 /**
87 * Set the sampling temperature to use. Higher values means the model will take more risks.
88 * Try 0.9 for more creative applications, and 0 for ones with a well-defined answer.
89 * @param float $temperature The temperature.
90 */
91 public function setTemperature( $temperature ) {
92 $temperature = floatval( $temperature );
93 if ( $temperature > 1 ) {
94 $temperature = 1;
95 }
96 if ( $temperature < 0 ) {
97 $temperature = 0;
98 }
99 $this->temperature = $temperature;
100 }
101
102 /**
103 * Up to 4 sequences where the API will stop generating further tokens.
104 * The returned text will not contain the stop sequence.
105 * @param float $stop The stop.
106 */
107 public function setStop( $stop ) {
108 if ( !empty( $stop ) ) {
109 $this->stop = $stop;
110 }
111 }
112
113 // Based on the params of the query, update the attributes
114 public function injectParams( $params ) {
115 if ( isset( $params['model'] ) ) {
116 $this->setModel( $params['model'] );
117 }
118 if ( isset( $params['maxTokens'] ) ) {
119 $this->setMaxTokens( $params['maxTokens'] );
120 }
121 if ( isset( $params['temperature'] ) ) {
122 $this->setTemperature( $params['temperature'] );
123 }
124 if ( isset( $params['stop'] ) ) {
125 $this->setStop( $params['stop'] );
126 }
127 if ( isset( $params['apiKey'] ) ) {
128 $this->setApiKey( $params['apiKey'] );
129 }
130 if ( isset( $params['maxResults'] ) ) {
131 $this->setMaxResults( $params['maxResults'] );
132 }
133 if ( isset( $params['env'] ) ) {
134 $this->setEnv( $params['env'] );
135 }
136 if ( isset( $params['session'] ) ) {
137 $this->setSession( $params['session'] );
138 }
139 }
140 }