FEAT GUI: Expose configured objective-scorer presets
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- python
- 領域
- ai, api, backend-api-design
調査の方向性
Start with pyrit/registry/components/scorer_registry.py, pyrit/setup/initializers/scorers.py, and Scenario._get_default_objective_scorer(); trace how configured instances, presets, tags, and result families are represented. Review the existing /scores routes and model/Python/scorer/test instructions, then add fake-registered-scorer tests covering empty or incompatible registries, refusal polarity, credential safety, and the absence of scoring or model calls.
索引モデルが issue の本文から書いたものです。
説明
Is your feature request related to a problem? Please describe.
The custom-scenario flow needs a simple scorer choice. PyRIT already has ScorerRegistry and ScorerInitializer presets, but the GUI currently has no read API for choosing configured objective-scorer instances.
Work item 12 of 17 in #2744. This is now available for contributions as an independent API track, in parallel with the main explorer sequence (currently #2748). It uses the existing scorer registry and initializer and does not depend on dataset browsing, the explorer UI, or provider loading. Integration into the scenario flow remains a later step in #2757.
Describe the solution you'd like
Expose a small typed API for initialized, compatible objective-scorer presets from ScorerRegistry.instances.
- Return stable registry names, useful descriptions, scorer/result family, relevant tags, compatibility/prerequisite information, and the compatible configured default_objective_scorer selection.
- Offer ready instances, not just buildable class names. Listing must not instantiate scorers, invoke targets, or manufacture credential-backed configuration.
- Reuse existing presets/composites where available, such as inverted_refusal, task-achieved variants, acs_with_refusal, and scale_and_refusal. Availability depends on initialized targets and ScorerInitializer.
- Preserve objective-result meaning. Raw refusal=true means refusal and must not be exposed as attack success; use an appropriate existing inverter/composite or clearly validated objective preset.
- Report an empty/unusable registry clearly so the GUI can guide setup. Do not silently choose an incompatible default or expose secrets through identifiers/configuration metadata.
Acceptance criteria:
- The API distinguishes configured instances from merely discoverable classes.
- Compatible default tags and non-default presets are represented correctly.
- Missing dependencies, empty registries, incompatible result families, and refusal polarity are covered.
- The response contains no credential values and listing performs no scoring/model calls.
- Tests use fake registered scorers and require no paid services.
Describe alternatives you've considered, if relevant
Do not create a hardcoded frontend scorer list, a general scorer builder, a new scorer registry, or an unscored scenario mode. One selected objective scorer may already be a composite; arbitrary multi-scorer aggregation is out of scope.
Additional context
Start with pyrit\registry\components\scorer_registry.py, pyrit\setup\initializers\scorers.py, and Scenario._get_default_objective_scorer(). The existing /scores routes concern score operations, not a configured-scorer catalog. Follow model/Python/scorer/test instructions and keep registry responsibility separate from service DTOs.
- 主要言語
- Python
- スター
- 4.5k
- フォーク
- 896
- 平均マージ
- 3日 5時間
- マージ済み PR(30日)
- 200
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/PyRIT のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
microsoft/PyRIT の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
gradio-app/gradio#13895 ·
メンテナーはふだん 1 日以内に返信
-
build-error
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
spack/spack-packages#6713 ·
メンテナーはふだん 1 日以内に返信
-
Use issue templates オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ActivityWatch/activitywatch#1464 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: The ckg tool drops the return type of every decorated Python method in class search results オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
bytedance/trae-agent#483 ·
メンテナーはふだん 1 日以内に返信