| """ |
| 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", |
| ) |
|
|