Loading...
    • Guide du développeur
    • Référence API
    • MCP
    • Ressources
    • Notes de version
    Search...
    ⌘K
    Premiers pas
    Introduction à ClaudeDémarrage rapide
    Modèles et tarification
    Aperçu des modèlesChoisir un modèleNouveautés dans Claude 4.6Guide de migrationDépréciation des modèlesTarification
    Créer avec Claude
    Aperçu des fonctionnalitésUtiliser l'API MessagesGérer les raisons d'arrêtBonnes pratiques de prompting
    Capacités du modèle
    Extended thinkingAdaptive thinkingEffortMode rapide (aperçu de recherche)Sorties structuréesCitationsStreaming de messagesTraitement par lotsSupport PDFRésultats de rechercheSupport multilingueEmbeddingsVision
    Outils
    AperçuComment implémenter l'utilisation d'outilsOutil de recherche webOutil de récupération webOutil d'exécution de codeOutil de mémoireOutil BashOutil Computer useOutil d'éditeur de texte
    Infrastructure d'outils
    Recherche d'outilsAppel d'outils programmatiqueStreaming d'outils à granularité fine
    Gestion du contexte
    Fenêtres de contexteCompactionÉdition du contexteMise en cache des promptsComptage des tokens
    Fichiers et ressources
    API Files
    Agent Skills
    AperçuDémarrage rapideBonnes pratiquesSkills pour l'entrepriseUtiliser Skills avec l'API
    Agent SDK
    AperçuDémarrage rapideSDK TypeScriptTypeScript V2 (aperçu)SDK PythonGuide de migration
    MCP dans l'API
    Connecteur MCPServeurs MCP distants
    Claude sur des plateformes tierces
    Amazon BedrockMicrosoft FoundryVertex AI
    Ingénierie des prompts
    AperçuGénérateur de promptsUtiliser des modèles de promptsAméliorateur de promptsÊtre clair et directUtiliser des exemples (prompting multi-shots)Laisser Claude réfléchir (CoT)Utiliser des balises XMLDonner un rôle à Claude (prompts système)Chaîner des prompts complexesConseils pour le contexte longConseils pour extended thinking
    Tester et évaluer
    Définir les critères de succèsDévelopper des cas de testUtiliser l'outil d'évaluationRéduire la latence
    Renforcer les garde-fous
    Réduire les hallucinationsAugmenter la cohérence des résultatsAtténuer les jailbreaksRefus en streamingRéduire les fuites de promptsGarder Claude dans le rôle
    Administration et surveillance
    Aperçu de l'API AdminRésidence des donnéesEspaces de travailAPI d'utilisation et de coûtsAPI Claude Code AnalyticsZéro rétention de données
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Capacités du modèle

    Messages en flux continu

    Apprenez à utiliser le streaming pour recevoir les réponses de manière incrémentale en utilisant les événements envoyés par le serveur.

    Lors de la création d'un Message, vous pouvez définir "stream": true pour diffuser la réponse de manière incrémentale en utilisant les événements envoyés par le serveur (SSE).

    Streaming avec les SDK

    Nos SDK Python et TypeScript offrent plusieurs façons de faire du streaming. Le SDK Python permet à la fois les flux synchrones et asynchrones. Consultez la documentation de chaque SDK pour plus de détails.

    import anthropic
    
    client = anthropic.Anthropic()
    
    with client.messages.stream(
        max_tokens=1024,
        messages=[{"role": "user", "content": "Hello"}],
        model="claude-opus-4-6",
    ) as stream:
        for text in stream.text_stream:
            print(text, end="", flush=True)

    Obtenir le message final sans traiter les événements

    Si vous n'avez pas besoin de traiter le texte au fur et à mesure qu'il arrive, les SDK fournissent un moyen d'utiliser le streaming en arrière-plan tout en retournant l'objet Message complet — identique à ce que .create() retourne. Ceci est particulièrement utile pour les requêtes avec de grandes valeurs max_tokens, où les SDK nécessitent le streaming pour éviter les délais d'expiration HTTP.

    import anthropic
    
    client = anthropic.Anthropic()
    
    with client.messages.stream(
        max_tokens=128000,
        messages=[{"role": "user", "content": "Write a detailed analysis..."}],
        model="claude-opus-4-6",
    ) as stream:
        message = stream.get_final_message()
    
    print(message.content[0].text)

    L'appel .stream() maintient la connexion HTTP active avec les événements envoyés par le serveur, puis .get_final_message() (Python) ou .finalMessage() (TypeScript) accumule tous les événements et retourne l'objet Message complet. Aucun code de gestion d'événements n'est nécessaire.

    Types d'événements

    Chaque événement envoyé par le serveur inclut un type d'événement nommé et les données JSON associées. Chaque événement utilisera un nom d'événement SSE (par exemple event: message_stop), et inclura le type d'événement correspondant dans ses données.

    Chaque flux utilise le flux d'événements suivant :

    1. message_start : contient un objet Message avec un content vide.
    2. Une série de blocs de contenu, chacun ayant un événement content_block_start, un ou plusieurs événements content_block_delta, et un événement content_block_stop. Chaque bloc de contenu aura un index qui correspond à son index dans le tableau content du Message final.
    3. Un ou plusieurs événements message_delta, indiquant les changements au niveau supérieur de l'objet Message final.
    4. Un événement message_stop final.

    Les comptages de jetons affichés dans le champ usage de l'événement message_delta sont cumulatifs.

    Événements ping

    Les flux d'événements peuvent également inclure un nombre quelconque d'événements ping.

    Événements d'erreur

    Nous pouvons occasionnellement envoyer des erreurs dans le flux d'événements. Par exemple, pendant les périodes d'utilisation intensive, vous pouvez recevoir une overloaded_error, qui correspondrait normalement à une HTTP 529 dans un contexte non-streaming :

    Exemple d'erreur
    event: error
    data: {"type": "error", "error": {"type": "overloaded_error", "message": "Overloaded"}}

    Autres événements

    Conformément à notre politique de versioning, nous pouvons ajouter de nouveaux types d'événements, et votre code doit gérer les types d'événements inconnus avec élégance.

    Types de deltas de bloc de contenu

    Chaque événement content_block_delta contient un delta d'un type qui met à jour le bloc content à un index donné.

    Delta de texte

    Un delta de bloc de contenu text ressemble à :

    Delta de texte
    event: content_block_delta
    data: {"type": "content_block_delta","index": 0,"delta": {"type": "text_delta", "text": "ello frien"}}

    Delta JSON d'entrée

    Les deltas pour les blocs de contenu tool_use correspondent aux mises à jour du champ input du bloc. Pour supporter la granularité maximale, les deltas sont des chaînes JSON partielles, tandis que le tool_use.input final est toujours un objet.

    Vous pouvez accumuler les deltas de chaîne et analyser le JSON une fois que vous recevez un événement content_block_stop, en utilisant une bibliothèque comme Pydantic pour faire l'analyse JSON partielle, ou en utilisant nos SDK, qui fournissent des assistants pour accéder aux valeurs incrémentales analysées.

    Un delta de bloc de contenu tool_use ressemble à :

    Delta JSON d'entrée
    event: content_block_delta
    data: {"type": "content_block_delta","index": 1,"delta": {"type": "input_json_delta","partial_json": "{\"location\": \"San Fra"}}

    Remarque : Nos modèles actuels ne supportent l'émission que d'une seule propriété clé et valeur complète de input à la fois. Ainsi, lors de l'utilisation d'outils, il peut y avoir des délais entre les événements de streaming pendant que le modèle travaille. Une fois qu'une clé et une valeur input sont accumulées, nous les émettons sous la forme de plusieurs événements content_block_delta avec du json partiel fragmenté afin que le format puisse automatiquement supporter une granularité plus fine dans les modèles futurs.

    Delta de réflexion

    Lors de l'utilisation de la réflexion étendue avec le streaming activé, vous recevrez le contenu de réflexion via des événements thinking_delta. Ces deltas correspondent au champ thinking des blocs de contenu thinking.

    Pour le contenu de réflexion, un événement signature_delta spécial est envoyé juste avant l'événement content_block_stop. Cette signature est utilisée pour vérifier l'intégrité du bloc de réflexion.

    Un delta de réflexion typique ressemble à :

    Delta de réflexion
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "I need to find the GCD of 1071 and 462 using the Euclidean algorithm.\n\n1071 = 2 × 462 + 147"}}

    Le delta de signature ressemble à :

    Delta de signature
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}

    Réponse complète du flux HTTP

    Nous vous recommandons vivement d'utiliser nos SDK clients lors de l'utilisation du mode streaming. Cependant, si vous construisez une intégration API directe, vous devrez gérer ces événements vous-même.

    Une réponse en flux continu est composée de :

    1. Un événement message_start
    2. Potentiellement plusieurs blocs de contenu, chacun contenant :
      • Un événement content_block_start
      • Potentiellement plusieurs événements content_block_delta
      • Un événement content_block_stop
    3. Un événement message_delta
    4. Un événement message_stop

    Il peut y avoir des événements ping dispersés tout au long de la réponse également. Voir Types d'événements pour plus de détails sur le format.

    Requête de streaming basique

    curl https://api.anthropic.com/v1/messages \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --data \
    '{
      "model": "claude-opus-4-6",
      "messages": [{"role": "user", "content": "Hello"}],
      "max_tokens": 256,
      "stream": true
    }'
    Réponse
    event: message_start
    data: {"type": "message_start", "message": {"id": "msg_1nZdL29xx5MUA1yADyHTEsnR8uuvGzszyY", "type": "message", "role": "assistant", "content": [], "model": "claude-opus-4-6", "stop_reason": null, "stop_sequence": null, "usage": {"input_tokens": 25, "output_tokens": 1}}}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 0, "content_block": {"type": "text", "text": ""}}
    
    event: ping
    data: {"type": "ping"}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "Hello"}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "!"}}
    
    event: content_block_stop
    data: {"type": "content_block_stop", "index": 0}
    
    event: message_delta
    data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence":null}, "usage": {"output_tokens": 15}}
    
    event: message_stop
    data: {"type": "message_stop"}
    

    Requête de streaming avec utilisation d'outils

    L'utilisation d'outils supporte le streaming granulaire pour les valeurs de paramètres. Activez-le par outil avec eager_input_streaming.

    Dans cette requête, nous demandons à Claude d'utiliser un outil pour nous dire la météo.

      curl https://api.anthropic.com/v1/messages \
        -H "content-type: application/json" \
        -H "x-api-key: $ANTHROPIC_API_KEY" \
        -H "anthropic-version: 2023-06-01" \
        -d '{
          "model": "claude-opus-4-6",
          "max_tokens": 1024,
          "tools": [
            {
              "name": "get_weather",
              "description": "Get the current weather in a given location",
              "input_schema": {
                "type": "object",
                "properties": {
                  "location": {
                    "type": "string",
                    "description": "The city and state, e.g. San Francisco, CA"
                  }
                },
                "required": ["location"]
              }
            }
          ],
          "tool_choice": {"type": "any"},
          "messages": [
            {
              "role": "user",
              "content": "What is the weather like in San Francisco?"
            }
          ],
          "stream": true
        }'
    Réponse
    event: message_start
    data: {"type":"message_start","message":{"id":"msg_014p7gG3wDgGV9EUtLvnow3U","type":"message","role":"assistant","model":"claude-opus-4-6","stop_sequence":null,"usage":{"input_tokens":472,"output_tokens":2},"content":[],"stop_reason":null}}
    
    event: content_block_start
    data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
    
    event: ping
    data: {"type": "ping"}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Okay"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":","}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" let"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"'s"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" check"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" the"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" weather"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" for"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" San"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Francisco"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":","}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" CA"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":":"}}
    
    event: content_block_stop
    data: {"type":"content_block_stop","index":0}
    
    event: content_block_start
    data: {"type":"content_block_start","index":1,"content_block":{"type":"tool_use","id":"toolu_01T1x1fJ34qAmk2tNTrN7Up6","name":"get_weather","input":{}}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":""}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"{\"location\":"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":" \"San"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":" Francisc"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"o,"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":" CA\""}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":", "}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"\"unit\": \"fah"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"renheit\"}"}}
    
    event: content_block_stop
    data: {"type":"content_block_stop","index":1}
    
    event: message_delta
    data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null},"usage":{"output_tokens":89}}
    
    event: message_stop
    data: {"type":"message_stop"}

    Requête de streaming avec réflexion étendue

    Dans cette requête, nous activons la réflexion étendue avec le streaming pour voir le raisonnement étape par étape de Claude.

    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-opus-4-6",
        "max_tokens": 20000,
        "stream": true,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 16000
        },
        "messages": [
            {
                "role": "user",
                "content": "What is the greatest common divisor of 1071 and 462?"
            }
        ]
    }'
    Réponse
    event: message_start
    data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-opus-4-6", "stop_reason": null, "stop_sequence": null}}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "I need to find the GCD of 1071 and 462 using the Euclidean algorithm.\n\n1071 = 2 × 462 + 147"}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n462 = 3 × 147 + 21"}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n147 = 7 × 21 + 0"}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\nThe remainder is 0, so GCD(1071, 462) = 21."}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}
    
    event: content_block_stop
    data: {"type": "content_block_stop", "index": 0}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "The greatest common divisor of 1071 and 462 is **21**."}}
    
    event: content_block_stop
    data: {"type": "content_block_stop", "index": 1}
    
    event: message_delta
    data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}
    
    event: message_stop
    data: {"type": "message_stop"}

    Requête de streaming avec utilisation d'outil de recherche web

    Dans cette requête, nous demandons à Claude de rechercher sur le web les informations météorologiques actuelles.

    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-opus-4-6",
        "max_tokens": 1024,
        "stream": true,
        "tools": [
            {
                "type": "web_search_20250305",
                "name": "web_search",
                "max_uses": 5
            }
        ],
        "messages": [
            {
                "role": "user",
                "content": "What is the weather like in New York City today?"
            }
        ]
    }'
    Réponse
    event: message_start
    data: {"type":"message_start","message":{"id":"msg_01G...","type":"message","role":"assistant","model":"claude-opus-4-6","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":2679,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":3}}}
    
    event: content_block_start
    data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"I'll check"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" the current weather in New York City for you"}}
    
    event: ping
    data: {"type": "ping"}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."}}
    
    event: content_block_stop
    data: {"type":"content_block_stop","index":0}
    
    event: content_block_start
    data: {"type":"content_block_start","index":1,"content_block":{"type":"server_tool_use","id":"srvtoolu_014hJH82Qum7Td6UV8gDXThB","name":"web_search","input":{}}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":""}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"{\"query"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"\":"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":" \"weather"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":" NY"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"C to"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"day\"}"}}
    
    event: content_block_stop
    data: {"type":"content_block_stop","index":1 }
    
    event: content_block_start
    data: {"type":"content_block_start","index":2,"content_block":{"type":"web_search_tool_result","tool_use_id":"srvtoolu_014hJH82Qum7Td6UV8gDXThB","content":[{"type":"web_search_result","title":"Weather in New York City in May 2025 (New York) - detailed Weather Forecast for a month","url":"https://world-weather.info/forecast/usa/new_york/may-2025/","encrypted_content":"Ev0DCioIAxgCIiQ3NmU4ZmI4OC1k...","page_age":null},...]}}
    
    event: content_block_stop
    data: {"type":"content_block_stop","index":2}
    
    event: content_block_start
    data: {"type":"content_block_start","index":3,"content_block":{"type":"text","text":""}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":3,"delta":{"type":"text_delta","text":"Here's the current weather information for New York"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":3,"delta":{"type":"text_delta","text":" City:\n\n# Weather"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":3,"delta":{"type":"text_delta","text":" in New York City"}}
    
    event: content_block_delta
    data: {"type":"content_block_delta","index":3,"delta":{"type":"text_delta","text":"\n\n"}}
    
    ...
    
    event: content_block_stop
    data: {"type":"content_block_stop","index":17}
    
    event: message_delta
    data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":10682,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":510,"server_tool_use":{"web_search_requests":1}}}
    
    event: message_stop
    data: {"type":"message_stop"}

    Récupération d'erreurs

    Claude 4.5 et versions antérieures

    Pour les modèles Claude 4.5 et antérieurs, vous pouvez récupérer une requête de streaming qui a été interrompue en raison de problèmes réseau, de délais d'expiration ou d'autres erreurs en reprenant là où le flux a été interrompu. Cette approche vous évite de retraiter la réponse entière.

    La stratégie de récupération de base implique :

    1. Capturer la réponse partielle : Enregistrez tout le contenu qui a été reçu avec succès avant que l'erreur ne se produise
    2. Construire une requête de continuation : Créez une nouvelle requête API qui inclut la réponse partielle de l'assistant comme début d'un nouveau message d'assistant
    3. Reprendre le streaming : Continuez à recevoir le reste de la réponse à partir du point où elle a été interrompue

    Claude 4.6

    Pour les modèles Claude 4.6, vous devez ajouter un message utilisateur qui demande au modèle de continuer à partir du point où il s'est arrêté. Par exemple :

    Exemple de prompt
    Your previous response was interrupted and ended with [previous_response]. Continue from where you left off.

    Meilleures pratiques de récupération d'erreurs

    1. Utiliser les fonctionnalités du SDK : Exploitez les capacités d'accumulation de messages et de gestion des erreurs intégrées au SDK
    2. Gérer les types de contenu : Soyez conscient que les messages peuvent contenir plusieurs blocs de contenu (text, tool_use, thinking). Les blocs d'utilisation d'outils et de réflexion étendue ne peuvent pas être partiellement récupérés. Vous pouvez reprendre le streaming à partir du bloc de texte le plus récent.

    Was this page helpful?

    • Streaming avec les SDK
    • Obtenir le message final sans traiter les événements
    • Types d'événements
    • Événements ping
    • Événements d'erreur
    • Autres événements
    • Types de deltas de bloc de contenu
    • Delta de texte
    • Delta JSON d'entrée
    • Delta de réflexion
    • Réponse complète du flux HTTP
    • Requête de streaming basique
    • Requête de streaming avec utilisation d'outils
    • Requête de streaming avec réflexion étendue
    • Requête de streaming avec utilisation d'outil de recherche web
    • Récupération d'erreurs
    • Claude 4.5 et versions antérieures
    • Claude 4.6
    • Meilleures pratiques de récupération d'erreurs