Releases: 10up/classifai
3.0.1
Fixed
- Ensure we only pass in array data to our
merge_settings
method (props @dkotter, @ajaxthemestudios, @peterwilsoncc via #733). - Handle scenario where non-array data is passed into our descriptive text generator feature (props @dkotter, @ajaxthemestudios, @peterwilsoncc via #733).
- Address a fatal error that occurs if
composer install
hasn't been run (props @dkotter, @peterwilsoncc via #740). - Ensure we properly account for
null
values when merging our saved settings with our default settings (props @dkotter, @peterwilsoncc via #741).
New Contributors
- @ajaxthemestudios made their first contribution in #733
Full Changelog: 3.0.0...3.0.1
View closed items in the milestone.
3.0.0
Note that this is a major release of ClassifAI that restructures most of the codebase and will have some breaking changes. If you're extending ClassifAI in any way, please ensure you fully test those integrations prior to running this update on production. For more details on what is changing, see the migration guide.
Due to this restructuring, settings are now stored slightly differently. For any existing ClassifAI users, these settings should automatically be migrated but you'll want to verify all of your settings and resave each of them in order to ensure they are set properly.
This release also updates the Azure AI Vision API to v3.2 from v3.0. We recommend changing your threshold for the Descriptive Text Generator Feature to be around 55%, down from the previous recommendation of 75%.
Added
- New Moderation Feature that utilizes the OpenAI Moderation API to moderate comments (props @kirtangajjar, @dkotter, @Sidsector9 via #531).
- Added the option to use Google's Gemini API as a Provider for the Title Generation, Excerpt Generation and Content Resizing Features (props @iamdharmesh, @dkotter via #700).
- Added the option to use Azure OpenAI as a Provider for the Title Generation, Excerpt Generation and Content Resizing Features (props @dkotter, @jeffpaul, @iamdharmesh via #716).
- Role and user-based access control for all Features (props @iamdharmesh, @Sidsector9 via #635).
- Ability to preview which terms will be added before they get added when using the Embeddings provider (props @dkotter, @iamdharmesh via #709).
- Show error message if generating excerpts or titles fails in the Classic Editor (props @dkotter, @faisal-alvi via #688).
- Tool to automatically migrate settings from the old settings structure to the new feature-first settings structure (props @Sidsector9, @iamdharmesh, @qasumitbagthariya, @dkotter via #711).
- Migration guide for the feature-first refactoring (props @iamdharmesh, @dkotter via #726).
- Repo Automator GitHub Action to automate repo operations (props @iamdharmesh, @dkotter via #681).
Changed
- Major refactoring of the plugin to a feature-first architecture (props @Sidsector9, @dkotter via #611).
- Update the Azure AI Vision Image Analyze API from v3.0 to v3.2 and the Azure AI Vision Smart Cropping API from v3.1 to v3.2. Note that we recommend lowering the threshold values for the Descriptive Text Generator Feature to 55% for best results (props @kmgalanakis, @dkotter, @sksaju, @iamdharmesh via #559).
- Update from using DALL·E 2 to using DALL·E 3 in our Image Generation Feature (props @dkotter, @jeffpaul, @iamdharmesh via #717).
- Refactor ClassifAI onboarding to work with the new feature-first refactoring (props @iamdharmesh, @Sidsector9 via #642).
- Ensure the Classification functionality works the same for all Providers (props @dkotter, @iamdharmesh via #709).
- Introduce a filter to add new arguments to the Image Generation REST route, instead of registering that route twice (props @iamdharmesh, @dkotter via #727).
- If on a multisite install, when handling user access based on role, if a Super Admin does not have a specific role on a site, treat that user as an administrator (props @dkotter, @jeffpaul, @gsarig, @iamdharmesh via #689).
- Remove the "Enable role-based access" and "Enable user-based access" settings options and instead set those to be enabled by default (props @iamdharmesh, @dkotter, @jeffpaul via #692).
- Update minimum node version to 20 (props @Sidsector9, @dkotter via #722).
- Updated E2E tests to work with the new feature-first refactoring (props @Sidsector9, @dkotter via #653).
Fixed
- Ensure the classification popup works after feature-first refactoring (props @faisal-alvi, @dkotter, @Sidsector9 via #634).
- Ensure we only run image updates once (props @dkotter, @Sidsector9, @sksaju via #677).
- Ensure the Classification preview works as expected after feature-first refactoring (props @dkotter, @QAharshalkadu, @Sidsector9 via #679).
- Ensure all
WP_CLI
commands work after the feature-first refactoring (props @Sidsector9, @dkotter via #682). - Ensure the jQuery UI Dialog CSS is loaded properly (props @dkotter, @faisal-alvi via #687).
- Ensure the classification button has proper bottom spacing (props @dkotter, @QAharshalkadu, @faisal-alvi via #694).
- Load the dashicon font when the Text to Speech block is used to ensure icons display (props @dkotter, @QAharshalkadu, @iamdharmesh via #695).
- Ensure the Text to Speech block is rendered for non-logged in users (props @dkotter, @QAharshalkadu, @iamdharmesh via #695).
- Ensure the IBM Watson NLU credentials toggle link works properly in the ClassifAI onboarding (props @iamdharmesh, @dkotter via #697).
- Ensure the connection status shows properly in the ClassifAI onboarding (props @Sidsector9, @QAharshalkadu, @dkotter via #702).
- Ensure the "Extract text from PDF" row action works properly in the media list table view (props @iamdharmesh, @qasumitbagthariya, @dkotter via #706).
- Fix fatal error if both the Classification Feature and Moderation Features are active (props @dkotter, @QAharshalkadu, @iamdharmesh via #709).
- Ensure the stand-alone Generate Image page works if the Media Library is loaded in list mode (props @dkotter, @qasumitbagthariya, @Sidsector9 via #712).
Removed
- Subscriber from the list of allowed roles (props @dkotter, @ankitguptaindia, @Sidsector9 via #690).
AccessControl
class as it is no longer in use after the feature-first refactoring (props [@iamdharmes...
2.5.1
Changed
- Switch from using the Completions API to the Models API to verify credentials (props @dkotter, @jeffpaul, @iamdharmesh via #654).
- Update
10up/phpcs-composer
to version 3.0.0 (props @dkotter, @faisal-alvi via #641).
Fixed
- Ensure that the "Classify" row/bulk action is visible only to users who have access to it (props @iamdharmesh, @ankitguptaindia, @dkotter via #647).
- Check for the
default
array key before we access it (props @dkotter, @Sidsector9 via #650). - Address all new PHPCS issues (props @dkotter, @faisal-alvi via #641).
Security
- Bump
tj-actions/changed-files
from 37 to 41 (props @dependabot[bot], @peterwilsoncc via #649). - Bump
follow-redirects
from 1.15.3 to 1.15.4 (props @dependabot[bot], @dkotter via #657).
New Contributors
- @ankitguptaindia made their first contribution in #647
Full Changelog: 2.5.0...2.5.1
View closed items in the milestone.
2.5.0
Note that this release bumps the WordPress minimum from 5.8 to 6.1.
Added
- Ability to control access to each feature based on user role or by individual users, allowing users to opt out of features they don't want (props @iamdharmesh, @berkod, @dkotter via #606).
- New manual classification mode that allows you to easily select which AI suggested terms you want to add (props @faisal-alvi, @berkod, @dkotter via #609).
- Enable/disable toggle option for the "Classify content", "Text to Speech" and "Recommended content" features (props @iamdharmesh, @berkod, @dkotter via #614).
- New setting option for the IBM Watson classification feature to allow you to classify content within existing terms only (props @iamdharmesh, @jeffpaul, @faisal-alvi, @berkod, @dkotter via #620).
- Threshold settings added for taxonomies in the OpenAI Embeddings classification feature (props @faisal-alvi, @timatron, @berkod, @dkotter via #621).
- Ability to preview the suggested terms for the OpenAI Embeddings classification feature (props @faisal-alvi, @jeffpaul, @berkod, @dkotter via #622).
- Post autosave when a generated title is used or when a paragraph of text is resized to allow for Revisions-based rollbacks (props @iamdharmesh, @berkod, @dkotter via #626).
Changed
- Bump WordPress minimum from 5.8 to 6.1 (props @faisal-alvi, @berkod, @dkotter via #609).
- Increase our max content length for any interactions with ChatGPT (props @dkotter, @ravinderk via #617).
Fixed
- Ensure that when using the manual classification mode, all terms will be considered, not just the first 100 (props @faisal-alvi, @dkotter via #638).
- Ensure that the ClassifAI panel only appears when the related feature is enabled (props @iamdharmesh, @dkotter via #628).
- More accurate token counts when trimming content (props @dkotter, @faisal-alvi via #616).
- Ensure that updating the "Recommended Content Block" settings works correctly (props @iamdharmesh, @faisal-alvi, @dkotter via #625).
Security
- Bump
axios
from 0.25.0 to 1.6.2 and@wordpress/scripts
from 26.6.0 to 26.18.0 (props @dependabot[bot], @dkotter via #629).
New Contributors
Full Changelog: 2.4.0...2.5.0
View closed items in the milestone.
2.4.0
Added
- Support for modifying prompts from the admin settings page (props @iamdharmesh, @jeffpaul, @ravinderk, @dkotter via #594).
- Support for setting multiple prompts for each feature that supports prompts (props @ravinderk, @iamdharmesh, @berkod, @dkotter via #602).
- New filters added to allow developer control over all requests made to OpenAI (props @faisal-alvi, @jeffpaul, @berkod, @dkotter via #604).
- Documentation updates in regards to data retention (props @jeffpaul, @dkotter via #582).
- Example snippet to make taxonomies private to the developer docs (props @theskinnyghost, @dkotter via #583).
- GitHub Action summary for Cypress E2E checks (props @faisal-alvi, @iamdharmesh, @jeffpaul, @dkotter via #578).
Changed
- Ensure the default prompts in ClassifAI show as the first prompt in our settings and cannot be removed or edited (props @dkotter, @jeffpaul, @ravinderk via #610).
- Fix multiple typos across the codebase (props @parikshit-adhikari, @shresthasurav, @jeffpaul via #603, #605).
- Use
get_asset_info
across the enqueuing of all our dependencies (props @ravinderk, @jeffpaul, @berkod, @dkotter via #608). - Bump WordPress "tested up to" version to 6.4 (props @dkotter via #613).
Fixed
- Ensure all hooks show in our documentation (props @faisal-alvi, @jeffpaul, @berkod, @dkotter via #604).
Security
- Bump
@cypress/request
from 2.88.12 to 3.0.0 andcypress
from 12.14.0 to 13.1.0 (props @dependabot[bot], @dkotter via #576). - Bump
postcss
from 8.4.24 to 8.4.31 (props @dependabot[bot], @dkotter via #584). - Bump
@babel/traverse
from 7.22.4 to 7.23.2 (props @dependabot[bot], @dkotter via #601).
New Contributors
- @theskinnyghost made their first contribution in #583
- @berkod made their first contribution in #602
- @parikshit-adhikari made their first contribution in #603
- @shresthasurav made their first contribution in #605
Full Changelog: 2.3.0...2.4.0
View closed items in the milestone.
2.3.0
Note that this release bumps the WordPress minimum from 5.7 to 5.8.
Added
- Ability to resize (expand or condense) text content using OpenAI's ChatGPT API (props @Sidsector9, @dkotter, @jeffpaul, @jakemgold via #532).
- Ability to generate excerpts when using the Classic Editor (props @jamesmorrison, @ravinderk, @dkotter via #491).
- Ability to generate images directly in the Media Library, instead of at a post level, by going to
Media > Generate Images
(props @phpbits, @dkotter via #524). - Ability to generate images within the Inserter Media tab. As of WordPress 6.3, this requires the latest version of the Gutenberg plugin to work. Also note that image generation requests are sent as soon as you are done typing so you may end up making multiple requests as you type out your prompt (resulting in charges for each request), depending on the typing speed (props @dkotter, @jeffpaul, @peterwilsoncc via #535).
- New display option to control the display of the Text-to-Speech audio controls on the front-end (props @joshuaabenazer, @dkotter via #549).
- Initial integration with the new Command Palette API (props @dkotter, @iamdharmesh, @ravinderk via #536).
- New
POST
endpoints for title and excerpt generation (props @phpbits, @dkotter via #525). - New filter,
classifai_chatgpt_allowed_roles
, to allow ChatGPT image role settings to be overridden (props @bjorn2404, @phpbits, @dkotter via #459). - New filter,
classifai_openai_dalle_allowed_image_roles
, to allow DALL·E image role settings to be overridden (props @bjorn2404, @phpbits, @dkotter via #459). - New filter,
classifai_openai_chatgpt_{$feature}
, to allow granular access control for ChatGPT title and excerpt generation (props @bjorn2404, @phpbits, @dkotter via #459). - New filter,
classifai_openai_dalle_enable_image_gen
, to allow granular access control for DALL·E image generation (props @bjorn2404, @phpbits, @dkotter via #459).
Changed
- Bump WordPress minimum from 5.7 to 5.8 (props @Sidsector9 via #532).
- Bump WordPress "tested up to" version to 6.3 (props @dkotter, @ravinderk via #556).
- Utilize the new
POST
endpoints for title and excerpt generation, ensuring most recent content is always used (props @phpbits, @dkotter via #525). - Update the IBM Watson NLU API to the
2022-08-10
version (props @dkotter, @ravinderk via #543). - Update the prompt we send to OpenAI that is used to generate excerpts to try and ensure the excerpts generated pair well with the title of the content (props @dkotter, @Sidsector9 via #544).
- Update our title generation prompt to use a
system
message (props @dkotter, @Sidsector9 via #545). - Better error handling for environments that don't match our minimum PHP version (props @rahulsprajapati, @dkotter via #546).
- Modify the audio generation process for the TTS feature. Audio generation is enabled by default but will be disabled automatically once audio has been generated (props @joshuaabenazer, @dkotter via #549).
- Upgrade the Plugin Update Checker library to from 4.13 to 5.1 (props @dkotter, @ravinderk via #555).
- Update the references of the renamed Computer Vision API to Azure AI Vision (props @kmgalanakis, @dkotter via #560).
- Update the Release GitHub Action workflow files to fix an issue where release archives were not being attached (props @iamdharmesh, @dkotter via #565).
Fixed
- Ensure we define a class property before using it to avoid PHP deprecation notices (props @dkotter, @ankitguptaindia, @Sidsector9 via #548).
- Prevent Text-to-Speech audio markup leakage into places using excerpts (like archives) (props @joshuaabenazer, @dkotter via #558).
- Make sure our E2E tests work properly on WordPress 6.3 (props @dkotter, @iamdharmesh via #562).
- Add a longer delay around image generation in the Media Inserter (props @Sidsector9, @dkotter via #569).
Security
- Bump
word-wrap
from 1.2.3 to 1.2.4 (props @dependabot[bot] via #542). - Bump
tough-cookie
from 2.5.0 to 4.1.3 and@cypress/request
from 2.88.11 to 2.88.12 (props @dependabot[bot] via #563).
New Contributors
- @bjorn2404 made their first contribution in #459
- @kmgalanakis made their first contribution in #560
Full Changelog: 2.2.3...2.3.0
View closed items in the milestone.
2.2.3
Added
- Support post classification via OpenAI Embeddings in the Classic Editor (props @phpbits, @dkotter via #515).
- Support Text-to-Speech functionality in the Classic Editor (props @dkotter, @iamdharmesh via #518).
- Custom
WP-CLI
command,transcribe_audio
, to generate audio transcriptions in bulk (props @dkotter, @Sidsector9 via #514). - Custom
WP-CLI
command,generate_excerpt
, to generate excerpts in bulk (props @dkotter, @iamdharmesh via #516). - Custom
WP-CLI
command,embeddings
, to classify posts via OpenAI Embeddings in bulk (props @phpbits, @dkotter via #521). - Ability to generate excerpts in bulk using the
Bulk actions
dropdown (props @dkotter, @Sidsector9 via #523). - Ability to generate excerpts on an individual item from the All Posts screen (props @dkotter, @Sidsector9 via #523).
- New filter,
classifai_pre_render_post_audio_controls
, that provides ability to override Text-to-Speech audio player controls markup (props @joshuaabenazer, @dkotter via #528). - Provide sample copy that can be added to a site's Privacy Policy, letting site visitors know AI tools are in use (props @dkotter, @jeffpaul via #529).
Changed
- Add singular labels when a single image is selected for generation (props @jamesmorrison, @dkotter via #482).
Fixed
- Ensure we don't throw any JS errors in our image generation file (props @dkotter, @ravinderk via #522).
- Update Text-to-Speech helper text (props @dkotter, @jeffpaul via #519).
Full Changelog: 2.2.2...2.2.3
View closed items in the milestone.
2.2.2
Added
- Support for generating post titles in the Classic Editor using OpenAI's ChatGPT API (props @Sidsector9, @dkotter via #506).
- New utility method to retrieve all post statuses (props @Sidsector9, @dkotter via #507).
Changed
- Optimized calls to the Microsoft Azure Text to Speech API (props @joshuaabenazer, @ravinderk, @dkotter via #487).
- When the Text to Speech option is toggled off, hide the Text to Speech audio button on the single post level (props @joshuaabenazer, @ravinderk, @dkotter via #494).
- Update instructions on setting the proper endpoint URL for Azure Text to Speech (props @dkotter, @ocean90 via #512).
Fixed
- Ensure any edits made to generated titles persist when that title is inserted (props @dkotter, @Sidsector9 via #509).
- Ensure we show all post statuses in our settings instead of just the core post ones (props @Sidsector9, @dkotter via #507).
New Contributors
- @joshuaabenazer made their first contribution in #487
- @ocean90 made their first contribution in #512
Full Changelog: 2.2.1...2.2.2
View closed items in the milestone.
2.2.1
Added
- Ability to generate images in the Classic Editor (props @dkotter, @ravinderk via #471).
- Ability to trigger Text-to-Speech generation in bulk (props @dkotter, @ravinderk via #477).
- Ability to trigger Text-to-Speech generation on an individual item from the post lists screen (props @dkotter, @ravinderk via #477).
- Custom
WP-CLI
command,text_to_speech
, that can be used to generate Text-to-Speech data in bulk (props @dkotter, @ravinderk via #478).
Changed
- Tweak the prompt that is used to generate excerpts (props @dkotter, @ravinderk via #468).
- Update the Dependency Review GitHub Action (props @jeffpaul, @dkotter via #464).
Fixed
- Resolve formatting issues in javascript files (props @ravinderk, @dkotter via #461).
- Correctly add terms to posts generated by Watson content classifiers (props @ravinderk, @iamdharmesh, @dkotter via #462).
- Ensure we properly output data on the Site Health screen without causing errors (props @dkotter, @ravinderk via #466).
- Ensure the prompt we send to DALL·E never exceeds 1000 characters (props @dkotter, @ravinderk via #467).
- Ensure quotes aren't added around generated excerpts (props @dkotter, @ravinderk via #468).
- Remove extra slash from asset URLs (props @dkotter, @ravinderk via #469).
- Add proper docblocks to all custom hooks to ensure those show properly in our documentation site (props @dkotter, @jeffpaul via #470).
Security
- Bumped various dependencies (props @jeffpaul, @dkotter, @ravinderk via #476).
- Bump
atob
from 1.1.3 to 2.1.2 andsvg-react-loader
from 0.4.0 to 0.4.6 (props @dependabot[bot] via #481).
Full Changelog: 2.2.0...2.2.1
View closed items in the milestone.
2.2.0
Added
- 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 (props @Sidsector9, @iamdharmesh, @ravinderk, @jeffpaul, @dkotter, @pixeldevsio via #403).
- Classify content into existing taxonomy structure using OpenAI's Embeddings API (props @dkotter, @iamdharmesh, @Sidsector9, @jeffpaul via #437).
- Create transcripts of audio files using OpenAI's Whisper API (props @dkotter, @iamdharmesh via #451).
- Generate SEO-friendly titles using OpenAI's ChatGPT API (props @dkotter, @iamdharmesh, @jeffpaul via #452).
Changed
- Standardize on how we determine if a Provider is configured (props @dkotter, @iamdharmesh, @benlk via #455).
Fixed
- Avoid extra API requests to the IBM Watson NLU endpoint (props @dkotter, @iamdharmesh, @benlk via #455).
- Ensure the
{$this->menu_slug}_providers
filter works as expected when used to remove Providers (props @dkotter, @iamdharmesh via #456).
New Contributors
- @pixeldevsio made their first contribution in #403
Full Changelog: 2.1.0...2.2.0
View closed items in the milestone.