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

# Exemples d'utilisation

> Découvrez comment utiliser Serverless Inference à l'aide d'exemples de code concrets


Ces exemples montrent comment utiliser Serverless Inference avec Weave pour le tracing, l'évaluation et la comparaison.

<div id="basic-example-trace-llama-31-8b-with-weave">
  ## Exemple de base : Tracing de Llama 3.1 8B avec Weave
</div>

Cet exemple montre comment envoyer un prompt au modèle **Llama 3.1 8B** et tracer l'appel avec Weave. Tracing capture l'intégralité des entrées et des sorties de l'appel LLM, surveille les performances et vous permet d'analyser les résultats dans la Weave UI.

<Tip>
  Pour en savoir plus, consultez [Tracing dans Weave](/fr/weave/guides/tracking/tracing).
</Tip>

Dans cet exemple :

* Vous définissez une fonction décorée avec `@weave.op()` qui effectue une requête de Chat Completion
* Vos traces sont enregistrées et associées à votre entité et à votre projet W\&B
* La fonction est automatiquement tracée, avec journalisation des entrées, des sorties, de la latence et des métadonnées
* Le résultat s'affiche dans le terminal, et la trace apparaît dans votre onglet **Traces** sur [https://wandb.ai](https://wandb.ai)

Avant d'exécuter cet exemple, effectuez les [prérequis](/fr/inference/prerequisites/).

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

# Définir l'équipe et le projet Weave pour le tracing
weave.init("<your-team>/<your-project>")

client = openai.OpenAI(
    base_url='https://api.inference.wandb.ai/v1',

    # Créez une clé API sur https://wandb.ai/settings
    api_key="<your-api-key>",

    # Facultatif : équipe et projet pour le suivi d'utilisation
    project="wandb/inference-demo",
)

# Tracer l'appel au modèle dans Weave
@weave.op()
def run_chat():
    response = client.chat.completions.create(
        model="meta-llama/Llama-3.1-8B-Instruct",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Tell me a joke."}
        ],
    )
    return response.choices[0].message.content

# Exécuter et journaliser l'appel tracé
output = run_chat()
print(output)
```

Après avoir exécuté le code, affichez la trace dans Weave de l’une des façons suivantes :

1. Cliquez sur le lien affiché dans le terminal (par exemple : `https://wandb.ai/<your-team>/<your-project>/r/call/01977f8f-839d-7dda-b0c2-27292ef0e04g`)
2. Ou accédez à [https://wandb.ai](https://wandb.ai) et sélectionnez l’onglet **Traces**

<div id="advanced-example-use-weave-evaluations-and-leaderboards">
  ## Exemple avancé : utiliser Weave Evaluations et les classements
</div>

En plus du tracing des appels de modèle, vous pouvez également évaluer les performances et publier des classements. Cet exemple compare deux modèles sur un jeu de données de questions-réponses.

Avant d’exécuter cet exemple, suivez les [prérequis](/fr/inference/prerequisites/).

```python theme={null}
import os
import asyncio
import openai
import weave
from weave.flow import leaderboard
from weave.trace.ref_util import get_ref

# Définir l'équipe et le projet Weave pour le suivi
weave.init("<your-team>/<your-project>")

dataset = [
    {"input": "What is 2 + 2?", "target": "4"},
    {"input": "Name a primary color.", "target": "red"},
]

@weave.op
def exact_match(target: str, output: str) -> float:
    return float(target.strip().lower() == output.strip().lower())

class WBInferenceModel(weave.Model):
    model: str

    @weave.op
    def predict(self, prompt: str) -> str:
        client = openai.OpenAI(
            base_url="https://api.inference.wandb.ai/v1",
            # Créez une clé API sur https://wandb.ai/settings
            api_key="<your-api-key>",
            # Facultatif : équipe et projet pour le suivi de l'utilisation
            project="<your-team>/<your-project>",
        )
        resp = client.chat.completions.create(
            model=self.model,
            messages=[{"role": "user", "content": prompt}],
        )
        return resp.choices[0].message.content

llama = WBInferenceModel(model="meta-llama/Llama-3.1-8B-Instruct")
deepseek = WBInferenceModel(model="deepseek-ai/DeepSeek-V3-0324")

def preprocess_model_input(example):
    return {"prompt": example["input"]}

evaluation = weave.Evaluation(
    name="QA",
    dataset=dataset,
    scorers=[exact_match],
    preprocess_model_input=preprocess_model_input,
)

async def run_eval():
    await evaluation.evaluate(llama)
    await evaluation.evaluate(deepseek)

asyncio.run(run_eval())

spec = leaderboard.Leaderboard(
    name="Inference Leaderboard",
    description="Compare models on a QA dataset",
    columns=[
        leaderboard.LeaderboardColumn(
            evaluation_object_ref=get_ref(evaluation).uri(),
            scorer_name="exact_match",
            summary_metric_path="mean",
        )
    ],
)

weave.publish(spec)
```

Après avoir exécuté ce code, accédez à votre compte W\&B sur [https://wandb.ai/](https://wandb.ai/) et :

* Sélectionnez l’onglet **Traces** pour [consulter vos traces](/fr/weave/guides/tracking/tracing)
* Sélectionnez l’onglet **Evals** pour [consulter les évaluations de votre modèle](/fr/weave/guides/core-types/evaluations)
* Sélectionnez l’onglet **Leaders** pour [consulter le classement généré](/fr/weave/guides/core-types/leaderboards)

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-run-filter-ui-updates/XwEKrQdeBQTkOa9I/images/inference/inference-advanced-evals.png?fit=max&auto=format&n=XwEKrQdeBQTkOa9I&q=85&s=1e364b01151f1bae040a29b5180e3fb8" alt="Consulter les évaluations de votre modèle" width="3024" height="1194" data-path="images/inference/inference-advanced-evals.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-run-filter-ui-updates/XwEKrQdeBQTkOa9I/images/inference/inference-advanced-leaderboard.png?fit=max&auto=format&n=XwEKrQdeBQTkOa9I&q=85&s=8ce894d4ae5459919ca7970023972aa5" alt="Consulter votre classement" width="3024" height="1194" data-path="images/inference/inference-advanced-leaderboard.png" />
</Frame>

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

* Explorez la [référence de l’API](/fr/inference/api-reference/) pour découvrir toutes les méthodes disponibles
* Essayez des modèles dans l’[UI](/fr/inference/ui-guide/)
