v0.9.0
What's Changed
Targets
HTTPTargetImprovements that properly parse the HTTP version, automatically calculate the content-length, and make headers case insensitive.- FIX: Fixed IndexError with
RealtimeTargetto handle responses properly
Datasets
- Social Engineering (Persuasion and Deception) Scenarios: See
datasets/orchestrators/red_teaming/persuasion_deceptionanddatasets/orchestrators/role_play/persuasion_script.yaml - Multilingual Vulnerability dataset from "A Framework to Assess Multilingual Vulnerabilities of LLMs"
Converters
- Enhancements to the
AsciiSmugglerConverterby adding support for two methods for encoding hidden data (embedding directly in a Unicode character (default: 😊) and appending hidden data to visible text). ZalgoConverter: Adds Unicode characters to text to make it appear "glitchy"ToxicSentenceGeneratorConverter: Generate toxic sentence starters based on seed prompts- FIX: Remove JSON Instructions for
TranslationConverterto address intermittent failures due to JSON parsing issues and non-consistent responses from endpoints.
Orchestrators
- [BREAKING] Rename
MultiTurnAttackResulttoOrchestratorResultas part of a bigger refactor to tack objectives and results. - FIX: Keep Conversation ID in PromptSendingOrchestrator if it is provided
- FIX: Remove Harm-Specific Prevention from
CrescendoOrchestrator
Scorers
- Generic Scorer with Flexible Inputs:
SelfAskGeneralScorerinpyrit/score/general_scorer.py. It can be configured to use different scoring types (e.g. True/False, float) and can format the prompt using a system prompt and a format string. - Criteria-Based Scorer (used with
SelfAskScaleScorer): Provides evaluation criteria that is specific to a given objective. CompositeScorer: Combines multiple True/False Results into a single True/False Result
Dependencies
- Moves
jupyterandipykernelfrom required into an optional [dev] dependency. If you need to use Jupyter notebooks with PyRIT, you'll need to install using methods outlined here. - Moves
azure-cognitiveservices-speechfrom required into an optional [speech] dependency.
Other
- Added custom file name support to allows for saving data (image, audio, video, etc.) to storage under a custom name.
- Custom Retry Decorator:
pyrit_custom_result_retryto retry a function if a certain condition is true. This augments existing retry decorators which retry functions based on exception criteria. - Optimizations and various bug fixes to
.devcontainer
Full list of changes
- [FEAT] New Generic Scorer with Flexible Inputs by @jbolor21 in https://github.com/Azure/PyRIT/pull/816
- MAINT post-v0.8.2.dev0 release updates by @romanlutz in https://github.com/Azure/PyRIT/pull/861
- DOC: add LM Studio support note to the user guide by @paulinek13 in https://github.com/Azure/PyRIT/pull/863
- MAINT: Make integration tests run outside of repository and various fixes by @jsong468 in https://github.com/Azure/PyRIT/pull/862
- FEAT: Add Custom File Name Support to Data Serializer by @nina-msft in https://github.com/Azure/PyRIT/pull/868
- FEAT: Add Custom Retry Decorator: pyrit_custom_result_retry by @nina-msft in https://github.com/Azure/PyRIT/pull/869
- FEAT: optimized .devcontainer by @bashirpartovi in https://github.com/Azure/PyRIT/pull/871
- DOC: Fix Up Multi Turn Target Docs & OpenAI Dalle/TTS Target Docstring by @nina-msft in https://github.com/Azure/PyRIT/pull/870
- DOC: improve accessibility of the contributor guide flowchart by @paulinek13 in https://github.com/Azure/PyRIT/pull/866
- FIX: fixed the extension directory for vscode by @bashirpartovi in https://github.com/Azure/PyRIT/pull/872
- FIX jupyter set as dev dependency by @afogel in https://github.com/Azure/PyRIT/pull/857
- MAINT enhanced initialization and caching for devcontainer by @bashirpartovi in https://github.com/Azure/PyRIT/pull/873
- FIX: fixed indexing and conda cache for devcontainer by @bashirpartovi in https://github.com/Azure/PyRIT/pull/876
- FIX: Resolve mypy pre-commit error in chat_message_normalizer_tokenizer by @nina-msft in https://github.com/Azure/PyRIT/pull/875
- MAINT: HTTPTarget Improvements by @rlundeen2 in https://github.com/Azure/PyRIT/pull/879
- FEAT: Smuggling arbitrary data through an emoji by @KutalVolkan in https://github.com/Azure/PyRIT/pull/842
- DOC fix markdown link by @dennis-rall in https://github.com/Azure/PyRIT/pull/880
- FEAT Persuasion and Deception Scenarios by @whackswell in https://github.com/Azure/PyRIT/pull/878
- FIX: Update
re.splitcalls to usemaxsplitkeyword argument by @emmanuel-ferdman in https://github.com/Azure/PyRIT/pull/885 - BREAKING FEAT: orchestrator result by @rlundeen2 in https://github.com/Azure/PyRIT/pull/886
- FEAT: Added Multilingual Vulnerability Dataset by @devesh-2002 in https://github.com/Azure/PyRIT/pull/834
- FIX keep conversation ID in PromptSendingOrchestrator if it's passed in by @romanlutz in https://github.com/Azure/PyRIT/pull/889
- FEAT Adding into Criteria based scoring by @eugeniavkim in https://github.com/Azure/PyRIT/pull/874
- FIX fixed msodbcsql dep for devcontainer by @bashirpartovi in https://github.com/Azure/PyRIT/pull/895
- MAINT: Remove Azure Speech SDK as Required Dependency by @nina-msft in https://github.com/Azure/PyRIT/pull/896
- FIX pip upgrade issue on windows by @bashirpartovi in https://github.com/Azure/PyRIT/pull/901
- FEAT: Zalgo Converter by @elisetreit in https://github.com/Azure/PyRIT/pull/883
- FEAT: Composite Scorer by @rlundeen2 in https://github.com/Azure/PyRIT/pull/898
- FIX: XPIA Notebook Env Variable Fix by @jbolor21 in https://github.com/Azure/PyRIT/pull/899
- FIX: bug where scorer_type is not set in AzureContentFilterScorer by @rlundeen2 in https://github.com/Azure/PyRIT/pull/902
- MAINT: Generic Scorer Notebook Reorganizing by @jbolor21 in https://github.com/Azure/PyRIT/pull/904
- MAINT Refactor question answer orchestrator as prompt orchestrator by @AdrGav941 in https://github.com/Azure/PyRIT/pull/894
- FEAT: Toxic Sentence Generator by @0xm00n in https://github.com/Azure/PyRIT/pull/893
- FIX Removed JSON instructions for Translation Converter by @bashirpartovi in https://github.com/Azure/PyRIT/pull/910
- FIX Removing harm specific prevention for Crescendo Orchestrator @eugeniavkim in https://github.com/Azure/PyRIT/pull/911
- FIX IndexError with RealtimeTarget @bashirpartovi in https://github.com/Azure/PyRIT/pull/914
- DOC Updates to '11. Releasing PyRIT' documentation @nina-msft
New Contributors
- @afogel made their first contribution in https://github.com/Azure/PyRIT/pull/857
- @dennis-rall made their first contribution in https://github.com/Azure/PyRIT/pull/880
- @whackswell made their first contribution in https://github.com/Azure/PyRIT/pull/878
- @emmanuel-ferdman made their first contribution in https://github.com/Azure/PyRIT/pull/885
- @devesh-2002 made their first contribution in https://github.com/Azure/PyRIT/pull/834
- @elisetreit made their first contribution in https://github.com/Azure/PyRIT/pull/883
- @0xm00n made their first contribution in https://github.com/Azure/PyRIT/pull/893
Full Changelog: Azure/PyRIT@v0.8.1...v0.9.0