---
title: Réduire la latence
url: https://platform.claude.com/docs/fr/test-and-evaluate/strengthen-guardrails/reduce-latency
description: Réduisez la latence de réponse de Claude en choisissant un modèle plus rapide comme Claude Haiku 5.5, en réduisant les tokens de prompt et de sortie, et en utilisant le streaming des réponses.
---

La « latency » (latence) fait référence au temps nécessaire au modèle pour traiter un prompt et générer une sortie. La latence peut être influencée par divers facteurs, tels que la taille du modèle, la complexité du prompt, ainsi que l'infrastructure sous-jacente qui prend en charge le modèle et le point d'interaction.

<Note>
  Il est toujours préférable de concevoir d'abord un prompt qui fonctionne bien sans contraintes de modèle ou de prompt, puis d'essayer ensuite des stratégies de réduction de la latence. Tenter de réduire la latence prématurément pourrait vous empêcher de découvrir à quoi ressemblent les performances optimales.
</Note>

***

## Comment mesurer la latence

Lorsque l'on parle de latence, vous pouvez rencontrer plusieurs termes et mesures :

* **Latence de base (baseline latency) :** Il s'agit du temps nécessaire au modèle pour traiter le prompt et générer la réponse, sans tenir compte des tokens d'entrée et de sortie par seconde. Elle donne une idée générale de la vitesse du modèle.
* **« Time to first token » (temps jusqu'au premier token), ou TTFT :** Cette métrique mesure le temps nécessaire au modèle pour générer le premier token de la réponse, à partir du moment où le prompt a été envoyé. Elle est particulièrement pertinente lorsque vous utilisez le streaming (nous y reviendrons plus loin) et que vous souhaitez offrir une expérience réactive à vos utilisateurs.

Pour une compréhension plus approfondie de ces termes, consultez le [glossaire](https://platform.claude.com/docs/fr/about-claude/glossary).

***

## Comment réduire la latence

### 1. Choisir le bon modèle

L'un des moyens les plus directs de réduire la latence consiste à sélectionner le modèle approprié pour votre cas d'utilisation. Anthropic propose une [gamme de modèles](https://platform.claude.com/docs/fr/models/overview) aux capacités et caractéristiques de performance différentes. Tenez compte de vos exigences spécifiques et choisissez le modèle qui correspond le mieux à vos besoins en termes de vitesse et de qualité de sortie.

Pour les applications où la vitesse est critique, **Claude Haiku 5.5** offre les temps de réponse les plus rapides tout en conservant une intelligence élevée. L'[effort](https://platform.claude.com/docs/fr/build-with-claude/effort) est son principal levier de contrôle de la vitesse et du coût. Consultez [Utiliser l'effort pour contrôler la réflexion](https://platform.claude.com/docs/fr/build-with-claude/prompt-engineering/prompting-claude-haiku-5-5#use-effort-to-control-thinking). L'exemple suivant l'exécute au niveau `low`, le niveau le moins coûteux et le plus rapide, et laisse de la marge dans `max_tokens` pour la réflexion :

<CodeGroup>
  ```bash cURL
  # Pour les applications sensibles à la latence, utilisez Claude Haiku 5.5 avec un effort faible.
  curl https://api.anthropic.com/v1/messages \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "content-type: application/json" \
    -d '{
      "model": "claude-haiku-5-5",
      "max_tokens": 1024,
      "output_config": {"effort": "low"},
      "messages": [{"role": "user", "content": "Summarize this customer feedback in 2 sentences: [feedback text]"}]
    }'
  ```

  ```bash CLI
  # Pour les applications sensibles à la latence, utilisez Claude Haiku 5.5 avec un effort faible.
  ant messages create \
    --model claude-haiku-5-5 \
    --max-tokens 1024 \
    --output-config '{effort: low}' \
    --message '{"role": "user", "content": "Summarize this customer feedback in 2 sentences: [feedback text]"}'
  ```

  ```python Python
  client = anthropic.Anthropic()

  # Pour les applications sensibles au temps, utilisez Claude Haiku 5.5 avec un effort faible.
  message = client.messages.create(
      model="claude-haiku-5-5",
      max_tokens=1024,
      output_config={"effort": "low"},
      messages=[
          {
              "role": "user",
              "content": "Summarize this customer feedback in 2 sentences: [feedback text]",
          }
      ],
  )
  print(next(block.text for block in message.content if block.type == "text"))
  ```

  ```typescript TypeScript
  const client = new Anthropic();

  // Pour les applications sensibles au temps, utilisez Claude Haiku 5.5 avec un effort faible.
  const message = await client.messages.create({
    model: "claude-haiku-5-5",
    max_tokens: 1024,
    output_config: { effort: "low" },
    messages: [
      {
        role: "user",
        content: "Summarize this customer feedback in 2 sentences: [feedback text]"
      }
    ]
  });
  const textBlock = message.content.find((block) => block.type === "text");
  console.log(textBlock?.text);
  ```

  ```csharp C#
  AnthropicClient client = new();

  // Pour les applications sensibles au temps de réponse, utilisez Claude Haiku 5.5 avec un effort faible.
  var parameters = new MessageCreateParams
  {
      Model = Model.ClaudeHaiku5_5,
      MaxTokens = 1024,
      OutputConfig = new() { Effort = Effort.Low },
      Messages = [
          new()
          {
              Role = Role.User,
              Content = "Summarize this customer feedback in 2 sentences: [feedback text]"
          }
      ]
  };
  var message = await client.Messages.Create(parameters);
  foreach (var block in message.Content)
  {
      if (block.TryPickText(out var textBlock))
      {
          Console.WriteLine(textBlock.Text);
          break;
      }
  }
  ```

  ```go Go
  client := anthropic.NewClient()

  // Pour les applications sensibles au temps, utilisez Claude Haiku 5.5 avec un effort faible.
  message, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
  	Model:     anthropic.ModelClaudeHaiku5_5,
  	MaxTokens: 1024,
  	OutputConfig: anthropic.OutputConfigParam{
  		Effort: anthropic.OutputConfigEffortLow,
  	},
  	Messages: []anthropic.MessageParam{
  		anthropic.NewUserMessage(anthropic.NewTextBlock("Summarize this customer feedback in 2 sentences: [feedback text]")),
  	},
  })
  if err != nil {
  	log.Fatal(err)
  }
  for _, block := range message.Content {
  	if textBlock, ok := block.AsAny().(anthropic.TextBlock); ok {
  		fmt.Println(textBlock.Text)
  		break
  	}
  }
  ```

  ```java Java
  AnthropicClient client = AnthropicOkHttpClient.fromEnv();

  // Pour les applications sensibles à la latence, utilisez Claude Haiku 5.5 avec un effort faible.
  MessageCreateParams params = MessageCreateParams.builder()
      .model(Model.CLAUDE_HAIKU_5_5)
      .maxTokens(1024L)
      .outputConfig(OutputConfig.builder()
          .effort(OutputConfig.Effort.LOW)
          .build())
      .addUserMessage("Summarize this customer feedback in 2 sentences: [feedback text]")
      .build();
  Message message = client.messages().create(params);
  IO.println(message.content().stream()
      .flatMap(block -> block.text().stream())
      .map(TextBlock::text)
      .findFirst()
      .orElse(""));
  ```

  ```php PHP
  $client = new Client();

  // Pour les applications sensibles à la latence, utilisez Claude Haiku 5.5 avec un effort faible.
  $message = $client->messages->create(
      maxTokens: 1024,
      messages: [['role' => 'user', 'content' => 'Summarize this customer feedback in 2 sentences: [feedback text]']],
      model: 'claude-haiku-5-5',
      outputConfig: ['effort' => 'low'],
  );
  foreach ($message->content as $block) {
      if ($block->type === 'text') {
          echo $block->text;
          break;
      }
  }
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  # Pour les applications sensibles à la latence, utilisez Claude Haiku 5.5 avec un effort faible.
  message = client.messages.create(
    model: "claude-haiku-5-5",
    max_tokens: 1024,
    output_config: { effort: :low },
    messages: [{ role: "user", content: "Summarize this customer feedback in 2 sentences: [feedback text]" }]
  )
  puts message.content.find { |block| block.type == :text }&.text
  ```
</CodeGroup>

Pour plus de détails sur les métriques des modèles, consultez la page de [présentation des modèles](https://platform.claude.com/docs/fr/models/overview).

### 2. Optimiser la longueur du prompt et de la sortie

Minimisez le nombre de tokens à la fois dans votre prompt d'entrée et dans la sortie attendue, tout en maintenant des performances élevées. Moins le modèle a de tokens à traiter et à générer, plus la réponse sera rapide.

Voici quelques conseils pour vous aider à optimiser vos prompts et vos sorties :

* **Soyez clair mais concis :** Efforcez-vous de transmettre votre intention de manière claire et concise dans le prompt. Évitez les détails inutiles ou les informations redondantes, tout en gardant à l'esprit que [Claude manque de contexte](https://platform.claude.com/docs/fr/build-with-claude/prompt-engineering/claude-prompting-best-practices#be-clear-and-direct) sur votre cas d'utilisation et pourrait ne pas effectuer les raisonnements logiques attendus si les instructions ne sont pas claires.
* **Demandez des réponses plus courtes :** Demandez directement à Claude d'être concis. Si Claude produit des réponses d'une longueur indésirable, demandez à Claude de [modérer sa verbosité](https://platform.claude.com/docs/fr/build-with-claude/prompt-engineering/claude-prompting-best-practices#be-clear-and-direct).
  <Tip>
    En raison de la façon dont les LLM comptent les 

    [tokens](https://platform.claude.com/docs/fr/about-claude/glossary#tokens)

     plutôt que les mots, demander un nombre exact de mots ou une limite de nombre de mots n'est pas une stratégie aussi efficace que de demander des limites en nombre de paragraphes ou de phrases.
  </Tip>
* **Définissez des limites de sortie appropriées :** Utilisez le paramètre `max_tokens` pour fixer une limite stricte à la longueur maximale de la réponse générée. Cela empêche Claude de générer des sorties excessivement longues.
  <Note>
    Lorsque la réponse atteint 

    `max_tokens`

     tokens, elle sera coupée, éventuellement au milieu d'une phrase ou d'un mot ; il s'agit donc d'une technique brutale qui peut nécessiter un post-traitement et qui convient généralement mieux aux réponses à choix multiples ou aux réponses courtes où la réponse arrive dès le début.
  </Note>
* **Expérimentez avec la température :** Le [paramètre](https://platform.claude.com/docs/fr/api/messages/create) `temperature` contrôle le caractère aléatoire de la sortie. Des valeurs plus faibles (par exemple, 0,2) peuvent parfois conduire à des réponses plus ciblées et plus courtes, tandis que des valeurs plus élevées (par exemple, 0,8) peuvent produire des sorties plus variées mais potentiellement plus longues. Les modèles Claude 4.7 et ultérieurs ainsi que Claude Mythos Preview n'acceptent que la valeur par défaut de `temperature` et renvoient une erreur 400 pour toute autre valeur ; sur ces modèles, réduisez plutôt l'[effort](https://platform.claude.com/docs/fr/build-with-claude/effort).

Trouver le bon équilibre entre la clarté du prompt, la qualité de la sortie et le nombre de tokens peut nécessiter quelques expérimentations.

### 3. Utiliser le streaming des réponses

Le « streaming » (streaming) est une fonctionnalité qui permet au modèle de commencer à renvoyer sa réponse avant que la sortie complète ne soit terminée. Cela peut améliorer considérablement la réactivité perçue de votre application, car les utilisateurs peuvent voir la sortie du modèle en temps réel.

Avec le streaming activé, vous pouvez traiter la sortie du modèle au fur et à mesure de son arrivée, en mettant à jour votre interface utilisateur ou en effectuant d'autres tâches en parallèle.

Consultez [Streaming des messages](https://platform.claude.com/docs/fr/build-with-claude/streaming) pour découvrir comment mettre en œuvre le streaming pour votre cas d'utilisation.

***

## Étapes suivantes

<CardGroup cols={2}>
  <Card title="Réduire les hallucinations" icon="shield" href="https://platform.claude.com/docs/fr/test-and-evaluate/strengthen-guardrails/reduce-hallucinations">
    Minimisez les hallucinations dans les sorties de Claude en autorisant l'incertitude, en ancrant les réponses dans des citations directes et en vérifiant les affirmations à l'aide de citations.
  </Card>

  <Card title="Streaming des messages" icon="bolt" href="https://platform.claude.com/docs/fr/build-with-claude/streaming">
    Diffusez les réponses de l'API Messages de manière incrémentale avec des événements envoyés par le serveur (server-sent events), y compris les deltas de texte, d'utilisation d'outils et de réflexion étendue.
  </Card>
</CardGroup>
