diff --git a/README.md b/README.md index 963f13614..12bdfc83d 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Tap into leading cloud-based services like [OpenAI](https://openai.com/), [Micro * Moderate incoming comments for sensitive content using [OpenAI's Moderation API](https://platform.openai.com/docs/guides/moderation) * Convert text content into audio and output a "read-to-me" feature on the front-end to play this audio using [Microsoft Azure's Text to Speech API](https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/text-to-speech) * Classify post content using [IBM Watson's Natural Language Understanding API](https://www.ibm.com/watson/services/natural-language-understanding/) and [OpenAI's Embedding API](https://platform.openai.com/docs/guides/embeddings) -* BETA: Recommend content based on overall site traffic via [Microsoft Azure's AI Personalizer API](https://azure.microsoft.com/en-us/services/cognitive-services/personalizer/) _(note that we're gathering feedback on this feature and may significantly iterate depending on community input)_ +* BETA: Recommend content based on overall site traffic via [Microsoft Azure's AI Personalizer API](https://azure.microsoft.com/en-us/services/cognitive-services/personalizer/) *(note that this service has been [deprecated by Microsoft](https://learn.microsoft.com/en-us/azure/ai-services/personalizer/) and as such, will no longer work. We are looking to replace this with a new provider to maintain the same functionality (see [issue#392](https://github.com/10up/classifai/issues/392))* * Generate image alt text, image tags, and smartly crop images using [Microsoft Azure's AI Vision API](https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/) * Scan images and PDF files for embedded text and save for use in post meta using [Microsoft Azure's AI Vision API](https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/) * Bulk classify content with [WP-CLI](https://wp-cli.org/) @@ -393,6 +393,8 @@ Note that [Azure AI Vision](https://docs.microsoft.com/en-us/azure/cognitive-ser ## Set Up Recommended Content (via Microsoft Azure AI Personalizer) +Azure AI Personalizer has been retired by Microsoft [as of September 2023](https://learn.microsoft.com/en-us/azure/ai-services/personalizer/). The service will continue to work until 2026 but Personalizer resources can no longer be created. As such, consider this provider deprecated and be aware that we will be removing this in the near future. We are hoping to replace with a new provider to maintain the same functionality (see [issue#392](https://github.com/10up/classifai/issues/392)). + Note that [Personalizer](https://azure.microsoft.com/en-us/services/cognitive-services/personalizer/) requires sufficient data volume to enable Personalizer to learn. In general, we recommend a minimum of ~1,000 events per day to ensure Personalizer learns effectively. If Personalizer doesn't receive sufficient data, the service takes longer to determine the best actions. ### 1. Sign up for Azure services diff --git a/includes/Classifai/Features/RecommendedContent.php b/includes/Classifai/Features/RecommendedContent.php index 35a7e5a01..9cb123f0f 100644 --- a/includes/Classifai/Features/RecommendedContent.php +++ b/includes/Classifai/Features/RecommendedContent.php @@ -27,7 +27,7 @@ public function __construct() { // Contains just the providers this feature supports. $this->supported_providers = [ - PersonalizerProvider::ID => __( 'Microsoft AI Personalizer', 'classifai' ), + PersonalizerProvider::ID => __( 'Microsoft Azure AI Personalizer', 'classifai' ), ]; } diff --git a/includes/Classifai/Providers/Azure/Personalizer.php b/includes/Classifai/Providers/Azure/Personalizer.php index 718275fbd..da6663141 100644 --- a/includes/Classifai/Providers/Azure/Personalizer.php +++ b/includes/Classifai/Providers/Azure/Personalizer.php @@ -47,6 +47,8 @@ public function __construct( $feature_instance = null ) { * Register the functionality. */ public function register() { + add_action( 'classifai_before_feature_nav', [ $this, 'show_deprecation_message' ] ); + if ( ( new RecommendedContent() )->is_feature_enabled() ) { add_action( 'wp_ajax_classifai_render_recommended_content', [ $this, 'ajax_render_recommended_content' ] ); add_action( 'wp_ajax_nopriv_classifai_render_recommended_content', [ $this, 'ajax_render_recommended_content' ] ); @@ -55,6 +57,41 @@ public function register() { } } + /** + * Show a deprecation message for the provider. + * + * @param string $active_feature Feature currently shown. + */ + public function show_deprecation_message( string $active_feature ) { + if ( 'feature_recommended_content' !== $active_feature ) { + return; + } + ?> + +
+

+ As of September 2023, new Personalizer resources can no longer be created in Azure. This is currently the only provider available for the Recommended Content feature and as such, this feature will not work unless you had previously created a Personalizer resource. The Azure AI Personalizer provider is deprecated and will be removed in a future release. We hope to replace this provider with another one in a coming release to continue to support this feature (see issue#392).', 'classifai' ), + array( + 'a' => array( + 'href' => array(), + 'target' => array(), + ), + ) + ), + 'https://learn.microsoft.com/en-us/azure/ai-services/personalizer/', + 'https://github.com/10up/classifai/issues/392' + ) + ?> +

+
+ + 'large-text classifai-provider-field hidden provider-scope-' . static::ID, // Important to add this. 'description' => sprintf( wp_kses( - // translators: 1 - link to create a Personalizer resource. - __( 'Azure AI Personalizer Endpoint, create a Personalizer resource in the Azure portal to get your key and endpoint.', 'classifai' ), + // translators: 1 - link to create a Personalizer resource; 2 - link to GitHub issue. + __( 'Azure AI Personalizer Endpoint; create a Personalizer resource in the Azure portal to get your key and endpoint. Note that as of September 2023, it is no longer possible to create this resource. Previously created Personalizer resources can still be used.', 'classifai' ), array( 'a' => array( 'href' => array(), @@ -84,7 +121,8 @@ public function render_provider_fields() { ), ) ), - esc_url( 'https://portal.azure.com/#create/Microsoft.CognitiveServicesPersonalizer' ) + 'https://portal.azure.com/#create/Microsoft.CognitiveServicesPersonalizer', + 'https://learn.microsoft.com/en-us/azure/ai-services/personalizer/' ), ] ); diff --git a/includes/Classifai/Services/Service.php b/includes/Classifai/Services/Service.php index 2fe66e5a5..95d34356d 100644 --- a/includes/Classifai/Services/Service.php +++ b/includes/Classifai/Services/Service.php @@ -149,6 +149,7 @@ public function render_settings_page() { +

display_name ); ?>

@@ -160,6 +161,18 @@ public function render_settings_page() { } ?> + +