PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 0.0.6
AI Engine – The Chatbot, AI Framework & MCP for WordPress v0.0.6
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
177 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 make_completions( $request ) {
96 try {
97 $params = $request->get_json_params();
98 $prompt = $params['prompt'];
99 $query = new Meow_MWAI_Query( $prompt, 2048 );
100 $answer = $this->core->ai->run( $query );
101 return new WP_REST_Response([ 'success' => true, 'data' => $answer->result, 'usage' => $answer->usage ], 200 );
102 }
103 catch ( Exception $e ) {
104 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
105 }
106 }
107
108 function make_titles( $request ) {
109 try {
110 $params = $request->get_json_params();
111 $postId = intval( $params['postId'] );
112 $text = $this->core->get_text_from_postId( $postId );
113 $prompt = "Create short SEO-friendly title for this text: " . $text;
114 $query = new Meow_MWAI_Query( $prompt, 40 );
115 $query->setMaxResults( 5 );
116 $answer = $this->core->ai->run( $query );
117 return new WP_REST_Response([ 'success' => true, 'data' => $answer->results ], 200 );
118 }
119 catch ( Exception $e ) {
120 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
121 }
122 }
123
124 function make_excerpts( $request ) {
125 try {
126 $params = $request->get_json_params();
127 $postId = intval( $params['postId'] );
128 $text = $this->core->get_text_from_postId( $postId );
129 $prompt = "Create SEO-friendly introduction to this text, 120 to 170 characters max, no URLs: " . $text;
130 $query = new Meow_MWAI_Query( $prompt, 140 );
131 $query->setMaxResults( 5 );
132 $answer = $this->core->ai->run( $query );
133 return new WP_REST_Response([ 'success' => true, 'data' => $answer->results ], 200 );
134 }
135 catch ( Exception $e ) {
136 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
137 }
138 }
139
140 function update_post_title( $request ) {
141 try {
142 $params = $request->get_json_params();
143 $title = sanitize_text_field( $params['title'] );
144 $postId = intval( $params['postId'] );
145 $post = get_post( $postId );
146 if ( !$post ) {
147 throw new Exception( 'There is no post with this ID.' );
148 }
149 $post->post_title = $title;
150 //$post->post_name = sanitize_title( $title );
151 wp_update_post( $post );
152 return new WP_REST_Response([ 'success' => true, 'message' => "Title updated." ], 200 );
153 }
154 catch ( Exception $e ) {
155 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
156 }
157 }
158
159 function update_post_excerpt( $request ) {
160 try {
161 $params = $request->get_json_params();
162 $excerpt = sanitize_text_field( $params['excerpt'] );
163 $postId = intval( $params['postId'] );
164 $post = get_post( $postId );
165 if ( !$post ) {
166 throw new Exception( 'There is no post with this ID.' );
167 }
168 $post->post_excerpt = $excerpt;
169 wp_update_post( $post );
170 return new WP_REST_Response([ 'success' => true, 'message' => "Excerpt updated." ], 200 );
171 }
172 catch ( Exception $e ) {
173 return new WP_REST_Response([ 'success' => false, 'message' => $e->getMessage() ], 500 );
174 }
175 }
176 }
177