Skip to content

Commit 599ab00

Browse files
rlundeen2Copilot
andauthored
DOC: Restructure documentation around three user pathways (#1583)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 29aa274 commit 599ab00

59 files changed

Lines changed: 34494 additions & 8611 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ repos:
44
hooks:
55
- id: nbstripout
66
args: [--keep-output, '--extra-keys=metadata.kernelspec']
7-
files: ^doc/*\.(ipynb)$
7+
files: ^doc/.*\.ipynb$
88

99
- repo: local
1010
hooks:

doc/code/converters/7_human_converter.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"metadata": {},
77
"source": [
88
"> ⚠️ **Deprecated:** The `HumanInTheLoopConverter` is deprecated and will be removed in PyRIT v0.13.0.\n",
9-
"> Use the React-based GUI (CoPyRIT) instead. See the [GUI documentation](../gui/0_gui.md) for details.\n",
9+
"> Use the React-based GUI (CoPyRIT) instead. See the [GUI documentation](../../gui/0_gui.md) for details.\n",
1010
"\n",
1111
"# 7. Human in the Loop Converter\n",
1212
"\n",

doc/code/converters/7_human_converter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
# %% [markdown]
1212
# > ⚠️ **Deprecated:** The `HumanInTheLoopConverter` is deprecated and will be removed in PyRIT v0.13.0.
13-
# > Use the React-based GUI (CoPyRIT) instead. See the [GUI documentation](../gui/0_gui.md) for details.
13+
# > Use the React-based GUI (CoPyRIT) instead. See the [GUI documentation](../../gui/0_gui.md) for details.
1414
#
1515
# # 7. Human in the Loop Converter
1616
#

doc/code/datasets/5_simulated_conversation.ipynb

Lines changed: 14 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"cells": [
33
{
44
"cell_type": "markdown",
5-
"id": "e88a2a30",
5+
"id": "0",
66
"metadata": {},
77
"source": [
88
"# 5. Simulated Conversations\n",
@@ -31,16 +31,9 @@
3131
},
3232
{
3333
"cell_type": "code",
34-
"execution_count": 1,
35-
"id": "0e4097b9",
36-
"metadata": {
37-
"execution": {
38-
"iopub.execute_input": "2026-04-08T14:43:58.449045Z",
39-
"iopub.status.busy": "2026-04-08T14:43:58.448892Z",
40-
"iopub.status.idle": "2026-04-08T14:44:23.536340Z",
41-
"shell.execute_reply": "2026-04-08T14:44:23.534625Z"
42-
}
43-
},
34+
"execution_count": null,
35+
"id": "1",
36+
"metadata": {},
4437
"outputs": [
4538
{
4639
"name": "stdout",
@@ -90,7 +83,7 @@
9083
},
9184
{
9285
"cell_type": "markdown",
93-
"id": "1b3f2a33",
86+
"id": "2",
9487
"metadata": {},
9588
"source": [
9689
"## Inspecting the Results\n",
@@ -104,16 +97,9 @@
10497
},
10598
{
10699
"cell_type": "code",
107-
"execution_count": 2,
108-
"id": "b6a517b3",
109-
"metadata": {
110-
"execution": {
111-
"iopub.execute_input": "2026-04-08T14:44:23.538379Z",
112-
"iopub.status.busy": "2026-04-08T14:44:23.538095Z",
113-
"iopub.status.idle": "2026-04-08T14:44:23.543978Z",
114-
"shell.execute_reply": "2026-04-08T14:44:23.542643Z"
115-
}
116-
},
100+
"execution_count": null,
101+
"id": "3",
102+
"metadata": {},
117103
"outputs": [
118104
{
119105
"name": "stdout",
@@ -183,7 +169,7 @@
183169
},
184170
{
185171
"cell_type": "markdown",
186-
"id": "8604fef5",
172+
"id": "4",
187173
"metadata": {},
188174
"source": [
189175
"## Replaying on a Different Target\n",
@@ -198,16 +184,9 @@
198184
},
199185
{
200186
"cell_type": "code",
201-
"execution_count": 3,
202-
"id": "153c5476",
203-
"metadata": {
204-
"execution": {
205-
"iopub.execute_input": "2026-04-08T14:44:23.546118Z",
206-
"iopub.status.busy": "2026-04-08T14:44:23.545878Z",
207-
"iopub.status.idle": "2026-04-08T14:45:52.821098Z",
208-
"shell.execute_reply": "2026-04-08T14:45:52.819962Z"
209-
}
210-
},
187+
"execution_count": null,
188+
"id": "5",
189+
"metadata": {},
211190
"outputs": [
212191
{
213192
"name": "stdout",
@@ -546,7 +525,7 @@
546525
},
547526
{
548527
"cell_type": "markdown",
549-
"id": "625f4681",
528+
"id": "6",
550529
"metadata": {},
551530
"source": [
552531
"> **Note:** If the Crescendo result shows `backtrack_count: 0` even on failure, this is expected.\n",
@@ -557,7 +536,7 @@
557536
},
558537
{
559538
"cell_type": "markdown",
560-
"id": "58bb69b5",
539+
"id": "7",
561540
"metadata": {},
562541
"source": [
563542
"## Key Parameters\n",
@@ -580,11 +559,6 @@
580559
}
581560
],
582561
"metadata": {
583-
"kernelspec": {
584-
"display_name": "pyrit-dev",
585-
"language": "python",
586-
"name": "pyrit-dev"
587-
},
588562
"language_info": {
589563
"codemirror_mode": {
590564
"name": "ipython",

doc/code/executor/benchmark/2_bias_benchmark.ipynb

Lines changed: 22 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"cells": [
33
{
44
"cell_type": "markdown",
5-
"id": "1f4ad056",
5+
"id": "0",
66
"metadata": {},
77
"source": [
88
"# 2. Bias & Fairness Benchmark\n",
@@ -28,16 +28,9 @@
2828
},
2929
{
3030
"cell_type": "code",
31-
"execution_count": 1,
32-
"id": "40a3d028",
33-
"metadata": {
34-
"execution": {
35-
"iopub.execute_input": "2026-04-08T14:46:05.706290Z",
36-
"iopub.status.busy": "2026-04-08T14:46:05.706045Z",
37-
"iopub.status.idle": "2026-04-08T14:46:15.733842Z",
38-
"shell.execute_reply": "2026-04-08T14:46:15.732794Z"
39-
}
40-
},
31+
"execution_count": null,
32+
"id": "1",
33+
"metadata": {},
4134
"outputs": [
4235
{
4336
"name": "stdout",
@@ -68,7 +61,7 @@
6861
},
6962
{
7063
"cell_type": "markdown",
71-
"id": "9b3941a2",
64+
"id": "2",
7265
"metadata": {},
7366
"source": [
7467
"## Testing for Definitive YES/NO Answers\n",
@@ -83,16 +76,9 @@
8376
},
8477
{
8578
"cell_type": "code",
86-
"execution_count": 2,
87-
"id": "8bc07414",
88-
"metadata": {
89-
"execution": {
90-
"iopub.execute_input": "2026-04-08T14:46:15.736014Z",
91-
"iopub.status.busy": "2026-04-08T14:46:15.735479Z",
92-
"iopub.status.idle": "2026-04-08T14:46:15.818093Z",
93-
"shell.execute_reply": "2026-04-08T14:46:15.816824Z"
94-
}
95-
},
79+
"execution_count": null,
80+
"id": "3",
81+
"metadata": {},
9682
"outputs": [
9783
{
9884
"name": "stdout",
@@ -115,16 +101,9 @@
115101
},
116102
{
117103
"cell_type": "code",
118-
"execution_count": 3,
119-
"id": "3a736fc9",
120-
"metadata": {
121-
"execution": {
122-
"iopub.execute_input": "2026-04-08T14:46:15.819598Z",
123-
"iopub.status.busy": "2026-04-08T14:46:15.819462Z",
124-
"iopub.status.idle": "2026-04-08T14:47:18.712842Z",
125-
"shell.execute_reply": "2026-04-08T14:47:18.710967Z"
126-
}
127-
},
104+
"execution_count": null,
105+
"id": "4",
106+
"metadata": {},
128107
"outputs": [
129108
{
130109
"name": "stdout",
@@ -219,7 +198,7 @@
219198
},
220199
{
221200
"cell_type": "markdown",
222-
"id": "e8755a78",
201+
"id": "5",
223202
"metadata": {},
224203
"source": [
225204
"## Testing for Bias with FairnessBiasBenchmark\n",
@@ -236,16 +215,9 @@
236215
},
237216
{
238217
"cell_type": "code",
239-
"execution_count": 4,
240-
"id": "26632ba1",
241-
"metadata": {
242-
"execution": {
243-
"iopub.execute_input": "2026-04-08T14:47:18.715021Z",
244-
"iopub.status.busy": "2026-04-08T14:47:18.714728Z",
245-
"iopub.status.idle": "2026-04-08T14:47:18.831445Z",
246-
"shell.execute_reply": "2026-04-08T14:47:18.829881Z"
247-
}
248-
},
218+
"execution_count": null,
219+
"id": "6",
220+
"metadata": {},
249221
"outputs": [],
250222
"source": [
251223
"# Create the pronoun scorer\n",
@@ -264,16 +236,9 @@
264236
},
265237
{
266238
"cell_type": "code",
267-
"execution_count": 5,
268-
"id": "7572d6d9",
269-
"metadata": {
270-
"execution": {
271-
"iopub.execute_input": "2026-04-08T14:47:18.833546Z",
272-
"iopub.status.busy": "2026-04-08T14:47:18.833274Z",
273-
"iopub.status.idle": "2026-04-08T14:48:27.824543Z",
274-
"shell.execute_reply": "2026-04-08T14:48:27.822875Z"
275-
}
276-
},
239+
"execution_count": null,
240+
"id": "7",
241+
"metadata": {},
277242
"outputs": [
278243
{
279244
"name": "stdout",
@@ -480,7 +445,7 @@
480445
},
481446
{
482447
"cell_type": "markdown",
483-
"id": "a73e8820",
448+
"id": "8",
484449
"metadata": {},
485450
"source": [
486451
"## Analyzing Results\n",
@@ -493,16 +458,9 @@
493458
},
494459
{
495460
"cell_type": "code",
496-
"execution_count": 6,
497-
"id": "509c7c08",
498-
"metadata": {
499-
"execution": {
500-
"iopub.execute_input": "2026-04-08T14:48:27.826680Z",
501-
"iopub.status.busy": "2026-04-08T14:48:27.826451Z",
502-
"iopub.status.idle": "2026-04-08T14:48:27.832534Z",
503-
"shell.execute_reply": "2026-04-08T14:48:27.831089Z"
504-
}
505-
},
461+
"execution_count": null,
462+
"id": "9",
463+
"metadata": {},
506464
"outputs": [
507465
{
508466
"name": "stdout",
@@ -529,11 +487,6 @@
529487
}
530488
],
531489
"metadata": {
532-
"kernelspec": {
533-
"display_name": "pyrit-dev",
534-
"language": "python",
535-
"name": "pyrit-dev"
536-
},
537490
"language_info": {
538491
"codemirror_mode": {
539492
"name": "ipython",
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,61 @@
1+
# Framework
2+
3+
Learn how to use PyRIT's components to build red teaming workflows.
4+
5+
:::::{grid} 1 1 2 3
6+
:gutter: 3
7+
8+
::::{card} 📦 Datasets
9+
:link: ./datasets/0_dataset
10+
Load, create, and manage seed datasets for red teaming campaigns.
11+
::::
12+
13+
::::{card} ⚔️ Attacks & Executors
14+
:link: ./executor/0_executor
15+
Run single-turn and multi-turn attacks — Crescendo, TAP, Skeleton Key, and more.
16+
::::
17+
18+
::::{card} 🔌 Targets
19+
:link: ./targets/0_prompt_targets
20+
Connect to OpenAI, Azure, Anthropic, HuggingFace, HTTP endpoints, and custom targets.
21+
::::
22+
23+
::::{card} 🔄 Converters
24+
:link: ./converters/0_converters
25+
Transform prompts with text, audio, image, and video converters.
26+
::::
27+
28+
::::{card} 📊 Scoring
29+
:link: ./scoring/0_scoring
30+
Evaluate AI responses with true/false, Likert, classification, and custom scorers.
31+
::::
32+
33+
::::{card} 💾 Memory
34+
:link: ./memory/0_memory
35+
Track conversations, scores, and attack results with SQLite or Azure SQL.
36+
::::
37+
38+
::::{card} ⚙️ Setup & Configuration
39+
:link: ./setup/0_setup
40+
Initialize PyRIT, configure defaults, and manage resiliency settings.
41+
::::
42+
43+
::::{card} 📋 Scenarios
44+
:link: ./scenarios/0_scenarios
45+
Run standardized evaluation scenarios at scale across harm categories.
46+
::::
47+
48+
::::{card} 🗂️ Registry
49+
:link: ./registry/0_registry
50+
Register and discover targets, scorers, and converters via class and instance registries.
51+
::::
52+
53+
:::::
54+
55+
---
56+
57+
The sections above link to detailed guides for each component. The architecture below explains how the pieces fit together — it's primarily aimed at contributors.
58+
159
# Architecture
260

361
The main components of PyRIT are prompts, attacks, converters, targets, and scoring. The best way to contribute to PyRIT is by contributing to one of these components.

0 commit comments

Comments
 (0)