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

FEAT GUI: Share image, audio, and video previews with datasets

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

メンテナーはふだん 1 日以内に返信

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

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python, typescript

調査の方向性

Start with frontend/src/components/Chat/MessageList.tsx, especially ImageWithSpinner and MediaWithFallback, then inspect frontend/src/utils/media.ts, pyrit/backend/routes/media.py, and the URL helpers in pyrit/backend/mappers/attack_mappers.py. Run the relevant frontend and Python tests before changing behavior; done means shared previews work for dataset details and chat, media remains lazy and safe, and mapping and failure cases are covered without cloud credentials.

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

説明

feature-request GUI not ready yet
Is your feature request related to a problem? Please describe.

The dataset detail view must display images and play audio/video, but the GUI already implements much of this in chat. Duplicating media rendering or treating stored file paths as browser URLs would produce inconsistent behavior.

Work item 5 of 17 in #2744. Technical prerequisite: item 4's detail view and the seed detail API. Keep not ready yet until promoted.

Describe the solution you'd like

Extract shared preview components and narrowly reusable media-URL mapping so chat and dataset details use the same behavior.

  • Render supported images and use native audio/video playback controls. Load media lazily/on demand; never autoplay. Stop playback when leaving or dismissing a preview.
  • Expose client-fetchable seed asset URLs through the existing media-serving/signing mechanisms. Keep stable source references separate from expiring display URLs.
  • Preserve linked text/media in one example. Show useful loading, missing-file, expired/inaccessible-link, and unsupported-format states, with retry/download where supported.
  • Keep existing allowed storage roots, inline-media allowlists, authentication, and content-security rules. Do not enable arbitrary local files or active HTML/SVG rendering to make a preview work.
  • Keep chat behavior intact while extracting its helpers. Do not refactor unrelated message rendering.

Acceptance criteria:

  • Image, audio, and video fixtures work in dataset details and still work in chat.
  • Local stored assets and signed blob URLs use the existing backend paths correctly.
  • Media is not eagerly downloaded for every dataset/table row and never starts playing automatically.
  • Broken assets and unsupported codecs fail visibly without breaking the table.
  • Tests cover shared preview behavior and media URL mapping without real cloud credentials.
Describe alternatives you've considered, if relevant

Do not introduce a new media store, video transcoding service, separate chat/dataset players, or broader filesystem access. Unsupported formats can remain downloadable rather than requiring new codecs.

Additional context

Start with frontend\src\components\Chat\MessageList.tsx (ImageWithSpinner and MediaWithFallback), frontend\src\utils\media.ts, pyrit\backend\routes\media.py, and the URL resolution/signing helpers in pyrit\backend\mappers\attack_mappers.py. The media route already recognizes seed-prompt-entries. Follow the frontend, Python, and relevant test instructions.

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

環境構築

このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

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

microsoft/PyRIT のほかの issue

microsoft/PyRIT の issue をすべて見る

似ている issue

Python の issue をもっと見る

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

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