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

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

> Découvrez W&B Weave en ajoutant le traçage à 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 traçage à votre code. Ce démarrage rapide vous montre comment tracer une requête vers OpenAI et consulter les résultats dans Weave UI. Il s’adresse aux développeurs qui découvrent Weave et souhaitent instrumenter une application LLM pour le débogage et la surveillance."

<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.10+ 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>

Dans cette section, vous instrumentez une petite application afin que Weave puisse enregistrer ses entrées, ses sorties et son code. Pour commencer à suivre votre code et à enregistrer 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, Weave envoie les traces à votre [équipe par défaut](/fr/platform/app/settings-page/user-settings/#default-team). Si le projet indiqué n'existe pas dans votre équipe, Weave le crée.
3. Ajoutez le [`décorateur @weave.op()`](/fr/weave/guides/tracking/ops) aux fonctions que vous souhaitez suivre. Bien que Weave suive automatiquement les appels aux LLM pris en charge, le décorateur 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 traçage 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).

L'exemple de code suivant suit 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 dans lesquels enregistrer 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 twoslash lines {1-2,7-8,20,24-25} theme={null}
    // @noErrors
    // 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 dans lesquels enregistrer 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 qui vous permettent de voir vos traces. La sortie ressemble à ceci :

```text 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>

Maintenant que votre code a produit une trace, vous pouvez l’inspecter dans Weave UI. 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 la 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/aRvhhwVWqlxBzke5/images/tutorial_trace_1.png?fit=max&auto=format&n=aRvhhwVWqlxBzke5&q=85&s=0d66b4d2ef8d90555ad340dbc0cd4ec7" alt="Panneau Traces de Weave UI montrant la trace de la fonction extract_dinos, y compris son entrée, sa sortie, sa latence et l’utilisation des tokens." width="1614" height="1342" data-path="images/tutorial_trace_1.png" />

Vous avez maintenant enregistré et affiché votre première trace Weave.

<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 partie des intégrations Weave, 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).
