PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 0.0.2
AI Engine – The Chatbot, AI Framework & MCP for WordPress v0.0.2
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
admin.php 3 years ago core.php 3 years ago init.php 3 years ago openai.php 3 years ago rest.php 3 years ago ui.php 3 years ago
core.php
157 lines
1 <?php
2
3 class Meow_MWAI_Core
4 {
5 public $admin = null;
6 public $is_rest = false;
7 public $is_cli = false;
8 public $site_url = null;
9 private $option_name = 'mwai_options';
10
11 public function __construct() {
12 $this->site_url = get_site_url();
13 $this->is_rest = MeowCommon_Helpers::is_rest();
14 $this->is_cli = defined( 'WP_CLI' ) && WP_CLI;
15 add_action( 'plugins_loaded', array( $this, 'init' ) );
16 }
17
18 function init() {
19 // Part of the core, settings and stuff
20 $this->admin = new Meow_MWAI_Admin( $this );
21
22 // Only for REST
23 if ( $this->is_rest ) {
24 new Meow_MWAI_Rest( $this, $this->admin );
25 }
26
27 // Dashboard
28 if ( is_admin() ) {
29 new Meow_MWAI_UI( $this, $this->admin );
30 }
31 }
32
33 #region Helpers
34 function can_access_settings() {
35 return apply_filters( 'mwai_allow_setup', current_user_can( 'manage_options' ) );
36 }
37
38 function can_access_features() {
39 return apply_filters( 'mwai_allow_usage', current_user_can( 'administrator' ) );
40 }
41
42 function get_text_from_postId( $postId ) {
43 $post = get_post( $postId );
44 if ( !$post ) {
45 return false;
46 }
47 $post->post_content = apply_filters( 'the_content', $post->post_content );
48 $text = strip_tags( $post->post_content );
49 $text = preg_replace( '/^\h*\v+/m', '', $text );
50 $text = html_entity_decode( $text );
51 return $text;
52 }
53 #endregion
54
55 #region Options
56
57 function get_option( $option, $default = null ) {
58 $options = $this->get_all_options();
59 return $options[$option] ?? $default;
60 }
61
62 function list_options() {
63 return array(
64 'module_titles' => true,
65 'module_excerpts' => true,
66 'module_blocks' => false,
67 'openai_apikey' => false,
68 'openai_usage' => []
69 );
70 }
71
72 function get_all_options() {
73 $options = get_option( $this->option_name, null );
74 return $options;
75 }
76
77 function update_options( $options ) {
78 if ( !update_option( $this->option_name, $options, false ) ) {
79 return false;
80 }
81 $options = $this->sanitize_options();
82 return $options;
83 }
84
85 function update_option( $option, $value ) {
86 $options = $this->get_all_options();
87 $options[$option] = $value;
88 return $this->update_options( $options );
89 }
90
91 // Validate and keep the options clean and logical.
92 function sanitize_options() {
93 $options = $this->get_all_options();
94 $needs_update = false;
95 // We can sanitize our future options here, let's always remember it.
96
97 if ( $needs_update ) {
98 update_option( $this->option_name, $options, false );
99 }
100 return $options;
101 }
102
103 #endregion
104
105 #region AI
106
107 function generate_titles( $postId ) {
108 $text = $this->get_text_from_postId( $postId );
109 if ( empty( $text ) ) {
110 throw new Exception( 'There is no content for this post.' );
111 }
112 $openai = new Meow_MWAI_OpenAI( $this );
113 $recommendedTitles = $openai->getRecommendedTitles( $text );
114 return $recommendedTitles;
115 }
116
117 function generate_excerpts( $postId ) {
118 $text = $this->get_text_from_postId( $postId );
119 if ( empty( $text ) ) {
120 throw new Exception( 'There is no content for this post.' );
121 }
122 $openai = new Meow_MWAI_OpenAI( $this );
123 $recommendedExcerpts = $openai->getRecommendedExcerpts( $text );
124 return $recommendedExcerpts;
125 }
126
127 function get_completions( $text, $maxTokens = 100, $temperature = 0.5, $topP = 1,
128 $frequencyPenalty = 0, $presencePenalty = 0, $bestOf = 1 ) {
129 $openai = new Meow_MWAI_OpenAI( $this );
130 $res = $openai->getCompletions( $text );
131 return $res;
132 }
133
134 function update_post_title( $postId, $title ) {
135 $post = get_post( $postId );
136 if ( !$post ) {
137 throw new Exception( 'There is no post with this ID.' );
138 }
139 $post->post_title = $title;
140 //$post->post_name = sanitize_title( $title );
141 wp_update_post( $post );
142 }
143
144 function update_post_excerpt( $postId, $excerpt ) {
145 $post = get_post( $postId );
146 if ( !$post ) {
147 throw new Exception( 'There is no post with this ID.' );
148 }
149 $post->post_excerpt = $excerpt;
150 wp_update_post( $post );
151 }
152
153 #endregion
154
155 }
156
157 ?>