BUG BrailleConverter output is ambiguous: "1a" encodes the same as "11", and "$" uses the period cell
Maintainer thường phản hồi trong vòng 2 ngày
@barkha1research-ai đang làm issue này rồi.
Từ ngày 26/10/2026.
- #3533 của @barkha1research-ai — đang mở
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 4.7k
- Fork
- 980
- Merge trung bình
- 2 ngày 11 giờ
- Pull request đã merge (30 ngày)
- 418
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/PyRIT
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 2 ngày
-
BUG: within word punctuation insertion can never land at the last two positions of the promptĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của microsoft/PyRIT
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
btclib-org/btclib-node#2083 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Gathin23/cleanyourtv#2089 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
jxxghp/MoviePilot#7212 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Web transport: small test gapsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
cli dx rust
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
NekomyaDev/nudge#278 ·
Maintainer thường phản hồi trong vòng 1 ngày