Releases: 10up/classifai
3.1.1
Changed
- Switch from using the
gpt-3.5-turbo
model to the newgpt-4o-mini
model for any OpenAI text generation requests. Increase our context window from 16,385 tokens to 128,000 tokens (props @dkotter, @iamdharmesh via #785).
Fixed
- Update a image URLs that no longer exist, fixing an issue with authentication in the Azure AI Vision Provider (props @faisal-alvi, @jamespstyles, @dkotter via #787).
- Ensure we show a proper error notice if the Azure AI Vision Provider fails to authenticate (props @faisal-alvi, @jamespstyles, @dkotter via #787).
New Contributors
- @jamespstyles made their first contribution in #787
Full Changelog: 3.1.0...3.1.1
View closed items in the milestone.
3.1.0
Added
- Amazon Polly as a Provider for the Text-to-Speech Feature (props @iamdharmesh, @jeffpaul, @dkotter via #734).
- OpenAI as a Provider for the Text-to-Speech Feature (props @Sidsector9, @iamdharmesh, @dkotter via #747).
- Azure OpenAI Embeddings as a Provider for the Classification Feature (props @iamdharmesh, @dkotter via #764).
- "Generate image" button to media upload components (props @Sidsector9, @jeffpaul, @dkotter via #749).
- Feature to refresh Content Resizing results without closing the results modal (props @Sidsector9, @jeffpaul, @faisal-alvi, @dkotter via #774).
- Filter hook
classifai_ms_computer_vision_scan_image_timeout
to increase image processing timeout (props @Sidsector9, @QAharshalkadu, @dkotter via #754). - New filter
classifai_feature_classification_pre_save_results
that allows you to filter the classification results before they're saved, either modifying those results or running custom save routines (props @dkotter, @iamdharmesh via #762). - New filters allowing the ability to change some of the OpenAI Embedding variables, like model or dimensions (props @dkotter, @iamdharmesh via #758).
- New filter
classifai_normalize_content_before_strip_all_tags
that allows you to filter the content before stripping all tags (props @CacheMeOwside, @dkotter via #775). - New filter
classifai_openai_embeddings_max_terms
to change the number of terms to process per job during Embeddings classification (props @Sidsector9, @dkotter via #779). - Higher timeout for Azure OpenAI Embedding requests (props @dkotter, @iamdharmesh via #776).
- "Testing" section in the
CONTRIBUTING.md
file (props @kmgalanakis, @jeffpaul via #763).
Changed
- Update from the
text-embedding-ada-002
to thetext-embedding-3-small
model for the OpenAI Embeddings Provider. Note this requires regenerating all existing embeddings for comparisons to work properly. Also worth mentioning you'll want to check your threshold settings to ensure that works well with these changes, as we're seeing lower threshold scores with this new model (props @dkotter, @iamdharmesh via #758). - When generating embeddings, ensure we chunk our content down and reduce our vector dimensions to 512 (props @dkotter, @iamdharmesh via #758).
- Increase the amount of terms we consider when running comparisons using the OpenAI Embeddings Provider from 500 to 5000 (props @dkotter, @iamdharmesh via #758).
- Allow the Embeddings Provider to be used by Features other than Classification (props @iamdharmesh, @dkotter via #766).
- Hide the Provider's configuration help text when the Provider is already configured (props @kmgalanakis, @Sidsector9, @dkotter via #770).
Select
label is changed toReplace
within Content Resizing suggestions modal (props @Sidsector9, @jeffpaul, @faisal-alvi, @dkotter via #774).- Content Resizing modal title is updated from static to dynamic depending on the type of resizing (props @Sidsector9, @jeffpaul, @faisal-alvi, @dkotter via #774).
- Add the ability to send chunked content in a single request to the Embedding API (props @dkotter, @iamdharmesh via #776).
- Embeddings classification now uses background processing to improve performance. This is done by including the Action Scheduler package (props @Sidsector9, @dkotter via #779).
- Bump WordPress "tested up to" version to 6.6 (props @qasumitbagthariya, @dkotter, @jeffpaul via #751).
- Replaced
lee-dohm/no-response
withactions/stale
to help with closing no-response/stale issues (props @jeffpaul, @dkotter via #751). - Update the
@10up/cypress-wp-utils
package to 0.3.0 (props @dkotter, @jeffpaul via #760).
Fixed
- Timeout issue with processing
.png
images of large file sizes (props @Sidsector9, @QAharshalkadu, @dkotter via #754). - Ensure the classification admin preview functionality loads for non built-in Providers (props @dkotter, @iamdharmesh via #762).
- Fix some undefined PHP variable warnings when running automatic classification (props @dkotter, @iamdharmesh via #758).
- Ensure the
Excerpt length
setting for the Excerpt Generation Feature can be changed (props @dkotter, @Sidsector9 via #767). - Strip off superscript and subscript tags in content for text to speech generation (props @CacheMeOwside, @Sidsector9, @dkotter via #775).
- Ensure we chunk content correctly, keeping each chunk roughly the same size (props @dkotter, @iamdharmesh via #776).
Security
- Bump
follow-redirects
from 1.15.5 to 1.15.6 andjsdoc
from 3.6.11 to 4.0.2 (props @dependabot[bot], @faisal-alvi, @dkotter via #750). - Bump
webpack-dev-middleware
from 5.3.3 to 5.3.4 andtaffydb
from 2.6.2 to 2.7.3 (props @dependabot[bot], @faisal-alvi via #752). - Bump
express
from 4.18.2 to 4.19.2 (props @dependabot[bot], @faisal-alvi via #753). - Bump
braces
from 3.0.2 to 3.0.3 andws
from 7.5.9 to 7.5.10 (props @dependabot[bot], @dkotter via #780).
New Contributors
- @CacheMeOwside made their first contribution in #775
Full Changelog: 3.0.1...3.1.0
View closed items in the milestone.
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.