FEAT GUI: Import a dataset example into a chat draft
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 38/100
Hướng nghiên cứu
Wait for promotion in the parent sequence, then start with ChatWindow's copy-to-input and new-conversation handlers, App's attack/conversation navigation callbacks, ChatInputArea's draft interface, and the existing attacks API. Trace the shared draft handoff and existing creation APIs before running the frontend and backend tests. Done means all three destinations produce an editable focused draft while preserving media, validation, locks, cancellation behavior, and errors without making a model call.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Is your feature request related to a problem? Please describe.
After inspecting a dataset example, users should be able to try it in chat without copying text and reattaching media manually. The destination must be explicit, and importing must not make a model call.
Work item 7 of 17 in #2744. Technical prerequisites: items 4-6. Keep not ready yet until promoted in the parent sequence.
Describe the solution you'd like
For exactly one selected prompt or linked multimodal example, add these actions:
- Import to new attack.
- Import to current conversation within the current attack.
- Import to new conversation within the current attack.
Use the shared draft handoff and existing attack/conversation creation APIs. A new attack starts a new draft context; it must not unexpectedly clone the previous conversation's history. Preserve associated text/media, stable source references, and the normal input validation path.
Show the destination clearly. Confirm before replacing a nonempty draft. Keep existing objective/system-prompt/converter settings unless the user explicitly changes them. Explain unavailable actions when there is no current attack, the destination is locked/stale, the target is unresolved, or modalities are unsupported. Preserve the selection while the user configures a required target.
Treat unsupported multi-turn/template/simulated shapes explicitly instead of flattening or executing them. Multiple independent examples belong to the later scenario workflow.
Consume the shipped #2748/#2989 contract: retain selection_key together with example_id and original member IDs so importing does not widen a dataset-scoped example to every seed with the same group ID. Fetch full detail rather than importing a truncated or safe-label preview. Detail members are stored SeedRecord projections; preserve values, IDs/hashes, nullable roles/order, typed objective conditions and provenance. They are not execution-ready seeds, and simulated configuration fields remain in raw JSON value.
Validate importability through the existing input/attachment path only when the user explicitly imports. Do not construct executable seed objects or open template files to inspect a selection. Do not infer that missing template flags or parameters make a record safe to execute. Missing media or unsupported/unfilled configuration must produce a clear explanation without silently dropping a member or importing a partial example.
Acceptance criteria:
- All three destinations receive the selected example in an editable draft and focus the composer.
- No import action sends to a target, appends fake conversation history, or runs converters automatically.
- Dataset-scoped membership, full stored text and related multimedia are retained; safe-label previews are never imported as content, and unsupported/missing-file members cannot silently disappear.
- Replacing/cancelling a dirty draft has deliberate behavior and no data loss.
- Existing mutation locks and single-turn/target capability restrictions are respected.
- Failed creation shows an error; it never silently imports into a different conversation.
- Tests cover the three destinations, no active attack/target, media, cancellation, and stale/failing requests.
Describe alternatives you've considered, if relevant
Do not add bulk chat sending, a new attack executor, or a separate import persistence service when existing creation and draft APIs suffice. Importing is different from branching an existing transcript.
Additional context
Start with ChatWindow's copy-to-input/new-conversation handlers, App's attack/conversation navigation callbacks, ChatInputArea's draft interface, and the existing attacks API. Reuse concepts, not existing timer-based or silent-fallback behavior. Follow the parent scope and frontend/backend test instructions.
- Ngôn ngữ chính
- Python
- Star
- 4.6k
- Fork
- 944
- Merge trung bình
- 2 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 358
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
-
BUG: label queries only return the final conversation of an attackCó thể đã có người làm @u7k4rs6 đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
microsoft/PyRIT#3095 · 4 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
-
BUG Configuration keeps runtime-status errors after polling recoversCó thể đã có người làm @joeyvictorino đã nhận 6 ngày trước. Đang mởBug: triage GUI help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
microsoft/PyRIT#2868 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
FEAT: Support PDF and file inputs via `binary_path` in OpenAI chat and response targetsCó thể đã có người làm @PranavD2905 đã nhận hôm nay. Đang mởfeature-request help wanted
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
microsoft/PyRIT#3274 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
feature-request
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 18/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/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ự
-
bot-triaged module: LrScheduler module: optimizer triaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation glm5 llm-model
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
vllm-project/vllm-ascend#19062 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Author Page: shuai-zhao-llmĐang mởauthor-page correction
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
acl-org/acl-anthology#10496 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Issue Type: Bug Report
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
celery/celery#10875 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
SasanLabs/VulnerableApp#836 ·
Maintainer thường phản hồi trong vòng 1 ngày