BUG: CharacterSpaceConverter introduces whitespace holes and trailing whitespace
Mantenedores costumam responder em até 2 dias
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 82/100
Direção de pesquisa
Encontre CharacterSpaceConverter e seus testes no código-fonte do PyRIT. Leia a implementação do conversor e execute primeiro os testes existentes do conversor; adicione cobertura para pontuação entre palavras, contrações e pontuação final. O trabalho estará concluído quando a pontuação for removida antes da inserção dos espaços, as saídas corresponderem aos exemplos e o padrão de pontuação for compilado uma única vez no nível do módulo.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Python
- Estrelas
- 4.7k
- Forks
- 1k
- Merge médio
- 2d 6h
- PRs com merge (30d)
- 513
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/PyRIT
-
BUG: HuggingFaceChatTarget runs model.generate() on the event loopTalvez já em andamento @Shizoqua assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 2 dias
-
BUG: StaticPromptInjectionScorer misses modern frontier chat template delimiters (DeepSeek, Cohere Command R, Mistral)Talvez já em andamento @Kaap10 assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 2 dias
-
Parameter required status is lost after wire round-tripTalvez já em andamento @its-amann assumiu há 4 dias. AbertaBug: triage help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
microsoft/PyRIT#3854 · 2 comentários · 1 responsável ·
Mantenedores costumam responder em até 2 dias
-
BUG: LLMGenericTextConverter identifier changes between processes for set-valued template parametersTalvez já em andamento @samrudhi03 assumiu há 4 dias. AbertaBug: triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
microsoft/PyRIT#3841 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 2 dias
-
BUG: SelfAskGeneral scorers leave their output keys out of the identifierTalvez já em andamento @Hrushikesh-ramilla assumiu há 5 dias. AbertaBug: triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 2 dias
Todas as issues de microsoft/PyRIT
Issues semelhantes
-
community enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
NVIDIA/auto-ontology#463 ·
Mantenedores costumam responder em até 1 dia
-
Update Atari link on Gymnasium docs pageTalvez já em andamento @qwist1233-cpu assumiu hoje. Abertahelp wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
Farama-Foundation/Gymnasium#1845 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 91/100
WingedGuardian/GENesis-AGI#4101 ·
Mantenedores costumam responder em até 1 dia