---
title: Ridurre la latenza
url: https://platform.claude.com/docs/it/test-and-evaluate/strengthen-guardrails/reduce-latency
description: Riduci la latenza di risposta di Claude scegliendo un modello più veloce come Claude Haiku 5.5, riducendo i token del prompt e dell'output e usando lo streaming delle risposte.
---

La "latency" (latenza) si riferisce al tempo necessario al modello per elaborare un prompt e generare un output. La latenza può essere influenzata da vari fattori, come la dimensione del modello, la complessità del prompt e l'infrastruttura sottostante che supporta il modello e il punto di interazione.

<Note>
  È sempre meglio progettare prima un prompt che funzioni bene senza vincoli di modello o di prompt, e solo successivamente provare strategie di riduzione della latenza. Cercare di ridurre la latenza prematuramente potrebbe impedirti di scoprire come si presentano le prestazioni ottimali.
</Note>

***

## Come misurare la latenza

Quando si parla di latenza, potresti incontrare diversi termini e misurazioni:

* **Latenza di base (baseline latency):** È il tempo impiegato dal modello per elaborare il prompt e generare la risposta, senza considerare i token di input e di output al secondo. Fornisce un'idea generale della velocità del modello.
* **"Time to first token" (tempo al primo token), o TTFT:** Questa metrica misura il tempo necessario al modello per generare il primo token della risposta, a partire dal momento in cui il prompt è stato inviato. È particolarmente rilevante quando usi lo streaming (ne parleremo più avanti) e vuoi offrire un'esperienza reattiva ai tuoi utenti.

Per una comprensione più approfondita di questi termini, consulta il [glossario](https://platform.claude.com/docs/it/about-claude/glossary).

***

## Come ridurre la latenza

### 1. Scegli il modello giusto

Uno dei modi più diretti per ridurre la latenza è selezionare il modello appropriato per il tuo caso d'uso. Anthropic offre una [gamma di modelli](https://platform.claude.com/docs/it/models/overview) con capacità e caratteristiche prestazionali diverse. Considera i tuoi requisiti specifici e scegli il modello che meglio si adatta alle tue esigenze in termini di velocità e qualità dell'output.

Per le applicazioni in cui la velocità è critica, **Claude Haiku 5.5** offre i tempi di risposta più rapidi mantenendo un'elevata intelligenza. L'"effort" (impegno) è il suo principale controllo per velocità e costi: consulta [Effort](https://platform.claude.com/docs/it/build-with-claude/effort) e [Usa l'effort per controllare il ragionamento](https://platform.claude.com/docs/it/build-with-claude/prompt-engineering/prompting-claude-haiku-5-5#use-effort-to-control-thinking). L'esempio seguente lo esegue a `low`, il livello più economico e veloce, e lascia spazio in `max_tokens` per il ragionamento:

<CodeGroup>
  ```bash cURL
  # Per le applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  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
  # Per le applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  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()

  # Per le applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  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();

  // Per applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  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();

  // Per le applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  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()

  // Per applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  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();

  // Per applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  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();

  // Per applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  $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

  # Per le applicazioni sensibili ai tempi, usa Claude Haiku 5.5 con effort basso
  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>

Per maggiori dettagli sulle metriche dei modelli, consulta la pagina di [panoramica dei modelli](https://platform.claude.com/docs/it/models/overview).

### 2. Ottimizza la lunghezza del prompt e dell'output

Riduci al minimo il numero di token sia nel prompt di input sia nell'output atteso, mantenendo comunque prestazioni elevate. Meno token il modello deve elaborare e generare, più veloce sarà la risposta.

Ecco alcuni suggerimenti per aiutarti a ottimizzare i tuoi prompt e output:

* **Sii chiaro ma conciso:** Cerca di trasmettere la tua intenzione in modo chiaro e conciso nel prompt. Evita dettagli non necessari o informazioni ridondanti, tenendo presente che [Claude non ha contesto](https://platform.claude.com/docs/it/build-with-claude/prompt-engineering/claude-prompting-best-practices#be-clear-and-direct) sul tuo caso d'uso e potrebbe non compiere i salti logici previsti se le istruzioni non sono chiare.
* **Chiedi risposte più brevi:** Chiedi direttamente a Claude di essere conciso. Se Claude produce output di lunghezza indesiderata, chiedi a Claude di [limitare la sua loquacità](https://platform.claude.com/docs/it/build-with-claude/prompt-engineering/claude-prompting-best-practices#be-clear-and-direct).
  <Tip>
    A causa del modo in cui gli LLM contano i 

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

     anziché le parole, chiedere un numero esatto di parole o un limite di parole non è una strategia efficace quanto chiedere limiti sul numero di paragrafi o di frasi.
  </Tip>
* **Imposta limiti di output appropriati:** Usa il parametro `max_tokens` per impostare un limite rigido alla lunghezza massima della risposta generata. Questo impedisce a Claude di generare output eccessivamente lunghi.
  <Note>
    Quando la risposta raggiunge 

    `max_tokens`

     token, la risposta verrà troncata, magari a metà frase o a metà parola, quindi si tratta di una tecnica grossolana che potrebbe richiedere post-elaborazione ed è solitamente più appropriata per risposte a scelta multipla o risposte brevi in cui la risposta arriva subito all'inizio.
  </Note>
* **Sperimenta con la temperatura:** Il [parametro](https://platform.claude.com/docs/it/api/messages/create) `temperature` controlla la casualità dell'output. Valori più bassi (ad esempio, 0,2) possono talvolta portare a risposte più mirate e più brevi, mentre valori più alti (ad esempio, 0,8) potrebbero produrre output più vari ma potenzialmente più lunghi. I modelli Claude 4.7 e successivi e Claude Mythos Preview accettano solo il valore predefinito di `temperature` e restituiscono un errore 400 per qualsiasi altro valore, quindi su questi modelli riduci invece l'[effort](https://platform.claude.com/docs/it/build-with-claude/effort).

Trovare il giusto equilibrio tra chiarezza del prompt, qualità dell'output e numero di token potrebbe richiedere un po' di sperimentazione.

### 3. Usa lo streaming delle risposte

Lo "streaming" (streaming) è una funzionalità che consente al modello di iniziare a inviare la propria risposta prima che l'output completo sia terminato. Questo può migliorare significativamente la reattività percepita della tua applicazione, poiché gli utenti possono vedere l'output del modello in tempo reale.

Con lo streaming abilitato, puoi elaborare l'output del modello man mano che arriva, aggiornando la tua interfaccia utente o eseguendo altre attività in parallelo.

Visita [Streaming dei messaggi](https://platform.claude.com/docs/it/build-with-claude/streaming) per scoprire come implementare lo streaming per il tuo caso d'uso.

***

## Prossimi passi

<CardGroup cols={2}>
  <Card title="Ridurre le allucinazioni" icon="shield" href="https://platform.claude.com/docs/it/test-and-evaluate/strengthen-guardrails/reduce-hallucinations">
    Riduci al minimo le allucinazioni negli output di Claude consentendo l'incertezza, basando le risposte su citazioni dirette e verificando le affermazioni con citazioni.
  </Card>

  <Card title="Streaming dei messaggi" icon="bolt" href="https://platform.claude.com/docs/it/build-with-claude/streaming">
    Trasmetti in streaming le risposte della Messages API in modo incrementale con server-sent events, inclusi testo, uso degli strumenti e delta del ragionamento esteso.
  </Card>
</CardGroup>
