diff --git a/README.md b/README.md index d5d96d406..54fbe75c9 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ * [Set Up OpenAI Embeddings Language Processing](#set-up-language-processing-via-openai-embeddings) * [Set Up OpenAI Whisper Language Processing](#set-up-language-processing-via-openai-whisper) * [Set Up Azure AI Language Processing](#set-up-language-processing-via-microsoft-azure) -* [Set Up Azure AI Computer Vision Image Processing](#set-up-image-processing-via-microsoft-azure) +* [Set Up Azure AI Vision Image Processing](#set-up-image-processing-via-microsoft-azure) * [Set Up OpenAI DALL·E Image Processing](#set-up-image-processing-via-openai) -* [Set Up Azure Personalizer Recommended Content](#set-up-recommended-content-via-microsoft-azure-personalizer) +* [Set Up Azure AI Personalizer Recommended Content](#set-up-recommended-content-via-microsoft-azure-ai-personalizer) * [WP CLI Commands](#wp-cli-commands) * [FAQs](#frequently-asked-questions) * [Support](#support-level) @@ -41,16 +41,16 @@ Tap into leading cloud-based services like [OpenAI](https://openai.com/), [Micro * Generate transcripts of audio files using [OpenAI's Whisper API](https://platform.openai.com/docs/guides/speech-to-text) * 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 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)_ -* Generate image alt text, image tags, and smartly crop images using [Microsoft Azure's Computer 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 Computer Vision API](https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/) +* 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)_ +* 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/) ### Language Processing | Tagging | Recommended Content | Excerpt Generation | | :-: | :-: | :-: | -| ![Screenshot of ClassifAI post tagging](assets/img/screenshot-1.png "Example of a Block Editor post with Watson Categories, Keywords, Concepts, and Entities.") | ![Screenshot of ClassifAI recommended content](assets/img/screenshot-2.png "Example of a Recommended Content Block with Azure Personalizer.") | ![Screenshot of ClassifAI excerpt generation](assets/img/screenshot-7.png "Example of automatic excerpt generation with OpenAI.") | +| ![Screenshot of ClassifAI post tagging](assets/img/screenshot-1.png "Example of a Block Editor post with Watson Categories, Keywords, Concepts, and Entities.") | ![Screenshot of ClassifAI recommended content](assets/img/screenshot-2.png "Example of a Recommended Content Block with Azure AI Personalizer.") | ![Screenshot of ClassifAI excerpt generation](assets/img/screenshot-7.png "Example of automatic excerpt generation with OpenAI.") | | Audio Transcripts | Title Generation | Text to Speech | | :-: | :-: | :-: | @@ -68,7 +68,7 @@ Tap into leading cloud-based services like [OpenAI](https://openai.com/), [Micro * [WordPress](http://wordpress.org) 5.7+ * To utilize the NLU Language Processing functionality, you will need an active [IBM Watson](https://cloud.ibm.com/registration) account. * To utilize the ChatGPT, Embeddings, or Whisper Language Processing functionality or DALL·E Image Processing functionality, you will need an active [OpenAI](https://platform.openai.com/signup) account. -* To utilize the Computer Vision Image Processing functionality or Text to Speech Language Processing functionality, you will need an active [Microsoft Azure](https://signup.azure.com/signup) account. +* To utilize the Azure AI Vision Image Processing functionality or Text to Speech Language Processing functionality, you will need an active [Microsoft Azure](https://signup.azure.com/signup) account. ## Pricing @@ -78,11 +78,11 @@ The service that powers ClassifAI's NLU Language Processing, IBM Watson's Natura The service that powers ClassifAI's ChatGPT, Embeddings and Whisper Language Processing and DALL·E Image Processing, OpenAI, has a limited free trial and then requires a [pay per usage](https://openai.com/pricing) plan. -The service that powers ClassifAI's Computer Vision Image Processing, Microsoft Azure, has a ["free" pricing tier](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/computer-vision/) that offers 20 transactions per minute and 5,000 transactions per month. +The service that powers ClassifAI's Azure AI Vision Image Processing, Microsoft Azure, has a ["free" pricing tier](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/computer-vision/) that offers 20 transactions per minute and 5,000 transactions per month. The service that powers ClassifAI's Text to Speech Language Processing, Microsoft Azure, has a ["free" pricing tier](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/speech-services/) that offers 0.5 million characters per month. -The service that powers ClassifAI's Recommended Content, Microsoft Azure's Personalizer, has a ["free" pricing tier](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/personalizer/) that offers 50,000 transactions per month. +The service that powers ClassifAI's Recommended Content, Microsoft Azure AI Personalizer, has a ["free" pricing tier](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/personalizer/) that offers 50,000 transactions per month. ## Installation @@ -311,7 +311,7 @@ Note that [OpenAI](https://platform.openai.com/docs/guides/speech-to-text) can c ## Set Up Image Processing (via Microsoft Azure) -Note that [Computer Vision](https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/home#image-requirements) can analyze and crop images that meet the following requirements: +Note that [Azure AI Vision](https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/home#image-requirements) can analyze and crop images that meet the following requirements: - The image must be presented in JPEG, PNG, GIF, or BMP format - The file size of the image must be less than 4 megabytes (MB) - The dimensions of the image must be greater than 50 x 50 pixels @@ -320,7 +320,7 @@ Note that [Computer Vision](https://docs.microsoft.com/en-us/azure/cognitive-ser ### 1. Sign up for Azure services - [Register for a Microsoft Azure account](https://azure.microsoft.com/en-us/free/) or sign into your existing one. -- Log into your account and create a new [*Computer Vision*](https://portal.azure.com/#blade/Microsoft_Azure_Marketplace/GalleryFeaturedMenuItemBlade/selectedMenuItemId/CognitiveServices_MP/dontDiscardJourney/true/launchingContext/%7B%22source%22%3A%22Resources%20Microsoft.CognitiveServices%2Faccounts%22%7D/resetMenuId/) Service if you do not already have one. It may take a minute for your account to fully populate with the default resource group to use. +- Log into your account and create a new [*Azure AI Vision*](https://portal.azure.com/#blade/Microsoft_Azure_Marketplace/GalleryFeaturedMenuItemBlade/selectedMenuItemId/CognitiveServices_MP/dontDiscardJourney/true/launchingContext/%7B%22source%22%3A%22Resources%20Microsoft.CognitiveServices%2Faccounts%22%7D/resetMenuId/) Service if you do not already have one. It may take a minute for your account to fully populate with the default resource group to use. - Click `Keys and Endpoint` in the left hand Resource Management menu to view the `Endpoint` URL for this resource. - Click the copy icon next to `KEY 1` to copy the API Key credential for this resource. @@ -365,7 +365,7 @@ Note that [Computer Vision](https://docs.microsoft.com/en-us/azure/cognitive-ser * Once images are generated, choose one or more images to import into your media library * Choose one image to insert into the content -## Set Up Recommended Content (via Microsoft Azure Personalizer) +## Set Up Recommended Content (via Microsoft Azure AI Personalizer) 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. diff --git a/hookdocs/wp-cli.md b/hookdocs/wp-cli.md index 99e1adec8..9fc9a7409 100644 --- a/hookdocs/wp-cli.md +++ b/hookdocs/wp-cli.md @@ -238,7 +238,7 @@ The following WP-CLI commands are supported by ClassifAI: * `wp classifai image [--limit=] [--skip=] [--force]` - Directly add description "alt text" and tags to attachment(s) using Azure AI Computer Vision API. + Directly add description "alt text" and tags to attachment(s) using Azure AI Vision API. * ``: Comma delimited list of Attachment IDs to classify. @@ -256,7 +256,7 @@ The following WP-CLI commands are supported by ClassifAI: * `wp classifai crop [--limit=] [--skip=]` - Batch crop image(s) using Azure AI Computer Vision API. + Batch crop image(s) using Azure AI Vision API. * ``: Comma delimited list of Attachment IDs to crop. diff --git a/includes/Classifai/Blocks/recommended-content-block/block.json b/includes/Classifai/Blocks/recommended-content-block/block.json index 611821ec9..925350880 100644 --- a/includes/Classifai/Blocks/recommended-content-block/block.json +++ b/includes/Classifai/Blocks/recommended-content-block/block.json @@ -2,7 +2,7 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "title": "Recommended Content", - "description": "Display content recommended by Azure Personalizer", + "description": "Display content recommended by Azure AI Personalizer", "textdomain": "classifai", "name": "classifai/recommended-content-block", "category": "classifai-blocks", diff --git a/includes/Classifai/Blocks/recommended-content-block/index.js b/includes/Classifai/Blocks/recommended-content-block/index.js index 51a29d7b3..0f67973af 100644 --- a/includes/Classifai/Blocks/recommended-content-block/index.js +++ b/includes/Classifai/Blocks/recommended-content-block/index.js @@ -26,7 +26,7 @@ import { ReactComponent as icon } from '../../../../assets/img/block-icon.svg'; registerBlockType( block.name, { title: __( 'Recommended Content', 'classifai' ), description: __( - 'Display content recommended by Azure Personalizer', + 'Display content recommended by Azure AI Personalizer', 'classifai' ), edit, diff --git a/includes/Classifai/Providers/Azure/ComputerVision.php b/includes/Classifai/Providers/Azure/ComputerVision.php index 2a9555610..5fdabe5e3 100644 --- a/includes/Classifai/Providers/Azure/ComputerVision.php +++ b/includes/Classifai/Providers/Azure/ComputerVision.php @@ -31,14 +31,14 @@ class ComputerVision extends Provider { public function __construct( $service ) { parent::__construct( 'Microsoft Azure', - 'Computer Vision', + 'AI Vision', 'computer_vision', $service ); // Set the onboarding options. $this->onboarding_options = array( - 'title' => __( 'Microsoft Azure Computer Vision', 'classifai' ), + 'title' => __( 'Microsoft Azure AI Vision', 'classifai' ), 'fields' => array( 'url', 'api-key' ), 'features' => array( 'enable_image_captions' => __( 'Automatically add alt-text to images', 'classifai' ), @@ -1053,7 +1053,7 @@ public function setup_fields_sections() { 'input_type' => 'checkbox', 'default_value' => $default_settings['enable_smart_cropping'], 'description' => __( - 'ComputerVision detects and saves the most visually interesting part of your image (i.e., faces, animals, notable text).', + 'AI Vision detects and saves the most visually interesting part of your image (i.e., faces, animals, notable text).', 'classifai' ), ] diff --git a/includes/Classifai/Providers/Azure/Personalizer.php b/includes/Classifai/Providers/Azure/Personalizer.php index c094e1306..3a6775917 100644 --- a/includes/Classifai/Providers/Azure/Personalizer.php +++ b/includes/Classifai/Providers/Azure/Personalizer.php @@ -1,6 +1,6 @@ onboarding_options = array( - 'title' => __( 'Microsoft Azure Personalizer', 'classifai' ), + 'title' => __( 'Microsoft Azure AI Personalizer', 'classifai' ), 'fields' => array( 'url', 'api-key' ), 'features' => array( 'authenticated' => __( 'Recommended content block', 'classifai' ), @@ -97,7 +97,7 @@ public function setup_fields_sections() { 'description' => sprintf( wp_kses( // translators: 1 - link to create a Personalizer resource. - __( 'Azure Cognitive Service Personalizer Endpoint, create a Personalizer resource in the Azure portal to get your key and endpoint.', 'classifai' ), + __( 'Azure AI Personalizer Endpoint, create a Personalizer resource in the Azure portal to get your key and endpoint.', 'classifai' ), array( 'a' => array( 'href' => array(), @@ -119,7 +119,7 @@ public function setup_fields_sections() { 'label_for' => 'api_key', 'input_type' => 'password', 'default_value' => $default_settings['api_key'], - 'description' => __( 'Azure Cognitive Service Personalizer Key.', 'classifai' ), + 'description' => __( 'Azure AI Personalizer Key.', 'classifai' ), ] ); } @@ -310,7 +310,7 @@ function( $ele ) { if ( is_wp_error( $response ) ) { // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log - error_log( __( 'Failed to contact Azure Cognitive Service Personalizer: ', 'classifai' ) . $response->get_error_message() ); + error_log( __( 'Failed to contact Azure AI Personalizer: ', 'classifai' ) . $response->get_error_message() ); return array( 'response' => (object) array(), 'actions' => $action_ids, @@ -605,7 +605,7 @@ protected function get_string_words( $string ) { } /** - * Get Ranked action by sending request to Azure Personalizer. + * Get Ranked action by sending request to Azure AI Personalizer. * * @param array $rank_request Prepared Request data. * @return object|string diff --git a/includes/Classifai/Providers/Azure/TextToSpeech.php b/includes/Classifai/Providers/Azure/TextToSpeech.php index e7b156895..f5c60b547 100644 --- a/includes/Classifai/Providers/Azure/TextToSpeech.php +++ b/includes/Classifai/Providers/Azure/TextToSpeech.php @@ -135,7 +135,7 @@ public function register() { } /** - * Resets settings for the Personalizer provider. + * Resets settings for the TextToSpeech provider. */ public function reset_settings() { update_option( $this->get_option_name(), $this->get_default_settings() ); diff --git a/includes/Classifai/Services/ImageProcessing.php b/includes/Classifai/Services/ImageProcessing.php index f0ec072b4..39d314178 100644 --- a/includes/Classifai/Services/ImageProcessing.php +++ b/includes/Classifai/Services/ImageProcessing.php @@ -51,7 +51,7 @@ public function enqueue_media_scripts() { true ); - $provider = find_provider_class( $this->provider_classes ?? [], 'Computer Vision' ); + $provider = find_provider_class( $this->provider_classes ?? [], 'AI Vision' ); if ( ! is_wp_error( $provider ) ) { wp_add_inline_script( 'classifai-media-script', @@ -236,7 +236,7 @@ public function computer_vision_endpoint_callback( $request ) { } // Find the right provider class. - $provider = find_provider_class( $this->provider_classes ?? [], 'Computer Vision' ); + $provider = find_provider_class( $this->provider_classes ?? [], 'AI Vision' ); // Ensure we have a provider class. Should never happen but :shrug: if ( is_wp_error( $provider ) ) { @@ -273,7 +273,7 @@ public function computer_vision_endpoint_permissions_check( WP_REST_Request $req return false; } - $settings = \Classifai\get_plugin_settings( 'image_processing', 'Computer Vision' ); + $settings = \Classifai\get_plugin_settings( 'image_processing', 'AI Vision' ); // For the image-tags route, ensure the taxonomy is valid and the user has permission to assign terms. if ( 'image-tags' === $route_to_call ) { diff --git a/includes/Classifai/Services/Personalizer.php b/includes/Classifai/Services/Personalizer.php index 67e187733..f19474fb4 100644 --- a/includes/Classifai/Services/Personalizer.php +++ b/includes/Classifai/Services/Personalizer.php @@ -69,7 +69,7 @@ public function ajax_render_recommended_content() { } } - $provider = find_provider_class( $this->provider_classes ?? [], 'Personalizer' ); + $provider = find_provider_class( $this->provider_classes ?? [], 'AI Personalizer' ); if ( ! is_wp_error( $provider ) ) { // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped @@ -146,7 +146,7 @@ public function reward_endpoint_callback( WP_REST_Request $request ) { } // Find the right provider class. - $provider = find_provider_class( $this->provider_classes ?? [], 'Personalizer' ); + $provider = find_provider_class( $this->provider_classes ?? [], 'AI Personalizer' ); // Ensure we have a provider class. Should never happen but :shrug: if ( is_wp_error( $provider ) ) { diff --git a/readme.txt b/readme.txt index a67d630ab..831b5cfbf 100644 --- a/readme.txt +++ b/readme.txt @@ -24,16 +24,16 @@ Tap into leading cloud-based services like [OpenAI](https://openai.com/), [Micro * Generate transcripts of audio files using [OpenAI's Whisper API](https://platform.openai.com/docs/guides/speech-to-text) * 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 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)_ -* Generate image alt text, image tags, and smartly crop images using [Microsoft Azure's Computer 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 Computer Vision API](https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/) +* 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)_ +* 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/) **Requirements** * To utilize the NLU Language Processing functionality, you will need an active [IBM Watson](https://cloud.ibm.com/registration) account. * To utilize the ChatGPT, Embeddings, or Whisper Language Processing functionality or DALL·E Image Processing functionality, you will need an active [OpenAI](https://platform.openai.com/signup) account. -* To utilize the Computer Vision Image Processing functionality or Text to Speech Language Processing functionality, you will need an active [Microsoft Azure](https://signup.azure.com/signup) account. +* To utilize the Azure AI Vision Image Processing functionality or Text to Speech Language Processing functionality, you will need an active [Microsoft Azure](https://signup.azure.com/signup) account. == Upgrade Notice == diff --git a/tests/cypress/integration/image-processing.test.js b/tests/cypress/integration/image-processing.test.js index 854f6b4a7..e4cdc7bce 100644 --- a/tests/cypress/integration/image-processing.test.js +++ b/tests/cypress/integration/image-processing.test.js @@ -6,7 +6,7 @@ describe('Image processing Tests', () => { let imageEditLink = ''; let mediaModelLink = ''; - it('Can save Computer Vision "Image Processing" settings', () => { + it('Can save Azure AI Vision "Image Processing" settings', () => { cy.visit('/wp-admin/tools.php?page=classifai&tab=image_processing'); cy.get('#url') @@ -23,7 +23,7 @@ describe('Image processing Tests', () => { cy.get('.notice').contains('Settings saved.'); }); - it('Can see Computer Vision Image processing actions on edit media page and verify Generated data.', () => { + it('Can see Azure AI Vision Image processing actions on edit media page and verify Generated data.', () => { cy.visit('/wp-admin/media-new.php'); cy.get('#plupload-upload-ui').should('exist'); cy.get('#plupload-upload-ui input[type=file]').attachFile( @@ -72,7 +72,7 @@ describe('Image processing Tests', () => { }); }); - it('Can see Computer Vision Image processing actions on media model', () => { + it('Can see Azure AI Vision Image processing actions on media model', () => { const imageId = imageEditLink.split('post=')[1]?.split('&')[0]; mediaModelLink = `wp-admin/upload.php?item=${imageId}`; cy.visit(mediaModelLink); @@ -85,7 +85,7 @@ describe('Image processing Tests', () => { cy.get('#classifai-rescan-smart-crop').should('exist'); }); - it('Can disable Computer Vision Image processing features', () => { + it('Can disable Azure AI Vision Image processing features', () => { cy.visit('/wp-admin/tools.php?page=classifai&tab=image_processing'); // Disable features