> ## 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.

# Comprendre les Ops, les Appels et les Traces

> Découvrez comment les Ops, les Appels et les Traces forment la base du système de Tracing de W&B Weave.

Le système de Tracing de W\&B Weave repose sur quatre concepts liés : les Ops, les Appels, les Traces et les Threads. Cette page définit chacun de ces concepts et explique comment ils s’articulent entre eux, afin que vous puissiez interpréter ce que Weave capture lorsque vous instrumentez et exécutez votre application.

<div id="ops">
  ## Ops
</div>

Un **Op** est une fonction suivie et versionnée. Lorsque vous décorez une fonction avec `@weave.op()` (Python) ou l’enveloppez avec `weave.op()` (TypeScript), Weave capture automatiquement son code, ses entrées, ses sorties et ses métadonnées d’exécution. Les Ops sont les éléments de base du tracing, des scorers d’évaluation et de tout calcul suivi.

<CodeGroup>
  ```python Python theme={null}
      @weave.op
      async def my_function(){
        ...  }
  ```

  ```typescript twoslash TypeScript theme={null}
  // @noErrors
  function myFunction() {
      ...
  }

  const myFunctionOp = weave.op(myFunction)
  ```
</CodeGroup>

<div id="calls">
  ## Appels
</div>

Un **Appel** est une exécution enregistrée d’une op. Chaque fois qu’une op s’exécute, Weave crée un Appel qui enregistre :

* Les arguments d’entrée
* La valeur de sortie
* Le temps d’exécution et la latence
* Les relations parent-enfant (pour les appels imbriqués)
* Toutes les erreurs qui se produisent

Les appels apparaissent sous forme de **Traces** dans la Weave UI et fournissent les données nécessaires au débogage, à l’analyse et à l’évaluation. Pour la structure complète de l’objet Appel et ses propriétés, voir la [référence du schéma d’appel](/fr/weave/guides/tracking/call-schema-reference).

Les appels sont comparables aux spans dans le modèle de données [OpenTelemetry](https://opentelemetry.io). Un Appel peut :

* Appartenir à une trace, une collection d’Appels dans le même contexte d’exécution.
* Avoir des Appels parents et enfants, formant une structure arborescente.

<div id="traces">
  ## Traces
</div>

Les traces sont des arborescences complètes d'appels qui partagent le même contexte d'exécution. Chaque trace contient un identifiant (`trace_id`) que vous pouvez utiliser pour récupérer l'arborescence complète des appels. Si vous récupérez les informations d'un appel à l'aide de l'ID de l'appel, Weave ne renvoie que les données de l'appel spécifié, et non celles de ses appels enfants.

<div id="threads">
  ## Threads
</div>

Les Threads sont des collections de Traces associées à une même session ou conversation. Vous pouvez utiliser les Threads pour analyser ou évaluer l’ensemble de la conversation, plutôt que des Appels individuels.

Le schéma suivant illustre les relations entre les Threads, les Traces et les Appels :

```text theme={null}
Thread: "session-abc"
  ├── Turn 1 (trace_id: aaa) -> user says "Hi"
  │     ├── LLM call
  │     └── format response
  ├── Turn 2 (trace_id: bbb) -> user says "What is the capital of France?"
  │     ├── RAG retrieval
  │     ├── LLM call
  │     └── format response
  └── Turn 3 (trace_id: ccc) -> user says "Thanks"
        └── LLM call
```
