PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 0.3.4
AI Engine – The Chatbot, AI Framework & MCP for WordPress v0.3.4
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 / core.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
core.php
185 lines
1 <?php
2
3 require_once( MWAI_PATH . '/vendor/autoload.php' );
4
5 define( 'MWAI_CHATBOT_PARAMS', [
6 // UI Parameters
7 'id' => null,
8 'env' => 'chatbot',
9 'context' => "Converse as if you were an AI assistant. Be friendly, creative.",
10 'ai_name' => "AI: ",
11 'user_name' => "User: ",
12 'sys_name' => "System: ",
13 'start_sentence' => "Hi! How can I help you?",
14 'text_send' => 'Send',
15 'text_input_placeholder' => 'Type your message...',
16 'style' => 'chatgpt',
17 'window' => false,
18 'fullscreen' => false,
19 // Chatbot System Parameters
20 'casually_fined_tuned' => false,
21 'prompt_ending' => null,
22 'completion_ending' => null,
23 // AI Parameters
24 'model' => 'text-davinci-003',
25 'temperature' => 0.8,
26 'max_tokens' => 1024,
27 'api_key' => null
28 ] );
29
30 define( 'MWAI_LANGUAGES', [
31 'en' => 'English',
32 'es' => 'Spanish',
33 'fr' => 'French',
34 'de' => 'German',
35 'it' => 'Italian',
36 'pt' => 'Portuguese',
37 'ru' => 'Russian',
38 'ja' => 'Japanese',
39 'zh' => 'Chinese',
40 ] );
41
42 define( 'MWAI_OPTIONS', [
43 'module_titles' => true,
44 'module_excerpts' => true,
45 'module_blocks' => false,
46 'shortcode_chat' => true,
47 'shortcode_chat_params' => MWAI_CHATBOT_PARAMS,
48 'shortcode_chat_default_params' => MWAI_CHATBOT_PARAMS,
49 'shortcode_chat_html' => true,
50 'shortcode_chat_formatting' => true,
51 'shortcode_chat_syntax_highlighting' => false,
52 'shortcode_chat_inject' => false,
53 'shortcode_imagesbot' => false,
54 'openai_apikey' => false,
55 'openai_usage' => [],
56 'openai_finetunes' => [],
57 'openai_finetunes_deleted' => [],
58 'extra_models' => "",
59 'languages' => MWAI_LANGUAGES
60 ]);
61
62 class Meow_MWAI_Core
63 {
64 public $admin = null;
65 public $is_rest = false;
66 public $is_cli = false;
67 public $site_url = null;
68 public $ai = null;
69 private $option_name = 'mwai_options';
70 public $defaultChatbotParams = MWAI_CHATBOT_PARAMS;
71
72 public function __construct() {
73 $this->site_url = get_site_url();
74 $this->is_rest = MeowCommon_Helpers::is_rest();
75 $this->is_cli = defined( 'WP_CLI' ) && WP_CLI;
76 $this->ai = new Meow_MWAI_AI( $this );
77 add_action( 'plugins_loaded', array( $this, 'init' ) );
78 }
79
80 function init() {
81 if ( $this->is_rest ) {
82 new Meow_MWAI_Rest( $this );
83 }
84 if ( is_admin() ) {
85 new Meow_MWAI_Admin( $this );
86 }
87 else {
88 new Meow_MWAI_UI( $this );
89 }
90
91 // Modules
92 if ( $this->get_option( 'shortcode_chat' ) ) {
93 new Meow_MWAI_Modules_Chatbot();
94 }
95 if ( $this->get_option( 'shortcode_imagesbot' ) ) {
96 new Meow_MWAI_Modules_ImagesBot();
97 }
98 //if ( $this->get_option( 'module_titles' ) ) {
99 new Meow_MWAI_Modules_ContentAware();
100 //}
101
102 // Advanced core
103 if ( class_exists( 'MeowPro_MWAI_Core' ) ) {
104 new MeowPro_MWAI_Core( $this );
105 }
106 }
107
108 #region Helpers
109 function can_access_settings() {
110 return apply_filters( 'mwai_allow_setup', current_user_can( 'manage_options' ) );
111 }
112
113 function can_access_features() {
114 return apply_filters( 'mwai_allow_usage', current_user_can( 'administrator' ) );
115 }
116
117 function get_text_from_postId( $postId ) {
118 $post = get_post( $postId );
119 if ( !$post ) {
120 return false;
121 }
122 $post->post_content = apply_filters( 'the_content', $post->post_content );
123 $text = strip_tags( $post->post_content );
124 $text = preg_replace( '/^\h*\v+/m', '', $text );
125 $text = html_entity_decode( $text );
126 return $text;
127 }
128 #endregion
129
130 #region Options
131 function get_all_options() {
132 $options = get_option( $this->option_name, null );
133 foreach ( MWAI_OPTIONS as $key => $value ) {
134 if ( !isset( $options[$key] ) ) {
135 $options[$key] = $value;
136 }
137 if ( $key === 'languages' ) {
138 $options[$key] = apply_filters( 'mwai_languages', $options[$key] );
139 }
140 }
141 return $options;
142 }
143
144 // Validate and keep the options clean and logical.
145 function sanitize_options() {
146 $options = $this->get_all_options();
147 $needs_update = false;
148
149 // We can sanitize our future options here, let's always remember it.
150 // Now, it is empty...
151
152 if ( $needs_update ) {
153 update_option( $this->option_name, $options, false );
154 }
155 return $options;
156 }
157
158 function update_options( $options ) {
159 if ( !update_option( $this->option_name, $options, false ) ) {
160 return false;
161 }
162 $options = $this->sanitize_options();
163 return $options;
164 }
165
166 function update_option( $option, $value ) {
167 $options = $this->get_all_options();
168 $options[$option] = $value;
169 return $this->update_options( $options );
170 }
171
172 function get_option( $option, $default = null ) {
173 $options = $this->get_all_options();
174 return $options[$option] ?? $default;
175 }
176 #endregion
177
178 function markdown_to_html( $content ) {
179 $Parsedown = new Parsedown();
180 $content = $Parsedown->text( $content );
181 return $content;
182 }
183 }
184
185 ?>