PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 0.0.8
AI Engine – The Chatbot, AI Framework & MCP for WordPress v0.0.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 / rest.php
ai-engine / classes Last commit date
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 query.php 3 years ago rest.php 3 years ago shortcodes.php 3 years ago ui.php 3 years ago
rest.php
188 lines
1 <?php
2
3 class Meow_MWAI_Rest
4 {
5 private $core = null;
6 private $namespace = 'ai-engine/v1';
7
8 public function __construct( $core ) {
9 if ( !current_user_can( 'administrator' ) ) {
10 return;
11 }
12 $this->core = $core;
13 add_action( 'rest_api_init', array( $this, 'rest_api_init' ) );
14 }
15
16 function rest_api_init() {
17 try {
18 register_rest_route( $this->namespace, '/update_option', array(
19 'methods' => 'POST',
20 'permission_callback' => array( $this->core, 'can_access_settings' ),
21 'callback' => array( $this, 'rest_update_option' )
22 ) );
23 register_rest_route( $this->namespace, '/all_settings', array(
24 'methods' => 'GET',
25 'permission_callback' => array( $this->core, 'can_access_settings' ),
26 'callback' => array( $this, 'rest_all_settings' ),
27 ) );
28 register_rest_route( $this->namespace, '/make_completions', array(
29 'methods' => 'POST',
30 'permission_callback' => array( $this->core, 'can_access_features' ),
31 'callback' => array( $this, 'make_completions' ),
32 ) );
33 register_rest_route( $this->namespace, '/make_titles', array(
34 'methods' => 'POST',
35 'permission_callback' => array( $this->core, 'can_access_features' ),
36 'callback' => array( $this, 'make_titles' ),
37 ) );
38 register_rest_route( $this->namespace, '/make_excerpts', array(
39 'methods' => 'POST',
40 'permission_callback' => array( $this->core, 'can_access_features' ),
41 'callback' => array( $this, 'make_excerpts' ),
42 ) );
43 register_rest_route( $this->namespace, '/update_post_title', array(
44 'methods' => 'POST',
45 'permission_callback' => array( $this->core, 'can_access_features' ),
46 'callback' => array( $this, 'update_post_title' ),
47 ) );
48 register_rest_route( $this->namespace, '/update_post_excerpt', array(
49 'methods' => 'POST',
50 'permission_callback' => array( $this->core, 'can_access_features' ),
51 'callback' => array( $this, 'update_post_excerpt' ),
52 ) );
53 }
54 catch ( Exception $e ) {
55 var_dump( $e );
56 }
57 }
58
59 function rest_all_settings() {
60 return new WP_REST_Response( [
61 'success' => true,
62 'data' => $this->core->get_all_options()
63 ], 200 );
64 }
65
66 function rest_update_option( $request ) {
67 try {
68 $params = $request->get_json_params();
69 $value = $params['options'];
70 $options = $this->core->update_options( $value );
71 $success = !!$options;
72 $message = __( $success ? 'OK' : "Could not update options.", 'ai-engine' );
73 return new WP_REST_Response([ 'success' => $success, 'message' => $message, 'options' => $options ], 200 );
74 }
75 catch ( Exception $e ) {
76 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
77 }
78 }
79
80 function createValidationResult( $result = true, $message = null) {
81 $message = $message ? $message : __( 'OK', 'ai-engine' );
82 return [ 'result' => $result, 'message' => $message ];
83 }
84
85 function validate_updated_option( $option_name ) {
86 $option_checkbox = get_option( 'mwai_option_checkbox', false );
87 $option_text = get_option( 'mwai_option_text', 'Default' );
88 if ( $option_checkbox === '' )
89 update_option( 'mwai_option_checkbox', false );
90 if ( $option_text === '' )
91 update_option( 'mwai_option_text', 'Default' );
92 return $this->createValidationResult();
93 }
94
95 function setup_query_based_on_params( $query, $params ) {
96 if ( isset( $params['model'] ) ) {
97 $query->setModel( $params['model'] );
98 }
99 if ( isset( $params['temperature'] ) ) {
100 $query->setTemperature( $params['temperature'] );
101 }
102 return $query;
103 }
104
105 function make_completions( $request ) {
106 try {
107 $params = $request->get_json_params();
108 $prompt = $params['prompt'];
109 $query = new Meow_MWAI_Query( $prompt, 2048 );
110 $query = $this->setup_query_based_on_params( $query, $params );
111 $answer = $this->core->ai->run( $query );
112 return new WP_REST_Response([ 'success' => true, 'data' => $answer->result, 'usage' => $answer->usage ], 200 );
113 }
114 catch ( Exception $e ) {
115 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
116 }
117 }
118
119 function make_titles( $request ) {
120 try {
121 $params = $request->get_json_params();
122 $postId = intval( $params['postId'] );
123 $text = $this->core->get_text_from_postId( $postId );
124 $prompt = "Create short SEO-friendly title for this text: " . $text;
125 $query = new Meow_MWAI_Query( $prompt, 40 );
126 $query->setMaxResults( 5 );
127 $answer = $this->core->ai->run( $query );
128 return new WP_REST_Response([ 'success' => true, 'data' => $answer->results ], 200 );
129 }
130 catch ( Exception $e ) {
131 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
132 }
133 }
134
135 function make_excerpts( $request ) {
136 try {
137 $params = $request->get_json_params();
138 $postId = intval( $params['postId'] );
139 $text = $this->core->get_text_from_postId( $postId );
140 $prompt = "Create SEO-friendly introduction to this text, 120 to 170 characters max, no URLs: " . $text;
141 $query = new Meow_MWAI_Query( $prompt, 140 );
142 $query->setMaxResults( 5 );
143 $answer = $this->core->ai->run( $query );
144 return new WP_REST_Response([ 'success' => true, 'data' => $answer->results ], 200 );
145 }
146 catch ( Exception $e ) {
147 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
148 }
149 }
150
151 function update_post_title( $request ) {
152 try {
153 $params = $request->get_json_params();
154 $title = sanitize_text_field( $params['title'] );
155 $postId = intval( $params['postId'] );
156 $post = get_post( $postId );
157 if ( !$post ) {
158 throw new Exception( 'There is no post with this ID.' );
159 }
160 $post->post_title = $title;
161 //$post->post_name = sanitize_title( $title );
162 wp_update_post( $post );
163 return new WP_REST_Response([ 'success' => true, 'message' => "Title updated." ], 200 );
164 }
165 catch ( Exception $e ) {
166 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
167 }
168 }
169
170 function update_post_excerpt( $request ) {
171 try {
172 $params = $request->get_json_params();
173 $excerpt = sanitize_text_field( $params['excerpt'] );
174 $postId = intval( $params['postId'] );
175 $post = get_post( $postId );
176 if ( !$post ) {
177 throw new Exception( 'There is no post with this ID.' );
178 }
179 $post->post_excerpt = $excerpt;
180 wp_update_post( $post );
181 return new WP_REST_Response([ 'success' => true, 'message' => "Excerpt updated." ], 200 );
182 }
183 catch ( Exception $e ) {
184 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
185 }
186 }
187 }
188