> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-1917.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Démarrage rapide : Suivre les entrées et sorties d’un LLM

> Découvrez W&B Weave en ajoutant le Tracing à votre application LLM pour déboguer et surveiller les interactions avec le modèle.

export const GitHubLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="github-source-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    Source GitHub
  </a>;

export const ColabLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="colab-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01.21.03zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z" />
    </svg>
    Essayer sur Colab
  </a>;

<div style={{ display: 'flex', gap: '12px', flexWrap: 'wrap' }}>
  <ColabLink url="https://colab.research.google.com/github/wandb/docs/blob/main/weave/cookbooks/source/traces-quickstart.ipynb" />

  <GitHubLink url="https://github.com/wandb/docs/blob/main/weave/cookbooks/source/traces-quickstart.ipynb" />
</div>

Découvrez comment suivre les appels LLM avec Weave en ajoutant du tracing à votre code. Ce démarrage rapide vous montre comment tracer une requête vers OpenAI et consulter les résultats dans Weave UI.

<div id="what-youll-learn">
  ## Ce que vous apprendrez :
</div>

Ce guide vous montre comment :

* Importer et configurer Weave dans votre code
* Utiliser le décorateur `weave.op` pour suivre l’exécution de votre code
* Voir les traces dans Weave UI

<div id="prerequisites">
  ## Prérequis
</div>

* Un [compte W\&B](https://wandb.ai/signup)
* Python 3.8+ ou Node.js 18+
* Packages requis :
  * **Python**: `pip install weave openai`
  * **TypeScript**: `npm install weave openai`
* Une [clé API OpenAI](https://platform.openai.com/api-keys) configurée comme variable d'environnement

<div id="log-a-trace-to-a-new-project">
  ## Enregistrer une trace dans un nouveau projet
</div>

Pour commencer à suivre votre code et à consigner des traces dans Weave :

1. Importez la bibliothèque `weave` dans votre code.
2. Appelez `weave.init('your_wb_team/project_name')` dans votre code pour envoyer les informations de suivi à votre [équipe](/fr/platform/app/settings-page/teams) et à votre [projet](/fr/platform/hosting/iam/org_team_struct#project) W\&B. Si vous ne définissez pas d’équipe, les traces sont envoyées à votre [équipe par défaut](/fr/platform/app/settings-page/user-settings/#default-team). Si le projet spécifié n’existe pas dans votre équipe, Weave le crée.
3. Ajoutez le [`@weave.op()` décorateur](/fr/weave/guides/tracking/ops) aux fonctions spécifiques que vous souhaitez suivre. Bien que Weave suive automatiquement les appels aux LLM pris en charge, l’ajout du décorateur Weave vous permet de suivre les entrées, les sorties et le code de fonctions spécifiques. En TypeScript, le décorateur utilise la syntaxe suivante : `weave.op(your_function)`

L’exemple de code suivant envoie une requête à OpenAI (nécessite une [clé API OpenAI](https://platform.openai.com/docs/quickstart)) et Weave enregistre les informations de Tracing de la requête. La requête demande au modèle OpenAI d’extraire les noms de dinosaures à partir de l’entrée et d’identifier le régime alimentaire de chaque dinosaure (herbivore ou carnivore).

Exécutez l’exemple de code suivant pour suivre votre premier projet avec Weave :

<Tabs>
  <Tab title="Python">
    ```python lines {1-2,7-8,27-28} theme={null}
    # Importe la bibliothèque Weave
    import weave
    from openai import OpenAI

    client = OpenAI()

    # Weave suit automatiquement les entrées, les sorties et le code de cette fonction
    @weave.op()
    def extract_dinos(sentence: str) -> dict:
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {
                    "role": "system",
                    "content": """In JSON format extract a list of `dinosaurs`, with their `name`,
    their `common_name`, and whether its `diet` is a herbivore or carnivore"""
                },
                {
                    "role": "user",
                    "content": sentence
                }
                ],
                response_format={ "type": "json_object" }
            )
        return response.choices[0].message.content

    # Initialise Weave et définit l’équipe et le projet où consigner les données
    weave.init('your-team/traces-quickstart')

    sentence = """I watched as a Tyrannosaurus rex (T. rex) chased after a Triceratops (Trike), \
    both carnivore and herbivore locked in an ancient dance. Meanwhile, a gentle giant \
    Brachiosaurus (Brachi) calmly munched on treetops, blissfully unaware of the chaos below."""

    result = extract_dinos(sentence)
    print(result)
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript lines {1-2,7-8,20,24-25} theme={null}
    // Importe la bibliothèque Weave
    import * as weave from 'weave';
    import OpenAI from 'openai';

    const openai = new OpenAI();

    // Weave suit automatiquement les entrées, les sorties et le code de cette fonction  
    async function extractDinos(input: string) {
      const response = await openai.chat.completions.create({
        model: 'gpt-4o',
        messages: [
          {
            role: 'user',
            content: `In JSON format extract a list of 'dinosaurs', with their 'name', their 'common_name', and whether its 'diet' is a herbivore or carnivore: ${input}`,
          },
        ],
      });
      return response.choices[0].message.content;
    }
    const extractDinosOp = weave.op(extractDinos);

    async function main() {

      // Initialise Weave et définit l’équipe et le projet où consigner les données
      await weave.init('your-team/traces-quickstart');

      const result = await extractDinosOp(
        'I watched as a Tyrannosaurus rex (T. rex) chased after a Triceratops (Trike), both carnivore and herbivore locked in an ancient dance. Meanwhile, a gentle giant Brachiosaurus (Brachi) calmly munched on treetops, blissfully unaware of the chaos below.'
      );
      console.log(result);
    }

    main();

    ```
  </Tab>
</Tabs>

Lorsque vous appelez la fonction `extract_dinos`, Weave affiche dans le terminal des liens pour consulter vos traces. La sortie ressemble à ceci :

```shell theme={null}
weave:  $ pip install weave --upgrade
weave: Logged in as Weights & Biases user: example-username.
weave: View Weave data at https://wandb.ai/your-team/traces-quickstart/weave
weave: 🍩 https://wandb.ai/your-team/traces-quickstart/r/call/019ae171-7f32-7c96-8b42-931a32f900b7
{
  "dinosaurs": [
    {
      "name": "Tyrannosaurus rex",
      "common_name": "T. rex",
      "diet": "carnivore"
    },
    {
      "name": "Triceratops",
      "common_name": "Trike",
      "diet": "herbivore"
    },
    {
      "name": "Brachiosaurus",
      "common_name": "Brachi",
      "diet": "herbivore"
    }
  ]
}
```

<div id="see-traces-of-your-application-in-your-project">
  ## Voir les traces de votre application dans votre projet
</div>

Cliquez sur le lien affiché dans votre terminal, ou collez-le dans votre navigateur pour ouvrir Weave UI. Dans le panneau **Traces** de Weave UI, cliquez sur une trace pour afficher ses données, notamment son entrée, sa sortie, sa latence et l’utilisation des tokens.

<img src="https://mintcdn.com/wb-21fd5541-docs-1917/3MWX8CbDpiZp81wT/images/tutorial_trace_1.png?fit=max&auto=format&n=3MWX8CbDpiZp81wT&q=85&s=ecdf55c8fac2593ffcac55141a7d7daf" alt="Weave Trace Outputs 1" width="1614" height="1342" data-path="images/tutorial_trace_1.png" />

<div id="learn-more-about-traces">
  ## En savoir plus sur les traces
</div>

* Découvrez comment [décorer vos fonctions et récupérer des informations sur les appels](/fr/weave/guides/tracking/tracing).
* Essayez le [playground](/fr/weave/guides/tools/playground) pour tester différents modèles sur des traces enregistrées.
* [Explorez les intégrations](/fr/weave/guides/integrations/). Weave suit automatiquement les appels à OpenAI, Anthropic et bien d'autres bibliothèques LLM. Si votre bibliothèque LLM ne fait pas actuellement partie de nos intégrations, vous pouvez facilement suivre les appels à d'autres bibliothèques ou frameworks LLM en les encapsulant avec `@weave.op()`.

<div id="next-steps">
  ## Étapes suivantes
</div>

[Commencez par évaluer votre application](/fr/weave/tutorial-eval), puis découvrez comment [évaluer une application RAG](/fr/weave/tutorial-rag).
