BUG ColloquialWordswapConverter skips words next to punctuation and inserts spaces into hyphenated words
Les mainteneurs répondent en général sous 2 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
Piste de recherche
Repérez ColloquialWordswapConverter dans le paquet de convertisseurs de PyRIT et lisez sa logique de tokenisation et d’espacement, ainsi que le test existant test_awkward_spacing. Reproduisez les exemples de l’issue et examinez les tests de convertisseurs voisins pour connaître les échanges de mots attendus. Le travail est terminé lorsque la ponctuation et les mots avec trait d’union conservent leur espacement d’origine, tandis que les mots admissibles sont échangés, et que la normalisation des espaces existante continue de réussir.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
ColloquialWordswapConverter tokenizes with re.findall(r"\w+|\S+", prompt), rejoins every token with a space, and then removes the space before ?.!,'". That loses or changes text in a few common cases:
- A word that starts after punctuation is never swapped, because
\S+takes the whole run, e.g.(father)or"mother". - A space is inserted inside hyphenated words:
e-mailbecomese -mail,father-in-lawbecomespapa -in-law. - The clean-up regex removes a space the user wrote:
a 'quoted' wordbecomesa'quoted' word.
To Reproduce
import asyncio
from pyrit.converter import ColloquialWordswapConverter
c = ColloquialWordswapConverter(deterministic=True)
for s in ["Ask (father) first.", '"mother" said hi', "My father-in-law called.", "e-mail your brother", "a 'quoted' word"]:
print(repr(s), "->", repr(asyncio.run(c.convert_async(prompt=s)).output_text))
'Ask (father) first.' -> 'Ask (father) first.'
'"mother" said hi' -> '"mother" said hi'
'My father-in-law called.' -> 'My papa -in-law called.'
'e-mail your brother' -> 'e -mail your bro'
"a 'quoted' word" -> "a'quoted' word"
Expected behavior
Words are swapped wherever they appear and surrounding punctuation is left as written: Ask (papa) first., "mama" said hi, My papa-in-law called., e-mail your bro, a 'quoted' word. The existing whitespace normalization (test_awkward_spacing) stays as it is.
Version
main at 60c3386a, Python 3.11, Windows.
- Langage dominant
- Python
- Étoiles
- 4.7k
- Forks
- 1k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 510
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: HuggingFaceChatTarget runs model.generate() on the event loopPeut-être pris @Shizoqua l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: CharacterSpaceConverter introduces whitespace holes and trailing whitespacePeut-être pris @Kaap10 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: StaticPromptInjectionScorer misses modern frontier chat template delimiters (DeepSeek, Cohere Command R, Mistral)Peut-être pris @Kaap10 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
Parameter required status is lost after wire round-tripPeut-être pris @its-amann l’a pris il y a 3 jours. OuverteBug: triage help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
microsoft/PyRIT#3854 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
BUG: LLMGenericTextConverter identifier changes between processes for set-valued template parametersPeut-être pris @samrudhi03 l’a pris il y a 3 jours. OuverteBug: triage
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
microsoft/PyRIT#3841 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de microsoft/PyRIT
Issues similaires
-
ChatBedrockConverse changes the keys of JSON tool results to camelCase (`order_id` becomes `orderId`)Peut-être pris @geyazheng l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
langchain-ai/langchain-aws#1469 ·
Les mainteneurs répondent en général sous 1 jour
-
GCToggler leaves collection enabled if the body re-enables itPeut-être pris @Gambit-Checkmate l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 7 jours
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
EESSI/docs#949 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
doronz88/pymobiledevice3#2176 ·
Les mainteneurs répondent en général sous 1 jour
-
b4b usability
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour