File size: 2,065 Bytes
3e72399 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | """
Gradio widgets for browsing datasets and examples in the interpretability app.
What this module provides:
- create_example_browser: a Dataset-like widget to preview/select examples (dev/public modes).
- create_dataset_selector: a dropdown to pick which dataset to browse.
Expected backends:
- loader.data.list_datasets()
- loader.data.get_examples(dataset, n=...)
"""
import gradio as gr
from typing import List, Dict
def create_example_browser(mode: str = "public") -> gr.Dataset:
"""
Create an example browser (grid/list) for selecting samples.
Args:
mode: "dev" or "public" — in "public" you typically show curated/precomputed
examples; in "dev" you may show more free-form or larger lists.
Expected usage:
datasets = list_datasets() # from loader/data.py
examples = get_examples(dataset, n=10)
Returns:
A gr.Dataset component configured for example selection.
"""
mode = (mode or "public").lower()
label = "Examples" if mode == "public" else "Example Browser (dev)"
samples_per_page = 6 if mode == "public" else 12
return gr.Dataset(
components=[
gr.Textbox(label="Context", lines=4, interactive=False),
gr.Textbox(label="Prompt", lines=2, interactive=False),
gr.Textbox(label="Answer", lines=2, interactive=False),
],
headers=["context", "prompt", "answer"],
label=label,
samples=None,
samples_per_page=samples_per_page,
type="index",
elem_id=f"example-browser-{mode}",
)
def create_dataset_selector() -> gr.Dropdown:
"""
Create a dataset selector dropdown.
Expected usage:
datasets = list_datasets() # from loader/data.py
dropdown.choices = datasets
Returns:
A gr.Dropdown component for choosing a dataset.
"""
return gr.Dropdown(
choices=[],
label="Dataset",
interactive=True,
allow_custom_value=False,
elem_id="dataset-selector",
)
|