Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

FEAT GUI: Import a dataset example into a chat draft

Đang mở
#2,751 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
frontend

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ả

feature-request GUI not ready yet
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:

  1. Import to new attack.
  2. Import to current conversation within the current attack.
  3. 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

Mở trong Codespaces

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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của microsoft/PyRIT

Tất cả issue của microsoft/PyRIT

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.