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

# Découvrez Weave avec W&B Inference

> Découvrez les bases de Weave à l’aide de W&B Inference pour tracer les appels au modèle, comparer les sorties et effectuer des évaluations.

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/learn-weave-with-inference.ipynb" />

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

Ce guide vous montre comment utiliser W\&B Weave avec [W\&B Inference](https://docs.wandb.ai/inference/). Utilisez W\&B Inference pour créer et tracer des applications LLM à l’aide de modèles open source accessibles en direct, sans avoir à mettre en place votre propre infrastructure ni à gérer des clés API provenant de plusieurs fournisseurs. Avec votre clé API W\&B, vous pouvez interagir avec [tous les modèles hébergés par W\&B Inference](https://docs.wandb.ai/inference/models/).

<div id="what-youll-learn">
  ## Ce que vous allez apprendre
</div>

Ce guide vous montre comment :

* Configurer Weave et W\&B Inference
* Créer une application LLM simple avec un tracing automatique
* Comparer plusieurs modèles
* Évaluer les performances du modèle sur un jeu de données
* Consulter vos résultats dans la 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="trace-your-first-llm-call">
  ## Tracez votre premier appel à un LLM
</div>

Pour commencer, faites un copier-coller de l’exemple de code suivant. Cet exemple utilise Llama 3.1-8B avec W\&B Inference.

Lorsque vous exécutez ce code, Weave :

* Trace automatiquement votre appel à un LLM
* Enregistre les entrées, les sorties, la latence et l’utilisation des tokens
* Fournit un lien pour consulter votre trace dans Weave UI

<Tabs>
  <Tab title="Python">
    ```python lines theme={null}
    import weave
    import openai

    # Initialisez Weave - remplacez par your-team/your-project
    weave.init("<team-name>/inference-quickstart")

    # Créez un client compatible OpenAI pointant vers W&B Inference
    client = openai.OpenAI(
        base_url='https://api.inference.wandb.ai/v1',
        api_key="YOUR_WANDB_API_KEY",  # Remplacez par votre clé API réelle
        project="<team-name>/my-first-weave-project",  # Requis pour le suivi de l'utilisation
    )

    # Décorez votre fonction pour activer le tracing ; utilisez le client OpenAI standard
    @weave.op()
    def ask_llama(question: str) -> str:
        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": question}
            ],
        )
        return response.choices[0].message.content

    # Appelez votre fonction - Weave trace automatiquement tout
    result = ask_llama("What are the benefits of using W&B Weave for LLM development?")
    print(result)
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript lines theme={null}
    import * as weave from 'weave';
    import OpenAI from 'openai';

    // Initialisez Weave - remplacez les valeurs entre "<>" par les vôtres.
    await weave.init("<team-name>/inference-quickstart")

    // Créez un client compatible OpenAI pointant vers W&B Inference
    const client = new OpenAI({
        baseURL: 'https://api.inference.wandb.ai/v1',  // Endpoint W&B Inference
        apiKey: process.env.WANDB_API_KEY || 'YOUR_WANDB_API_KEY', // Remplacez par votre clé API ou définissez la variable d'environnement WANDB_API_KEY
    });

    // Encapsulez votre fonction avec weave.op pour activer le tracing
    const askLlama = weave.op(async function askLlama(question: string): Promise<string> {
    const response = await client.chat.completions.create({
        model: 'meta-llama/Llama-3.1-70B-Instruct',
        messages: [
        { role: 'system', content: 'You are a helpful assistant.' },
        { role: 'user', content: question }
        ],
    });
    return response.choices[0].message.content || '';
    });

    // Appelez votre fonction - Weave trace automatiquement tout
    const result = await askLlama('What are the benefits of using W&B Weave for LLM development?');
    console.log(result);
    ```
  </Tab>
</Tabs>

<div id="build-a-text-summarization-application">
  ## Créer une application de résumé de texte
</div>

Ensuite, essayez d’exécuter ce code, une application simple de résumé qui montre comment Weave effectue la trace des opérations imbriquées :

<Tabs>
  <Tab title="Python">
    ```python lines theme={null}
    import weave
    import openai

    # Initialiser Weave - Remplacez les valeurs entre "<>" par les vôtres.
    weave.init("<team-name>/inference-quickstart")

    client = openai.OpenAI(
        base_url='https://api.inference.wandb.ai/v1',
        api_key="YOUR_WANDB_API_KEY",  # Remplacez par votre clé API réelle
        project="<team-name>/my-first-weave-project",  # Requis pour le suivi d'utilisation
    )

    @weave.op()
    def extract_key_points(text: str) -> list[str]:
        """Extraire les points clés d'un texte."""
        response = client.chat.completions.create(
            model="meta-llama/Llama-3.1-8B-Instruct",
            messages=[
                {"role": "system", "content": "Extrayez 3 à 5 points clés du texte. Retournez chaque point sur une nouvelle ligne."},
                {"role": "user", "content": text}
            ],
        )
        # Renvoie la réponse sans lignes vides
        return [line for line in response.choices[0].message.content.strip().splitlines() if line.strip()]

    @weave.op()
    def create_summary(key_points: list[str]) -> str:
        """Créer un résumé concis à partir des points clés."""
        points_text = "\n".join(f"- {point}" for point in key_points)
        response = client.chat.completions.create(
            model="meta-llama/Llama-3.1-8B-Instruct",
            messages=[
                {"role": "system", "content": "Créez un résumé en une phrase à partir de ces points clés."},
                {"role": "user", "content": f"Points clés :\n{points_text}"}
            ],
        )
        return response.choices[0].message.content

    @weave.op()
    def summarize_text(text: str) -> dict:
        """Pipeline principal de résumé."""
        key_points = extract_key_points(text)
        summary = create_summary(key_points)
        return {
            "key_points": key_points,
            "summary": summary
        }

    # Essayez avec un exemple de texte
    sample_text = """
    The Apollo 11 mission was a historic spaceflight that landed the first humans on the Moon 
    on July 20, 1969. Commander Neil Armstrong and lunar module pilot Buzz Aldrin descended 
    to the lunar surface while Michael Collins remained in orbit. Armstrong became the first 
    person to step onto the Moon, followed by Aldrin 19 minutes later. They spent about 
    two and a quarter hours together outside the spacecraft, collecting samples and taking photographs.
    """

    result = summarize_text(sample_text)
    print("Points clés :", result["key_points"])
    print("\nRésumé :", result["summary"])
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript lines theme={null}
    import * as weave from 'weave';
    import OpenAI from 'openai';

    // Initialiser Weave - remplacer par your-team/your-project
    await weave.init('<team-name>/inference-quickstart');

    const client = new OpenAI({
    baseURL: 'https://api.inference.wandb.ai/v1',
    apiKey: process.env.WANDB_API_KEY || 'YOUR_WANDB_API_KEY',  // Remplacer par votre clé API ou définir la variable d'environnement WANDB_API_KEY
    });

    const extractKeyPoints = weave.op(async function extractKeyPoints(text: string): Promise<string[]> {
    const response = await client.chat.completions.create({
        model: 'meta-llama/Llama-3.1-8B-Instruct',
        messages: [
        { role: 'system', content: 'Extract 3-5 key points from the text. Return each point on a new line.' },
        { role: 'user', content: text }
        ],
    });
    // Renvoie la réponse sans lignes vides
    const content = response.choices[0].message.content || '';
    return content.split('\n').map(line => line.trim()).filter(line => line.length > 0);
    });

    const createSummary = weave.op(async function createSummary(keyPoints: string[]): Promise<string> {
    const pointsText = keyPoints.map(point => `- ${point}`).join('\n');
    const response = await client.chat.completions.create({
        model: 'meta-llama/Llama-3.1-8B-Instruct',
        messages: [
        { role: 'system', content: 'Create a one-sentence summary based on these key points.' },
        { role: 'user', content: `Key points:\n${pointsText}` }
        ],
    });
    return response.choices[0].message.content || '';
    });

    const summarizeText = weave.op(async function summarizeText(text: string): Promise<{key_points: string[], summary: string}> {
    const keyPoints = await extractKeyPoints(text);
    const summary = await createSummary(keyPoints);
    return {
        key_points: keyPoints,
        summary: summary
    };
    });

    // Essayer avec un exemple de texte
    const sampleText = `
    The Apollo 11 mission was a historic spaceflight that landed the first humans on the Moon 
    on July 20, 1969. Commander Neil Armstrong and lunar module pilot Buzz Aldrin descended 
    to the lunar surface while Michael Collins remained in orbit. Armstrong became the first 
    person to step onto the Moon, followed by Aldrin 19 minutes later. They spent about 
    two and a quarter hours together outside the spacecraft, collecting samples and taking photographs.
    `;

    const result = await summarizeText(sampleText);
    console.log('Key Points:', result.key_points);
    console.log('\nSummary:', result.summary);
    ```
  </Tab>
</Tabs>

<div id="compare-multiple-models">
  ## Comparer plusieurs modèles
</div>

W\&B Inference permet d’accéder à plusieurs modèles. Utilisez le code suivant pour comparer les performances des réponses de Llama et de DeepSeek :

<Tabs>
  <Tab title="Python">
    ```python lines theme={null}
    import weave
    import openai

    # Initialisez Weave - remplacez par your-team/your-project
    weave.init("<team-name>/inference-quickstart")

    client = openai.OpenAI(
        base_url='https://api.inference.wandb.ai/v1',
        api_key="YOUR_WANDB_API_KEY",  # Remplacez par votre clé API réelle
        project="<team-name>/my-first-weave-project",  # Requis pour le suivi de l’utilisation
    )

    # Définissez une classe de modèle pour comparer différents LLM
    class InferenceModel(weave.Model):
        model_name: str
        
        @weave.op()
        def predict(self, question: str) -> str:
            response = client.chat.completions.create(
                model=self.model_name,
                messages=[
                    {"role": "user", "content": question}
                ],
            )
            return response.choices[0].message.content

    # Créez des instances pour différents modèles
    llama_model = InferenceModel(model_name="meta-llama/Llama-3.1-8B-Instruct")
    deepseek_model = InferenceModel(model_name="deepseek-ai/DeepSeek-V3.1")

    # Comparez leurs réponses
    test_question = "Explique l’informatique quantique en un paragraphe pour un lycéen."

    print("Réponse de Llama 3.1 8B :")
    print(llama_model.predict(test_question))
    print("\n" + "="*50 + "\n")
    print("Réponse de DeepSeek V3 :")
    print(deepseek_model.predict(test_question))
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript lines theme={null}
    import * as weave from 'weave';
    import OpenAI from 'openai';

    // Initialisez Weave - remplacez par your-team/your-project
    await weave.init("<team-name>/inference-quickstart")

    const client = new OpenAI({
      baseURL: 'https://api.inference.wandb.ai/v1',
      apiKey: process.env.WANDB_API_KEY || 'YOUR_WANDB_API_KEY', // Remplacez par votre clé API ou définissez la variable d'environnement WANDB_API_KEY
    });

    // Créez des fonctions de modèle à l'aide de weave.op (weave.Model n'est pas pris en charge en TypeScript)
    function createModel(modelName: string) {
      return weave.op(async function predict(question: string): Promise<string> {
        const response = await client.chat.completions.create({
          model: modelName,
          messages: [
            { role: 'user', content: question }
          ],
        });
        return response.choices[0].message.content || '';
      });
    }

    // Créez des instances pour différents modèles
    const llamaModel = createModel('meta-llama/Llama-3.1-8B-Instruct');
    const deepseekModel = createModel('deepseek-ai/DeepSeek-V3.1');

    // Comparez leurs réponses
    const testQuestion = 'Explique l’informatique quantique en un paragraphe pour un lycéen.';

    console.log('Réponse de Llama 3.1 8B :');
    console.log(await llamaModel(testQuestion));
    console.log('\n' + '='.repeat(50) + '\n');
    console.log('Réponse de DeepSeek V3 :');
    console.log(await deepseekModel(testQuestion));
    ```
  </Tab>
</Tabs>

<div id="evaluate-model-performance">
  ## Évaluer la performance du modèle
</div>

Évaluez la performance d'un modèle sur une tâche de questions-réponses à l'aide de l'`EvaluationLogger` intégré de Weave. Cela permet un suivi structuré des évaluations, avec agrégation automatique, suivi de l'utilisation des tokens et fonctionnalités de comparaison avancées dans l'interface utilisateur.

Ajoutez le code suivant au script que vous avez utilisé dans la section précédente :

<Tabs>
  <Tab title="Python">
    ```python lines theme={null}
    from typing import Optional
    from weave import EvaluationLogger

    # Créer un jeu de données simple
    dataset = [
        {"question": "What is 2 + 2?", "expected": "4"},
        {"question": "What is the capital of France?", "expected": "Paris"},
        {"question": "Name a primary color", "expected_one_of": ["red", "blue", "yellow"]},
    ]

    # Définir un scorer
    @weave.op()
    def accuracy_scorer(expected: str, output: str, expected_one_of: Optional[list[str]] = None) -> dict:
        """Évalue la précision de la sortie du modèle."""
        output_clean = output.strip().lower()
        
        if expected_one_of:
            is_correct = any(option.lower() in output_clean for option in expected_one_of)
        else:
            is_correct = expected.lower() in output_clean
        
        return {"correct": is_correct, "score": 1.0 if is_correct else 0.0}

    # Évaluer un modèle à l'aide de l'EvaluationLogger de Weave
    def evaluate_model(model: InferenceModel, dataset: list[dict]):
        """Exécute une évaluation sur un jeu de données à l'aide du framework d'évaluation intégré de Weave."""
        # Initialiser EvaluationLogger AVANT d'appeler le modèle pour capturer l'utilisation des tokens
        # Ceci est particulièrement important pour W&B Inference afin de suivre les coûts
        # Convertir le nom du modèle en un format valide (remplacer les caractères non alphanumériques par des underscores)
        safe_model_name = model.model_name.replace("/", "_").replace("-", "_").replace(".", "_")
        eval_logger = EvaluationLogger(
            model=safe_model_name,
            dataset="qa_dataset"
        )
        
        for example in dataset:
            # Obtenir la prédiction du modèle
            output = model.predict(example["question"])
            
            # Enregistrer la prédiction
            pred_logger = eval_logger.log_prediction(
                inputs={"question": example["question"]},
                output=output
            )
            
            # Évaluer la sortie
            score = accuracy_scorer(
                expected=example.get("expected", ""),
                output=output,
                expected_one_of=example.get("expected_one_of")
            )
            
            # Enregistrer le score
            pred_logger.log_score(
                scorer="accuracy",
                score=score["score"]
            )
            
            # Terminer l'enregistrement pour cette prédiction
            pred_logger.finish()
        
        # Enregistrer le résumé - Weave agrège automatiquement les scores de précision
        eval_logger.log_summary()
        print(f"Évaluation terminée pour {model.model_name} (enregistré sous : {safe_model_name}). Consultez les résultats dans l'interface Weave.")

    # Comparer plusieurs modèles - une fonctionnalité clé du framework d'évaluation de Weave
    models_to_compare = [
        llama_model,
        deepseek_model,
    ]

    for model in models_to_compare:
        evaluate_model(model, dataset)

    # Dans l'interface Weave, accédez à l'onglet Evals pour comparer les résultats entre les modèles
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript lines theme={null}
    import { EvaluationLogger } from 'weave';

    // Créer un jeu de données simple
    interface DatasetExample {
      question: string;
      expected?: string;
      expected_one_of?: string[];
    }

    const dataset: DatasetExample[] = [
      { question: 'What is 2 + 2?', expected: '4' },
      { question: 'What is the capital of France?', expected: 'Paris' },
      { question: 'Name a primary color', expected_one_of: ['red', 'blue', 'yellow'] },
    ];

    // Définir un scorer
    const accuracyScorer = weave.op(function accuracyScorer(args: {
      expected: string;
      output: string;
      expected_one_of?: string[];
    }): { correct: boolean; score: number } {
      const outputClean = args.output.trim().toLowerCase();
      
      let isCorrect: boolean;
      if (args.expected_one_of) {
        isCorrect = args.expected_one_of.some(option => 
          outputClean.includes(option.toLowerCase())
        );
      } else {
        isCorrect = outputClean.includes(args.expected.toLowerCase());
      }
      
      return { correct: isCorrect, score: isCorrect ? 1.0 : 0.0 };
    });

    // Évaluer un modèle à l'aide de l'EvaluationLogger de Weave
    async function evaluateModel(
      model: (question: string) => Promise<string>,
      modelName: string,
      dataset: DatasetExample[]
    ): Promise<void> {
      // Initialiser EvaluationLogger AVANT d'appeler le modèle pour capturer l'utilisation des tokens
      // Ceci est particulièrement important pour W&B Inference afin de suivre les coûts
      // Convertir le nom du modèle en un format valide (remplacer les caractères non alphanumériques par des underscores)
      const safeModelName = modelName.replace(/\//g, '_').replace(/-/g, '_').replace(/\./g, '_');
      const evalLogger = new EvaluationLogger({
        name: 'inference_evaluation',
        model: { name: safeModelName },
        dataset: 'qa_dataset'
      });
      
      for (const example of dataset) {
        // Obtenir la prédiction du modèle
        const output = await model(example.question);
        
        // Enregistrer la prédiction
        const predLogger = evalLogger.logPrediction(
          { question: example.question },
          output
        );
        
        // Scorer la sortie
        const score = await accuracyScorer({
          expected: example.expected || '',
          output: output,
          expected_one_of: example.expected_one_of
        });
        
        // Enregistrer le score
        predLogger.logScore('accuracy', score.score);
        
        // Terminer l'enregistrement pour cette prédiction
        predLogger.finish();
      }
      
      // Enregistrer le résumé - Weave agrège automatiquement les scores de précision
      await evalLogger.logSummary();
      console.log(`Evaluation complete for ${modelName} (logged as: ${safeModelName}). View results in the Weave UI.`);
    }

    // Comparer plusieurs modèles - une fonctionnalité clé du framework d'évaluation de Weave
    const modelsToCompare = [
      { model: llamaModel, name: 'meta-llama/Llama-3.1-8B-Instruct' },
      { model: deepseekModel, name: 'deepseek-ai/DeepSeek-V3.1' },
    ];

    for (const { model, name } of modelsToCompare) {
      await evaluateModel(model, name, dataset);
    }

    // Dans l'interface Weave, accédez à l'onglet Evals pour comparer les résultats entre les modèles
    ```
  </Tab>
</Tabs>

L’exécution de ces exemples renvoie des liens vers les traces dans le terminal. Cliquez sur n’importe lequel pour afficher les traces dans le Weave UI.

Dans le Weave UI, vous pouvez :

* Consulter la chronologie de tous vos appels LLM
* Inspecter les entrées et les sorties de chaque opération
* Voir l’utilisation des tokens et les coûts estimés (capturés automatiquement par EvaluationLogger)
* Analyser la latence et les métriques de performance
* Accéder à l’onglet **Evals** pour voir les résultats d’évaluation agrégés
* Utiliser la fonctionnalité **Compare** pour analyser les performances de différents modèles
* Parcourir des exemples spécifiques pour voir comment différents modèles se sont comportés avec les mêmes entrées

<div id="available-models">
  ## Modèles disponibles
</div>

Pour une liste complète des modèles disponibles, voir la [section Modèles disponibles](https://docs.wandb.ai/inference/models/) dans la documentation W\&B Inference.

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

* **Utilisez le Playground** : [Essayez des modèles de manière interactive](/fr/weave/guides/tools/playground#access-the-playground) dans le Playground de Weave
* **Créez des évaluations** : découvrez [comment évaluer systématiquement vos applications LLM](/fr/weave/guides/core-types/evaluations)
* **Essayez d’autres intégrations** : Weave fonctionne avec [OpenAI, Anthropic et bien d’autres](/fr/weave/guides/integrations)

<div id="troubleshooting">
  ## Dépannage
</div>

<details>
  <summary>Erreurs d'authentification</summary>

  Si vous obtenez des erreurs d'authentification :

  1. Vérifiez que vous disposez d'un compte W\&B valide
  2. Vérifiez que vous utilisez la bonne clé API sur [wandb.ai/settings](https://wandb.ai/settings)
  3. Assurez-vous que le nom de votre projet respecte le format `team-name/project-name`
</details>

<details>
  <summary>Erreurs liées aux limites de débit</summary>

  W\&B Inference applique des limites de concurrence par projet. Si vous atteignez les limites de débit :

  * Réduisez le nombre de requêtes simultanées
  * Ajoutez des délais entre les appels
  * Envisagez de passer à un plan supérieur pour bénéficier de limites plus élevées

  Pour plus de détails, voir la [documentation sur les limites de W\&B Inference](https://docs.wandb.ai/inference/usage-limits/).
</details>

<details>
  <summary>Crédits bientôt épuisés</summary>

  L'offre gratuite inclut un nombre limité de crédits. Voir la [documentation sur l'utilisation et les limites](https://docs.wandb.ai/inference/usage-limits/) pour plus de détails.
</details>
