BUG: CharacterSpaceConverter introduces whitespace holes and trailing whitespace
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
Direzione di ricerca
Trova CharacterSpaceConverter e i relativi test nel codice sorgente di PyRIT. Leggi l’implementazione del convertitore ed esegui prima i test esistenti del convertitore; aggiungi test per la punteggiatura tra le parole, le contrazioni e la punteggiatura finale. Il lavoro è completato quando la punteggiatura viene rimossa prima dell’inserimento degli spazi, gli output corrispondono agli esempi e il pattern della punteggiatura viene compilato una sola volta a livello di modulo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
CharacterSpaceConverter spaces out characters with " ".join(prompt) before removing punctuation with re.sub(...). This order of operations introduces whitespace artifacts:
- Stripping punctuation leaves empty character "holes", producing 4 spaces between words (e.g.,
"Hello, world"->"H e l l o w o r l d"instead of the standard 3-space inter-word spacing"H e l l o w o r l d"). - Contractions or mid-word punctuation leave double spaces (e.g.,
"How's"->"H o w s"instead of"H o w s"). - Trailing punctuation leaves unwanted trailing whitespace (e.g.,
"hello!"->"h e l l o ").
Additionally, the punctuation regex is recompiled on every invocation of convert_async rather than precompiled at module level.
Steps/Code to Reproduce
import asyncio
from pyrit.converter import CharacterSpaceConverter
async def main():
converter = CharacterSpaceConverter()
res1 = await converter.convert_async(prompt="hello!")
print(repr(res1.output_text)) # prints 'h e l l o ' with trailing space
res2 = await converter.convert_async(prompt="Hello, world! How's everything?")
print(repr(res2.output_text)) # prints 'H e l l o w o r l d H o w s e v e r y t h i n g '
asyncio.run(main())
Expected Results
Punctuation should be stripped prior to character spacing so spacing remains uniform without artificial gaps or trailing whitespace:
"hello!"->'h e l l o'"Hello, world! How's everything?"->'H e l l o w o r l d H o w s e v e r y t h i n g'
Actual Results
'h e l l o ''H e l l o w o r l d H o w s e v e r y t h i n g '
Versions
- OS: Windows 11
- Python version: 3.12
- PyRIT version: main
- Lingua principale
- Python
- Stelle
- 4.7k
- Fork
- 1k
- Merge medio
- 2g 4h
- PR unite (30g)
- 510
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/PyRIT
-
BUG: HuggingFaceChatTarget runs model.generate() on the event loopForse già presa @Shizoqua l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 2 giorni
-
BUG: StaticPromptInjectionScorer misses modern frontier chat template delimiters (DeepSeek, Cohere Command R, Mistral)Forse già presa @Kaap10 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
Parameter required status is lost after wire round-tripForse già presa @its-amann l’ha presa 3 giorni fa. ApertaBug: triage help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/PyRIT#3854 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
BUG: LLMGenericTextConverter identifier changes between processes for set-valued template parametersForse già presa @samrudhi03 l’ha presa 3 giorni fa. ApertaBug: triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
microsoft/PyRIT#3841 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
BUG: SelfAskGeneral scorers leave their output keys out of the identifierForse già presa @Hrushikesh-ramilla l’ha presa 4 giorni fa. ApertaBug: triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di microsoft/PyRIT
Issue simili
-
ChatBedrockConverse changes the keys of JSON tool results to camelCase (`order_id` becomes `orderId`)Forse già presa @geyazheng l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
langchain-ai/langchain-aws#1469 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
b4b usability
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
fix(schedule): align list_tasks since cursor filter boundary from strict > to >=Forse già presa @bfs2021 l’ha presa oggi. Apertaagent-ready bug p2 schedule
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
allenporter/supernote#540 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
frazane/scoringrules#164 ·
I maintainer di solito rispondono entro 1 giorno