Passer au contenu principal
L’API W&B Report and Workspace est en aperçu public.
Bibliothèque Python pour interagir de manière programmatique avec l’API W&B Workspace.
# Comment importer
import wandb_workspaces.workspaces as ws
import wandb_workspaces.reports.v2 as wr

# Exemple de création d'un workspace
ws.Workspace(
     name="Example W&B Workspace",
     entity="entity", # entité propriétaire du workspace
     project="project", # projet auquel le workspace est associé
     sections=[
         ws.Section(
             name="Validation Metrics",
             panels=[
                 wr.LinePlot(x="Step", y=["val_loss"]),
                 wr.BarPlot(metrics=["val_accuracy"]),
                 wr.ScalarChart(metric="f1_score", groupby_aggfunc="mean"),
             ],
             is_open=True,
         ),
     ],
)
workspace.save()

class RunSettings

Paramètres d’un run dans un runset (barre de gauche). Attributs :
  • color (str): La couleur du run dans l’interface utilisateur. Peut être au format hexadécimal (#ff0000), une couleur CSS (red) ou au format RGB (rgb(255, 0, 0))
  • disabled (bool): Indique si le run est désactivé (œil fermé dans l’interface utilisateur). La valeur par défaut est False.

class RunsetSettings

Paramètres du runset (la barre de gauche contenant les runs) dans un Workspace. Attributs :
  • query (str): Une requête pour filtrer le runset (peut être une expression régulière, voir le paramètre suivant).
  • regex_query (bool): Indique si la requête (ci-dessus) est une expression régulière. La valeur par défaut est False.
  • filters (Union[str, LList[FilterExpr], Or, And]): Filtres à appliquer au runset.
    • Sous forme de liste de FilterExpr : les filtres sont combinés avec l’opérateur AND.
    • Sous forme de chaîne : utilisez des expressions de type Python, par ex., “Config(‘lr’) = 0.001 and State = ‘finished’”
  • Supports operators: =, ==, !=, <, >, <=, >=, in, not in, and, or
    • Sous forme de combinateur Or/And : permet d’utiliser une logique OR et des groupes imbriqués. Par ex., Or(And(Config(“lr”) == 0.01, Metric(“State”) == “finished”), Config(“lr”) == 0.1)
  • groupby (LList[expr.MetricType]): Une liste de métriques selon lesquelles regrouper les éléments du runset. Définissez-la sur Metric, Summary, Config, Tags ou KeysInfo.
  • order (LList[expr.Ordering]): Une liste de métriques et d’ordres de tri à appliquer au runset.
  • run_settings (Dict[str, RunSettings]): Un dictionnaire de paramètres de run, où la clé est l’ID du run et la valeur un objet RunSettings.
  • pinned_columns (LList[str]): Liste des noms de colonnes à épingler.
  • Column names use format: “run:displayName”, “summary:metric”, “config:param”.
  • run: displayName est ajouté automatiquement s’il n’est pas déjà présent.
  • Example: [“summary:accuracy”, “summary:loss”]
  • baseline_run (Optional[str]): Le slug W&B du run de référence (la valeur de wandb.Run.id, par ex. "1mbku38n" — également le dernier segment du chemin d’une URL de run). Utilisé pour les colonnes delta et le style de comparaison. Lorsqu’il est défini, le run de référence est automatiquement ajouté à pinned_runs pour correspondre au comportement de l’application W&B. Il doit faire référence à un run du Workspace lui-même — les épingles entre projects ne sont pas encore prises en charge par ce SDK (voir le volet latéral “Add cross-project runs” de l’application W&B pour l’équivalent dans l’interface utilisateur).
  • pinned_runs (LList[str]): Liste ordonnée de slugs de runs W&B à conserver visibles dans le sélecteur de runs et à toujours récupérer pour les graphiques. Transmettez des chaînes de slug (wandb.Run.id), et non des ID GraphQL. L’application W&B limite ce nombre à 20 entrées.
Exemple :
    # Utilisation de filtres sous forme de chaîne (nouveau)
    RunsetSettings(
         filters="Config('learning_rate') = 0.001 and State = 'finished'",
         pinned_columns=["summary:accuracy", "summary:loss"],
         baseline_run="1mbku38n",  # wandb.Run.id (le slug de l'URL)
         pinned_runs=["1mbku38n", "2u1g3j1c"],
    )

    # Utilisation d'une liste FilterExpr (méthode d'origine)
    RunsetSettings(
         filters=[expr.Config("learning_rate") == 0.001],
         pinned_columns=["summary:accuracy", "summary:loss"],
    )

méthode convert_filterexpr_list_to_string

convert_filterexpr_list_to_string()
Convertit une liste de FilterExpr ou un Or/And en expression sous forme de chaîne.

méthode ensure_baseline_pinned

ensure_baseline_pinned()
Respectez l’invariant de l’application W&B : un run de référence est toujours aussi épinglé. Le gestionnaire d’action frontend setBaselineRun passe par setRunPinnedAndBaseline, de sorte que toute spécification produite par l’interface utilisateur inclut l’ID de référence dans pinnedRunIds. Nous appliquons la même règle ici afin que les spécifications produites par le SDK soient cohérentes.

méthode validate_and_setup_columns

validate_and_setup_columns()
Assurez-vous que run:displayName est présent et configurez les champs de colonne internes.

class Section

Représente une section dans un Workspace. Attributs :
  • name (str): Le nom/titre de la section.
  • panels (LList[PanelTypes]): Une liste ordonnée de panneaux dans la section. Par défaut, le premier se trouve en haut à gauche et le dernier en bas à droite.
  • is_open (bool): Indique si la section est ouverte ou fermée. Par défaut, elle est fermée.
  • pinned (bool): Indique si la section est épinglée. Les sections épinglées apparaissent en haut du Workspace. La valeur par défaut est False.
  • layout_settings (SectionLayoutSettings): Paramètres de mise en page des panneaux dans la section.
  • panel_settings: Paramètres au niveau des panneaux appliqués à tous les panneaux de la section, similaires à WorkspaceSettings pour une Section.

class SectionLayoutSettings

Paramètres de mise en page des panneaux d’une section, généralement visibles en haut à droite de la section dans l’UI Workspace de W&B App. Attributs :
  • columns (int): Le nombre de colonnes dans la mise en page. La valeur par défaut est 3.
  • rows (int): Le nombre de lignes dans la mise en page. La valeur par défaut est 2.

class SectionPanelSettings

Paramètres de panneau pour une section, similaires à WorkspaceSettings pour une section. Les paramètres appliqués ici peuvent être remplacés par des paramètres de panneau plus précis, selon l’ordre de priorité suivant : Section < Panel. Attributs :
  • x_axis (str): Paramètre du nom de la métrique de l’axe X. Par défaut, la valeur est “Step”.
  • x_min Optional[float]: Valeur minimum pour l’axe x.
  • x_max Optional[float]: Valeur maximum pour l’axe x.
  • smoothing_type (Literal[‘exponentialTimeWeighted’, ‘exponential’, ‘gaussian’, ‘average’, ‘none’]): Type de lissage appliqué à tous les panneaux.
  • smoothing_weight (int): Poids du lissage appliqué à tous les panneaux.

class Workspace

Représente un Workspace W&B, y compris les sections, les paramètres et la configuration des ensembles de runs. Attributs :
  • entity (str): L’entité dans laquelle ce Workspace sera enregistré (généralement le nom d’un utilisateur ou d’une équipe).
  • project (str): Le projet dans lequel ce Workspace sera enregistré.
  • name: Le nom du Workspace.
  • sections (LList[Section]): Une liste ordonnée des sections du Workspace. La première section se trouve en haut du Workspace.
  • settings (WorkspaceSettings): Les paramètres du Workspace, généralement visibles en haut du Workspace dans l’UI.
  • runset_settings (RunsetSettings): Les paramètres du runset (la barre de gauche contenant les runs) dans un Workspace.
  • auto_generate_panels (bool): Indique s’il faut générer automatiquement des panneaux pour toutes les clés enregistrées dans ce projet. Recommandé si vous souhaitez que toutes les données disponibles soient visualisées par défaut. Ce paramètre ne peut être défini qu’au moment de la création du Workspace et ne peut plus être modifié ensuite.

propriété auto_generate_panels


propriété url

L’URL du Workspace dans l’application W&B.

méthode de classe from_url

from_url(url: str)
Obtient un workspace à partir d’une URL.

méthode save

save()
Enregistrez le Workspace actuel dans W&B. Retourne :
  • Workspace: Le Workspace mis à jour avec le nom interne et l’ID enregistrés.

méthode save_as_new_view

save_as_new_view()
Enregistrez le Workspace actuel en tant que nouvelle vue dans W&B. Retourne :
  • Workspace: Le Workspace mis à jour, avec le nom interne et l’ID enregistrés.

class WorkspaceSettings

Paramètres du Workspace, généralement visibles en haut du Workspace dans l’interface utilisateur. Cet objet inclut des paramètres pour l’axe x, le lissage, les valeurs aberrantes, les panneaux, les infobulles, les runs et la barre de requête des panneaux. Les paramètres appliqués ici peuvent être surchargés par des paramètres de Section et de Panel plus spécifiques, selon cet ordre de priorité : Workspace < Section < Panel Attributs :
  • x_axis (str): Paramètre du nom de la métrique de l’axe x.
  • x_min (Optional[float]): Valeur minimale pour l’axe x.
  • x_max (Optional[float]): Valeur maximale pour l’axe x.
  • smoothing_type (Literal[‘exponentialTimeWeighted’, ‘exponential’, ‘gaussian’, ‘average’, ‘none’]): Type de lissage appliqué à tous les panneaux.
  • smoothing_weight (int): Poids du lissage appliqué à tous les panneaux.
  • ignore_outliers (bool): Ignore les valeurs aberrantes dans tous les panneaux.
  • sort_panels_alphabetically (bool): Trie les panneaux de toutes les sections par ordre alphabétique.
  • group_by_prefix (Literal[“first”, “last”]): Regroupe les panneaux par premier ou dernier préfixe (first ou last). La valeur par défaut est last.
  • remove_legends_from_panels (bool): Supprime les légendes de tous les panneaux.
  • tooltip_number_of_runs (Literal[“default”, “all”, “none”]): Le nombre de runs à afficher dans l’infobulle.
  • tooltip_color_run_names (bool): Indique s’il faut colorer les noms des runs dans l’infobulle pour correspondre au runset (True) ou non (False). La valeur par défaut est True.
  • max_runs (int): Le nombre maximal de runs à afficher par panneau (il s’agira des 10 premiers runs du runset).
  • point_visualization_method (Literal[“line”, “point”, “line_point”]): La méthode de visualisation des points.
  • panel_search_query (str): La requête de la barre de recherche des panneaux (peut être une expression regex).
  • auto_expand_panel_search_results (bool): Indique s’il faut développer automatiquement les résultats de recherche des panneaux.