Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

FEAT GUI: Import a dataset example into a chat draft

オープン
#2,751 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
38/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python
領域
frontend

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

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.
  • Related multimedia is retained and unrelated prompts are not concatenated.
  • 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.

主要言語
Python
スター
4.5k
フォーク
896
平均マージ
3日 8時間
マージ済み PR(30日)
191

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoft/PyRIT のほかの issue

microsoft/PyRIT の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。