BUG BrailleConverter output is ambiguous: "1a" encodes the same as "11", and "$" uses the period cell
Les mainteneurs répondent en général sous 2 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 25/100
Piste de recherche
The issue identifies BrailleConverter and provides a reproduction with four prompts and expected braille output. Start by locating the converter and its tests, then compare how it handles letters after numbers and the dollar sign. Done means the four outputs match the expected results; linked pull request #3533 is already open.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
BrailleConverter produces the same braille for different inputs in two cases, so the encoded prompt cannot be read back unambiguously:
- A letter from a to j directly after a number is written without the letter sign (dots 56,
⠰). In braille the letters a to j share their cells with the digits 1 to 0, so1aand11both become⠼⠁⠁. $is mapped to⠲, the period cell, so$5and.5both become⠲⠼⠑. The Unified English Braille dollar sign is dot 4 followed by dots 234 (⠈⠎), which is also how liblouis's UEB table (en-ueb-chardefs.uti:sign $ 4-234) defines it.
liblouis's UEB grade 1 table (en-ueb-g1.ctb) marks a to j as the letters that need the letter sign after a number (numericnocontchars, nonumsign 56).
Steps/Code to Reproduce
import asyncio
from pyrit.converter import BrailleConverter
async def main():
converter = BrailleConverter()
for prompt in ["1a", "11", "$5", ".5"]:
result = await converter.convert_async(prompt=prompt)
print(prompt, result.output_text)
asyncio.run(main())
Expected Results
1a ⠼⠁⠰⠁
11 ⠼⠁⠁
$5 ⠈⠎⠼⠑
.5 ⠲⠼⠑
Actual Results
1a ⠼⠁⠁
11 ⠼⠁⠁
$5 ⠲⠼⠑
.5 ⠲⠼⠑
Versions
- PyRIT version: installed from main (
246b659e) in editable mode - Python version: 3.12
I have a fix for both and would like to open a PR for it.
- Langage dominant
- Python
- Étoiles
- 4.7k
- Forks
- 980
- Merge moyen
- 2 j 9 h
- PR mergées (30 j)
- 433
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de microsoft/PyRIT
-
BUG: Garak and ML-VLSU loaders still load one example when max_examples is 0 or negativePeut-être pris @ShivamSharma43 l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: ComicJailbreak max_examples counts goals that render nothing, so templates=["code"] with max_examples=10 failsPeut-être pris @ShivamSharma43 l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: SeedDatasetFilter matches harm_categories, modalities and size case-sensitively, unlike tagsPeut-être pris @ShivamSharma43 l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 2 jours
-
Conversation drawer shows the previous attack's conversations after switching attacksPeut-être pris @ManoharPaturi l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
microsoft/PyRIT#3575 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
Conversation draft turns permanently dirty when applied conversions match no piecePeut-être pris @ManoharPaturi l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
microsoft/PyRIT#3573 · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de microsoft/PyRIT
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
521xueweihan/HelloGitHub#4150 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
aws-samples/sample-per-model-bedrock#595 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
bug connectors
Difficulté 1/5 Moins d'une heure Accessibilité débutants 67/100
pyinfra-dev/pyinfra#2036 ·
Les mainteneurs répondent en général sous 9 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour