PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.2.3
Jetpack – WP Security, Backup, Speed, & Growth v12.2.3
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / _inc / lib / core-api / wpcom-endpoints / class-wpcom-rest-api-v2-endpoint-ai.php
jetpack / _inc / lib / core-api / wpcom-endpoints Last commit date
business-hours.php 4 years ago class-wpcom-rest-api-v2-endpoint-admin-menu.php 3 years ago class-wpcom-rest-api-v2-endpoint-ai.php 3 years ago class-wpcom-rest-api-v2-endpoint-external-media.php 3 years ago class-wpcom-rest-api-v2-endpoint-following.php 3 years ago class-wpcom-rest-api-v2-endpoint-google-docs.php 4 years ago class-wpcom-rest-api-v2-endpoint-instagram-gallery.php 3 years ago class-wpcom-rest-api-v2-endpoint-mailchimp.php 3 years ago class-wpcom-rest-api-v2-endpoint-podcast-player.php 3 years ago class-wpcom-rest-api-v2-endpoint-publicize-share-post.php 3 years ago class-wpcom-rest-api-v2-endpoint-resolve-redirect.php 3 years ago class-wpcom-rest-api-v2-endpoint-search.php 4 years ago class-wpcom-rest-api-v2-endpoint-template-loader.php 3 years ago class-wpcom-rest-api-v2-endpoint-transient.php 5 years ago class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php 3 years ago class-wpcom-rest-api-v2-endpoint-tweetstorm-parse.php 3 years ago class-wpcom-rest-api-v3-endpoint-blogging-prompts.php 3 years ago gutenberg-available-extensions.php 4 years ago hello.php 4 years ago memberships.php 3 years ago publicize-connection-test-results.php 3 years ago publicize-connections.php 3 years ago publicize-services.php 3 years ago service-api-keys.php 3 years ago sites-posts-featured-media-url.php 4 years ago subscribers.php 3 years ago
class-wpcom-rest-api-v2-endpoint-ai.php
150 lines
1 <?php
2 /**
3 * REST API endpoint for the Jetpack AI blocks.
4 *
5 * @package automattic/jetpack
6 * @since 11.8
7 */
8
9 /**
10 * Class WPCOM_REST_API_V2_Endpoint_AI
11 */
12 class WPCOM_REST_API_V2_Endpoint_AI extends WP_REST_Controller {
13 /**
14 * Namespace prefix.
15 *
16 * @var string
17 */
18 public $namespace = 'wpcom/v2';
19
20 /**
21 * Endpoint base route.
22 *
23 * @var string
24 */
25 public $rest_base = 'jetpack-ai';
26
27 /**
28 * WPCOM_REST_API_V2_Endpoint_AI constructor.
29 */
30 public function __construct() {
31 $this->is_wpcom = true;
32 $this->wpcom_is_wpcom_only_endpoint = true;
33
34 if ( ! class_exists( 'Jetpack_AI_Helper' ) ) {
35 require_once JETPACK__PLUGIN_DIR . '_inc/lib/class-jetpack-ai-helper.php';
36 }
37
38 // Register routes that don't require Jetpack AI to be enabled.
39 add_action( 'rest_api_init', array( $this, 'register_basic_routes' ) );
40
41 if ( ! \Jetpack_AI_Helper::is_enabled() ) {
42 return;
43 }
44
45 // Register routes that require Jetpack AI to be enabled.
46 add_action( 'rest_api_init', array( $this, 'register_routes' ) );
47 }
48
49 /**
50 * Register routes.
51 */
52 public function register_routes() {
53 register_rest_route(
54 $this->namespace,
55 $this->rest_base . '/completions',
56 array(
57 array(
58 'methods' => WP_REST_Server::CREATABLE,
59 'callback' => array( $this, 'request_gpt_completion' ),
60 'permission_callback' => array( 'Jetpack_AI_Helper', 'get_status_permission_check' ),
61 ),
62 'args' => array(
63 'content' => array(
64 'type' => 'string',
65 'required' => true,
66 'sanitize_callback' => 'sanitize_textarea_field',
67 ),
68 'post_id' => array(
69 'required' => false,
70 'type' => 'integer',
71 ),
72 'skip_cache' => array(
73 'required' => false,
74 'type' => 'boolean',
75 'description' => 'Whether to skip the cache and make a new request',
76 ),
77 ),
78 )
79 );
80
81 register_rest_route(
82 $this->namespace,
83 $this->rest_base . '/images/generations',
84 array(
85 array(
86 'methods' => WP_REST_Server::CREATABLE,
87 'callback' => array( $this, 'request_dalle_generation' ),
88 'permission_callback' => array( 'Jetpack_AI_Helper', 'get_status_permission_check' ),
89 ),
90 'args' => array(
91 'prompt' => array(
92 'type' => 'string',
93 'required' => true,
94 'sanitize_callback' => 'sanitize_textarea_field',
95 ),
96 'post_id' => array(
97 'required' => false,
98 'type' => 'integer',
99 ),
100 ),
101 )
102 );
103 }
104
105 /**
106 * Register routes that don't require Jetpack AI to be enabled.
107 */
108 public function register_basic_routes() {
109 register_rest_route(
110 $this->namespace,
111 $this->rest_base . '/ai-assistant-feature',
112 array(
113 array(
114 'methods' => WP_REST_Server::READABLE,
115 'callback' => array( $this, 'request_get_ai_assistance_feature' ),
116 'permission_callback' => array( 'Jetpack_AI_Helper', 'get_status_permission_check' ),
117 ),
118 )
119 );
120 }
121
122 /**
123 * Get completions for a given text.
124 *
125 * @param WP_REST_Request $request The request.
126 */
127 public function request_gpt_completion( $request ) {
128 return Jetpack_AI_Helper::get_gpt_completion( $request['content'], $request['post_id'], $request['skip_cache'] );
129 }
130
131 /**
132 * Get image generations for a given prompt.
133 *
134 * @param WP_REST_Request $request The request.
135 */
136 public function request_dalle_generation( $request ) {
137 return Jetpack_AI_Helper::get_dalle_generation( $request['prompt'], $request['post_id'] );
138 }
139
140 /**
141 * Collect and provide relevat data about the AI feature,
142 * such as the number of requests made.
143 */
144 public function request_get_ai_assistance_feature() {
145 return Jetpack_AI_Helper::get_ai_assistance_feature();
146 }
147 }
148
149 wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_AI' );
150