> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Créer et gérer des vues enregistrées

> Personnalisez la façon dont vous interagissez avec les appels de fonction tracés et les évaluations

Dans Weave, les *vues enregistrées* vous permettent de personnaliser la façon dont vous interagissez avec les appels de fonction tracés et les évaluations. En définissant une vue enregistrée, vous pouvez configurer des filtres, le tri et la visibilité des colonnes pour accéder rapidement aux données pertinentes. Les vues enregistrées vous permettent, à vous et à votre équipe, de revenir à la même sélection de traces ou d'évaluations sans devoir réappliquer la configuration à chaque fois.

Vous pouvez créer, modifier et enregistrer des vues directement dans le SDK Python de Weave ou via l'interface utilisateur. Le SDK Python offre un contrôle précis pour le filtrage et les requêtes par programmation, tandis que l'interface utilisateur vous permet d'explorer et d'enregistrer différentes configurations de tableau dans les onglets **Traces** et **Evals**.

Ce guide couvre :

* [Comment créer et modifier des vues enregistrées dans le SDK Python](#saved-views-in-the-python-sdk).
* [Comment créer des vues enregistrées et interagir avec elles dans l'interface Weave](#saved-views-in-the-ui).

<div id="saved-views-in-the-python-sdk">
  ## Vues enregistrées dans le SDK Python
</div>

La classe `SavedView` de Weave permet d'enregistrer, de filtrer, de trier et de personnaliser des vues sur les données de trace et d'évaluation. Les sections suivantes expliquent comment initialiser une vue, configurer ses colonnes et ses filtres, puis l'enregistrer afin de pouvoir récupérer plus tard les appels correspondants.

<div id="initialize-a-savedview">
  ### Initialiser un `SavedView`
</div>

Initialisez une instance de `SavedView` dans votre projet Weave :

```python lines theme={null}
import weave
client = weave.init("[MY_PROJECT]")

view = weave.SavedView()
```

<div id="visualize-the-savedview-as-a-grid">
  ### Afficher la `SavedView` sous forme de grille
</div>

Utilisez `.to_grid()` pour afficher la vue enregistrée sous forme de grille. Spécifiez le nombre maximal de lignes à afficher avec `limit`.

```python lines theme={null}
view.to_grid(limit=5)
```

Affichez la représentation en grille avec `.show()` :

```python lines theme={null}
view.to_grid().show()
```

<div id="set-displayed-columns">
  ### Définir les colonnes affichées
</div>

Utilisez `.set_columns()` pour définir les colonnes à afficher dans la vue. Indiquez une ou plusieurs colonnes à afficher.

```python lines theme={null}
view.set_columns("id", "op_name")
```

<div id="add-columns">
  ### Ajouter des colonnes
</div>

Utilisez `.add_column()` pour ajouter une ou plusieurs nouvelles colonnes à la vue. Indiquez une ou plusieurs colonnes à ajouter.

```python lines theme={null}
# Ajouter une colonne avec le spécificateur de champ et le libellé "Created"
view.add_column("Created")
# Facultatif : vous pouvez ajouter un second argument pour spécifier un nom de libellé différent pour la nouvelle colonne. Par défaut, le spécificateur de champ est utilisé comme libellé.
```

<div id="sort-columns">
  ### Trier les colonnes
</div>

Utilisez `.sort_by()` pour trier les résultats selon une colonne spécifique. Indiquez le nom de la colonne à trier et l’ordre de tri (`asc` ou `desc`).

```python lines theme={null}
view.sort_by("started_at", "desc")
```

<div id="filter-by-operation-name">
  ### Filtrer par nom d’opération
</div>

Dans Weave, chaque trace ou évaluation est associée à un nom d’opération.
Utilisez `.filter_op()` pour filtrer la `SavedView` afin de n’inclure que les appels pour lesquels cette opération précise s’est exécutée.

```python lines theme={null}
view.filter_op("Evaluation.predict_and_score")
```

<div id="filter-by-operator-and-condition">
  ### Filtrer par opérateur et condition
</div>

Utilisez `.add_filter()` pour appliquer un filtre personnalisé à la vue. Définissez le filtre à l’aide de l’un des [opérateurs de filtre pris en charge](#filter-operators) et d’une condition.

```python lines theme={null}
view.add_filter("output.model_latency", ">=", 5)
```

<div id="filter-operators">
  #### Opérateurs de filtre
</div>

| Opérateur        | Description                                                      | Exemple                                                 |
| ---------------- | ---------------------------------------------------------------- | ------------------------------------------------------- |
| `"contains"`     | Vérifie si une chaîne contient une sous-chaîne.                  | `view.add_filter("output.status", "contains", "error")` |
| `"equals"`       | Vérifie si une chaîne correspond exactement à une valeur donnée. | `view.add_filter("input.category", "equals", "Alice")`  |
| `"in"`           | Vérifie si une chaîne figure dans une liste de valeurs.          | `view.add_filter("category", "in", ["A", "B", "C"])`    |
| `"="`            | Vérifie si un nombre est égal à une valeur.                      | `view.add_filter("output.score", "=", 80)`              |
| `"≠", "!="`      | Vérifie si un nombre n'est pas égal à une valeur.                | `view.add_filter("metrics.loss", "!=", 0.5)`            |
| `"<"`            | Vérifie si un nombre est inférieur à une valeur.                 | `view.add_filter("age", "<", 30)`                       |
| `"≤", "<="`      | Vérifie si un nombre est inférieur ou égal à une valeur.         | `view.add_filter("metric.value", "<=", 100)`            |
| `">"`            | Vérifie si un nombre est supérieur à une valeur.                 | `view.add_filter("output.score", ">", 90)`              |
| `"≥", ">="`      | Vérifie si un nombre est supérieur ou égal à une valeur.         | `view.add_filter("output.model_latency", ">=", 5)`      |
| `"is"`           | Vérifie si un champ booléen a la valeur `True` ou `False`.       | `view.add_filter("is_active", "is", True)`              |
| `"after"`        | Vérifie si une date est postérieure à un horodatage donné.       | `view.add_filter("started_at", "after", "2024-01-01")`  |
| `"before"`       | Vérifie si une date est antérieure à un horodatage donné.        | `view.add_filter("ended_at", "before", "2024-12-31")`   |
| `"is empty"`     | Vérifie si un champ est vide (`None` ou `""`).                   | `view.add_filter("comments", "is empty", None)`         |
| `"is not empty"` | Vérifie si un champ n'est pas vide.                              | `view.add_filter("attachments", "is not empty", None)`  |

<div id="remove-filters">
  ### Supprimer des filtres
</div>

Utilisez `.remove_filter()` pour supprimer un filtre spécifique de la vue en indiquant son index ou le nom du champ.

```python lines theme={null}
view.remove_filter("output.model_latency")
```

Utilisez `.remove_filters()` pour supprimer tous les filtres.

```python lines theme={null}
view.remove_filters()
```

<div id="save-the-savedview">
  ### Enregistrez la `SavedView`
</div>

Utilisez `.save()` pour publier la vue enregistrée sur Weave.

```python lines theme={null}
view.save()
```

<div id="retrieve-function-calls">
  ### Récupérer les appels de fonction
</div>

Utilisez `.get_calls()` pour récupérer les appels de fonction correspondant aux filtres de la vue enregistrée. Vous pouvez spécifier des paramètres facultatifs, comme `limit` et `offset`.

```python lines theme={null}
calls = view.get_calls(limit=10)
```

<div id="saved-views-in-the-ui">
  ## Vues enregistrées dans l’UI
</div>

Vous pouvez créer, charger, renommer et modifier des vues enregistrées dans l’interface Weave. L’interface utilisateur est le moyen le plus rapide de capturer une configuration ad hoc de tableau sous forme de vue réutilisable. Pour un contrôle programmatique, utilisez le [Python SDK](#saved-views-in-the-python-sdk).

<div id="create-a-saved-view">
  ### Créer une vue enregistrée
</div>

1. Accédez à l’onglet **Traces** ou **Evals**.
2. Ajustez l’un des paramètres suivants dans la configuration de votre tableau :
   * Filtres
   * Ordre de tri
   * Taille de la page
   * Visibilité des colonnes
   * Épinglage des colonnes
3. Enregistrez la vue de l’une des deux manières suivantes :
   * Dans le coin supérieur droit, cliquez sur **Enregistrer la vue**.
   * Cliquez sur le bouton **menu** (<Icon icon="bars" iconType="solid" />) à gauche de **Enregistrer la vue**. Dans le menu déroulant, cliquez sur **+ Save as new view**.

<div id="load-a-saved-view">
  ### Charger une vue enregistrée
</div>

1. Accédez à l’onglet **Traces** ou **Evals**.
2. Cliquez sur le bouton **menu** (<Icon icon="bars" iconType="solid" />) à gauche du titre de l’onglet. Un menu déroulant contenant toutes les vues enregistrées apparaît.
3. Cliquez sur la vue que vous souhaitez ouvrir. La vue enregistrée s’affiche dans l’onglet **Traces** ou **Evals**.

<div id="rename-a-saved-view">
  ### Renommer une vue enregistrée
</div>

1. Suivez les étapes décrites dans [Charger une vue enregistrée](#load-a-saved-view).
2. Dans l’angle supérieur gauche de l’onglet **Traces** ou **Evals**, cliquez sur le nom de la vue.
3. Saisissez un nouveau nom pour la vue.
4. Pour enregistrer le nouveau nom de la vue, appuyez sur **Entrée**.

<div id="edit-a-saved-view">
  ### Modifier une vue enregistrée
</div>

1. Suivez les étapes décrites dans [Charger une vue enregistrée](#load-a-saved-view).
2. Ajustez la configuration de votre tableau.
3. Dans le coin supérieur droit, cliquez sur **Enregistrer la vue**.

<div id="delete-a-saved-view">
  ### Supprimer une vue enregistrée
</div>

<Warning>
  Vous pouvez supprimer une vue si vous estimez qu’elle ne vous est plus utile, à vous et à votre équipe. Vous ne pouvez pas annuler cette action.
</Warning>

1. Accédez à l’onglet **Traces** ou **Evals**.
2. [Chargez la vue](#load-a-saved-view) que vous souhaitez supprimer.
3. Cliquez sur le bouton **menu** (<Icon icon="bars" iconType="solid" />) à gauche de **Enregistrer la vue**.
4. Dans le menu déroulant, cliquez sur **Supprimer la vue**.
5. Dans la fenêtre modale, confirmez en cliquant sur **Supprimer la vue**. Sinon, cliquez sur **Annuler** pour annuler la suppression.

<div id="return-to-the-default-view">
  ### Revenir à la vue par défaut
</div>

1. Accédez à l’onglet **Traces** ou **Evals**.
2. Cliquez sur le bouton **menu** (<Icon icon="bars" iconType="solid" />) à droite de l’onglet **Traces** ou **Evals**. Un menu déroulant répertoriant toutes les vues enregistrées s’affiche.
3. En bas du menu, cliquez sur **Traces** ou **Evals**. La vue par défaut s’affiche.
