Get started

Changelog

This page lists the history of changes to Prodigy. Whenever a new update is available, you’ll receive an email notification sent to the address specified at checkout . You can then download the new version via your personal download link. If your free upgrades expired, you can now add 12 months of updates to your license via our online shop . Please allow up to 24 hours for your download link to be reactivated.

v1.12.5 2023-07-28

This release adds temporary support to legacy (pre 1.12.X) loaders in the new get_stream utility. It also fixes a few minor CLI and config processing bugs. We have also improved the error message for missing DB drivers.

fix Add support to to legacy (pre 1.12.X) loaders in get_stream utility.
fix Fix the processing of the :ignore , :accept , :reject suffixes in dataset source CLI.
fix Improve error message in the event of missing DB drivers.
fix Fix the support for the delimiter argument of the legacy CSV loader.
fix Fix the processing of hide_arrow_heads and hide_true_newline_token config settings in the rel.manual recipe.

v1.12.4 2023-07-19

This release includes an additional bug fix for the frontend.

fix Fix issue where individual image spans could not be selected in the image_manual view for the Polygon and Freehand tools. This builds on the fix in v1.12.3 which only fixed selection of image spans annotated with the rectangle tool.

v1.12.3 2023-07-17

This release includes major bug fixes for the frontend and an extra video docs for task routing:

fix Fix issue where individual image spans could not be selected in the image_manual view
fix Fix an issue where the “Save” button could be clicked twice and save a duplicate answer to the database.
fix Fix an issue that would render br elements in the frontend
doc Added docs on Database.get_hashes and Database.count_dataset Database methods
doc Added a new video on task routers that does a deep dive on how to construct your own

v1.12.2 2023-07-13

Fixes a bug when using a Prodigy Dataset as a source for an Audio or Image recipe using the dataset:my_dataset_name syntax.

fix Fix FileNotFoundError when using a Dataset as a source for an Audio or Image recipe
doc Fixed inconsistencies related to session ids.

v1.12.1 2023-07-12

This update adds support for the latest spaCy version.

new Extend spaCy support to the latest v3.6 .

v1.12.0 2023-07-05

For this version we have completely refactored Prodigy internals to make the annotation flow more tractable and more customizable. We have reimplemented the Controller and added new abstractions to better represent the stream of tasks and the input source. This let us deliver a number of new, exciting features such as partial, configurable feed overlap, custom task routers, custom session factories, source-based progress estimation, support for Parquet input files, experimental support for training coref component in train , new filter-by-patterns recipe and DX improvements.

v1.12 also provides support for LLM-assisted workflows for data annotation and prompt engineering. We have provided 4 new recipes for bootstrapping NER and Textcat annotation, 1 for terminology generation and 2 for prompt engineering including a really creative ab.openai.tournament recipe. As of this version we support python 3.11 and we drop support for python 3.7.

Thanks to everyone who’s helped us by testing the alpha versions. See the changelog below for a full list of new features.

new Added a new Controller to facilitate annotation workflow customization.
new Added support for task routing , allowing you to customise who annotates each example.
new Added annotations_per_task setting to easily configure a task router for partial annotator overlap.
new Added a selection of task routers to the public API that can be used in custom recipes.
new Added a session_factory callback for custom recipes , giving you control on how sessions are created.
new Added support for spacy-experimental coref component in the train and train-curve recipes.
new All of Prodigy’s internal recipes now support the .parquet file format as a data source.
new Added allow_work_stealing setting in prodigy.json that allows you to turn off work stealing.
new Added PRODIGY_LOG_LOCALS environment variable to supply local variables for when debugging Prodigy error messages
new Added get_hash_count and get_hashes_min_cardinality methods to database class, which are useful in custom task routers.
new The review recipe now provides a --accept-single flag to also automatically accept annotations from a single annotator when --auto-accept is also turned on.
new Added a new filter-by-patterns recipe that can use match patterns to produce a relevant subset for a downstream task.
new Added support for annotation workflows that use large language models from OpenAI as a model-in-the-loop via the ner.openai.correct , ner.openai.fetch , textcat.openai.correct and textcat.openai.fetch recipes.
new Added support for pattern file generation via OpenAI’s large language model with terms.openai.fetch recipe.
new Added support for prompt engineering recipes via the ab.openai.prompts and ab.openai.tournament recipes.
new Added new progress calculation based on relative position in a source object.
new Distinguish between target progress and source progess in the UI.
fix Fixed a bug related to allow_newline_highlight setting in NER recipes.
fix Fixed a bug multiple labels in the mark recipe.
fix Fixed a bug related to multiple labels in the choice interface
fix Fixed a bug related to trailing slashes in session names. Prodigy will now ignore trailing slashes.
fix Added a more helpful error message when a user needs to provide a /?session= via the URL
fyi Removed auto_count_stream setting and automated counting of generators passed to stream component. See Controller Progress docs for new information on progress calculation.
fyi Added a warning when custom recipes don’t ensure the hashes are set appropriately on their examples.
fyi Tracebacks that Prodigy error messages try to hide will now appear in the logs when PRODIGY_LOGGING is configured. Details are explained here .
fyi Dropped support for python 3.7 due to end of life on 2023-06-27.
doc Added a new usage guides on task routing , large language models and cloud deployments
doc Fixed typos and inconsistencies

v1.11.14 2023-05-23

This patch release adds a constraint for typing_extensions (<4.6.0) to avoid a version conflict in Pydantic.

fix Add dependency for typing_extensions .

v1.11.13 2023-05-12

This patch release relaxes the following requirements: tqdm (>=4.38.0,<5.0.0), Jinja2 (no pin), python-dotenv (>=0.21.1,<2.0.0).

fix Update dependency versions for tqdm, Jinja2, and python-dotenv.

v1.11.12 2023-05-02

This patch release fixes an issue with the --base-model argument in train which resulted in erroneous sourcing of the tok2vec component from the spaCy base model. It also updates the peewee (<3.17), pydantic (<2.0), FastAPI (<0.95.1) and typeguard (<4.0) dependencies.

fix Fix --base-model parsing in train .
fix Update dependency versions for peewee, pydantic, typeguard and FastAPI.

v1.11.11 2023-02-23

This release reverts a backward incompatible change from v1.11.10 that removed database methods and helpers get_db , set_db and disconnect . These methods were not part of the documented API, but could be accessed via the Prodigy source available to users, which might have potentially caused problems.

fix Restore database methods get_db , set_db and disconnect .

v1.11.10 2023-01-31

This release updates Prodigy to use superior versions of spaCy (up to 3.5), pydantic (up to 1.10.4) and FastAPI (up to 0.89.1) dependencies.

fix Update dependency versions for spaCy, pydantic and FastAPI.

v1.11.9 2023-01-23

This update fixes an issue with duplicate examples in multi-user annotation flows and includes several smaller bug fixes in recipes.

new Add logging from the frontend to the backend if the frontend ever receives a batch with duplicate tasks.
fix Prevent duplicate examples from being shown to annotators, specifically in higher latency, production scenarios.
fix Fix the audio.transcribe recipe by putting the custom UI attributes on each task, instead of in the config.
fix Fix an issue where some unsaved examples could be lost during a browser refresh.
fix Fix the --wrap functionality in relations interface.
fix Fix multiple copies of session IDs being rendered in review recipe.

v1.11.8 2022-07-20

This update includes various bug fixes and usability improvements and extends support to the latest spaCy versions.

new Extend spaCy support to the latest v3.4 .
new Add --use_annotations argument to Span Categorization recipes for suggesters that require annotations from other components.
new /health and /healthz API endpoints for health checks.
new Support tokens with "disabled": true in input data for rel.manual .
new Controller.from_components classmethod.
new Add validation to ensure choice options are unique.
fix Allow highlighting newlines in sent.correct .
fix Prevent binary conflicting spans from being added to both positive and negative examples in train .
fix Fix --auto-accept for binary rejection agreements in review .
fix Automatically prevent duplicates from appearing in training and evaluation set in train and data-to-spacy .
fix Improve default config generation for base models with vectors and ensure vectors are used.
fix Improve warnings for invalid setting combinations in PatternMatcher .

v1.11.7 2022-01-05

This update includes fixes to better support spaCy v3.2 and improves sentence segmentation correction, data export for binary NER annotations, and stream handling for multi-user sessions.

new Update spaCy version range to allow installing spaCy v3.2 with Prodigy by default.
fix Fix vector handling for spaCy v3.2 compatibility.
fix Improve caching to prevent duplication in named multi-user sessions.
fix Enable newline and whitespace highlighting by default in sent.correct .
fix Ensure binary rejected entity spans are ignored in train and data-to-spacy if they’re also in the accepted annotations.
doc Fix typos and inconsistencies.

v1.11.6 2021-11-17

This update includes wheels for Python 3.10, as well as small fixes to recipes and config generation.

new Pre-built wheels for Python 3.10.
fix Always use best score in train-curve and train with --label-stats , not last.
fix Ensure hashes are set correctly in audio.transcribe .
fix Fix issue that could cause progress 0 to not be reported correctly in custom functions.
fix Correctly preserve tok2vec and transformer in train with base config.
fix Don’t auto-add examples already in dataset in review with --auto-accept .
fix Use relative paths for fonts to support custom path prefixes.

v1.11.5 2021-10-14

This update includes small fixes to the feed logic for multi-user sessions and custom progress handling.

fix Simplify feed history tracking for multi-user sessions to prevent duplication.
fix Correctly handle progress 0.0 returned by custom progress functions.
fix Fix display of input content in compare recipe.
fix Include .prodigy-spans CSS class in ner_manual UI.

v1.11.4 2021-09-13

fix Fix issue that could cause stream to repeat batches of questions in some scenarios.

v1.11.3 2021-09-08

This release includes various small fixes to stream handling, data loading and config generation.

new Exclude previously accepted labels during binary annotation with --exclusive in textcat.manual .
fix Fixing feed overlap bug that could cause session history to not be tracked correctly after reset.
fix Ensure recipe’s update callback is executed when annotating without a dataset.
fix Fix handling of meta column in CSV loader and add its value to a dict.
fix Handle non-dictionary "meta" values correctly in PatternMatcher .
fix Correctly set both _session_id and _annotator_id in controller.
fix Don’t remove frozen scores used by non-frozen components during config generation in train .
fix Ensure that pre-defined spans receive a "score" in ner.teach .

v1.11.2 2021-08-20

This update includes small fixes to the train curve plots and recipes that don’t save data.

fyi Add warning when using deprecated --ner-missing in train and data-to-spacy .
fix Add workaround for using v2.x and v3.x of plotext in train-curve with --show-plot .
fix Fix handling of False as dataset value returned by recipe.
fix Fix handling of "meta" dict in choice options.
fix Fix links in PyPi server /index endpoint .

v1.11.1 2021-08-17

This update includes a new workflow for correcting a trained span categorizer, as well as various small fixes to the config generation, stream setup and UI.

new spans.correct workflow for correcting a trained span categorizer .
new Support /index endpoint in PyPi download server for package index to use in requirements.txt .
fix Fix config generation in train if no logger is present in the config.
fix Prevent error in stream counting for slower streams and don’t pre-count if --update is set.
fix Fix issue that’d cause CSV reader to fail for None column headers.
fix Ensure hashes are always added before task validation.
fix Prevent labels from wrapping in spans_manual .

v1.11.0 2021-08-12

This release updates Prodigy to use the new spaCy v3 , which brings you lots of new exciting features like end-to-end support for transformer-based pipelines, a training config system for reproducible results, as well as new trainable components for sentence segmentation and span categorization that you can create annotations for with Prodigy. Thanks to the 300+ (!) nightly users who helped us test this new release!

Prodigy v1.11 includes a bunch of new features, including a new installation process via pip and new wheels for Python 3.9 and ARM architectures, a new recipe and UI for annotating overlapping and nested spans , new recipes for improving a sentence recognizer model, new training and data export recipes that seamlessly integrate with spaCy’s config system and let you train multiple components with different evaluation sets, support for updating the model in the loop in ner.correct and a new textcat.correct to go along with it, improved handling of binary annotations in ner.teach for better results, as well as new customization options and settings.