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

# Afficher et personnaliser l’affichage des traces

> Afficher les appels dans l’interface utilisateur et personnaliser l’affichage des données de trace

Après avoir créé des appels dans W\&B Weave, vous souhaitez souvent ouvrir un appel unique pour inspecter ses entrées, ses sorties et ses métadonnées. Cette page explique comment afficher un appel dans l’interface utilisateur ou dans le SDK, et comment personnaliser l’affichage des données de trace par Weave dans l’interface utilisateur à l’aide de `weave.Markdown`. Utilisez les onglets suivants pour choisir l’interface adaptée à votre flux de travail.

<Tabs>
  <Tab title="Application web">
    Pour afficher un appel dans l’interface utilisateur :

    1. Accédez à [wandb.ai](https://wandb.ai/) et sélectionnez votre projet.
    2. Dans la barre latérale du projet Weave, cliquez sur **Traces**.
    3. Trouvez l’appel que vous souhaitez afficher dans le tableau.
    4. Cliquez sur l’appel pour ouvrir sa page de détails.

    Pour plus d’informations sur la vue de trace, voir [Naviguer dans la vue Weave Trace](/fr/weave/guides/tracking/trace-tree).
  </Tab>

  <Tab title="Python">
    Pour afficher un appel à l’aide du SDK Python W\&B Weave, utilisez la méthode [`get_call`](/fr/weave/reference/python-sdk/trace/weave_client#method-get_call) :

    ```python lines theme={null}
    import weave

    # Initialize the client
    client = weave.init("your-project-name")

    # Get a specific call by its ID
    call = client.get_call("call-uuid-here")

    print(call)
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript twoslash lines theme={null}
    // @noErrors
    import * as weave from 'weave'

    // Initialize the client
    const client = await weave.init('intro-example')

    // Get a specific call by its ID
    const call = await client.getCall('call-uuid-here')

    console.log(call)
    ```
  </Tab>

  <Tab title="API HTTP">
    Pour afficher un appel à l’aide de l’API de service, effectuez une requête vers le point de terminaison [`/call/read`](https://docs.wandb.ai/weave/reference/service-api/calls/call-read).

    ```bash theme={null}
    curl -L 'https://trace.wandb.ai/call/read' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
        "project_id": "string",
        "id": "string",
    }'
    ```
  </Tab>
</Tabs>

<div id="customize-rendered-traces-with-weavemarkdown">
  ## Personnaliser les traces rendues avec `weave.Markdown`
</div>

Une fois que vous pouvez afficher un Appel, vous souhaiterez peut-être contrôler la façon dont ses entrées et sorties apparaissent dans l’interface utilisateur. Utilisez `weave.Markdown` pour personnaliser la façon dont Weave affiche vos informations de trace, sans perdre les données d’origine. Cela vous permet d’afficher vos entrées et sorties sous forme de blocs de contenu mis en forme et faciles à lire, tout en préservant la structure de données sous-jacente.

<Tabs>
  <Tab title="Python">
    Utilisez les fonctions `postprocess_inputs` et `postprocess_output` dans votre décorateur `@weave.op` pour mettre en forme vos données de trace. L’exemple de code suivant utilise des postprocesseurs pour afficher un appel dans Weave avec une mise en forme plus lisible :

    ```python lines theme={null}
    import weave

    def postprocess_inputs(query) -> weave.Markdown:
        search_box = f"""
    **Search Query:**
    ``+`
    {query}
    ``+`
    """
        return {"search_box": weave.Markdown(search_box),
                "query": query}

    def postprocess_output(docs) -> weave.Markdown:
        formatted_docs = f"""
    # {docs[0]["title"]}

    {docs[0]["content"]}

    [Read more]({docs[0]["url"]})

    ---

    # {docs[1]["title"]}

    {docs[1]["content"]}

    [Read more]({docs[1]["url"]})
    """
        return weave.Markdown(formatted_docs)

    @weave.op(
        postprocess_inputs=postprocess_inputs,
        postprocess_output=postprocess_output,
    )
    def rag_step(query):
        # exemples d’articles de journaux sur les entreprises du S&P 500
        docs = [
            {
                "title": "OpenAI",
                "content": "OpenAI is a company that makes AI models.",
                "url": "https://www.openai.com",
            },
            {
                "title": "Google",
                "content": "Google is a company that makes search engines.",
                "url": "https://www.google.com",
            },
        ]
        return docs

    if __name__ == "__main__":
        weave.init('markdown_renderers')
        rag_step("Tell me about OpenAI")
    ```
  </Tab>

  <Tab title="TypeScript">
    ```plaintext theme={null}
    Cette fonctionnalité n’est pas encore disponible dans le SDK TypeScript.
    ```
  </Tab>
</Tabs>

Après avoir exécuté l’op, Weave affiche le Markdown mis en forme à côté des données d’origine dans la page de détails de l’Appel. La capture d’écran suivante montre les sorties non formatées et formatées côte à côte.

<img src="https://mintcdn.com/wb-21fd5541/nH7Qx1F6mfkUr7pE/weave/guides/tracking/imgs/md-call-render.png?fit=max&auto=format&n=nH7Qx1F6mfkUr7pE&q=85&s=3ab98e6b7301a33c5ae5b5d5f11ceb37" alt="Un Appel affiché dans l’interface Weave à l’aide de l’exemple de code." width="1440" height="1980" data-path="weave/guides/tracking/imgs/md-call-render.png" />
