

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Réponses en streaming
<a name="streaming-responses"></a>

Le streaming vous permet de recevoir les réponses des modèles de manière incrémentielle au fur et à mesure qu'elles sont générées, offrant ainsi une expérience utilisateur plus interactive. L'API Converse et l'API Invoke prennent toutes deux en charge le streaming.

## Streaming avec ConverseStream
<a name="streaming-converse"></a>

`ConverseStream`À utiliser pour recevoir des réponses sous forme de flux d'événements :

```
import boto3

bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')

response = bedrock.converse_stream(
    modelId='us.amazon.nova-2-lite-v1:0',
    messages=[
        {
            'role': 'user',
            'content': [{'text': 'Write a short story about AI.'}]
        }
    ]
)

for event in response['stream']:
    if 'contentBlockDelta' in event:
        delta = event['contentBlockDelta']['delta']
        if 'text' in delta:
            print(delta['text'], end='', flush=True)
```

## Streaming avec InvokeModelWithResponseStream
<a name="streaming-invoke"></a>

`InvokeModelWithResponseStream`À utiliser pour le streaming avec l'API Invoke :

```
import boto3
import json

bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')

request_body = {
    'messages': [
        {
            'role': 'user',
            'content': [{'text': 'Explain quantum computing.'}]
        }
    ]
}

response = bedrock.invoke_model_with_response_stream(
    modelId='us.amazon.nova-2-lite-v1:0',
    body=json.dumps(request_body)
)

for event in response['body']:
    chunk = json.loads(event['chunk']['bytes'])
    if 'contentBlockDelta' in chunk:
        delta = chunk['contentBlockDelta']['delta']
        if 'text' in delta:
            print(delta['text'], end='', flush=True)
```

## Types d'événements en streaming
<a name="streaming-events"></a>

Les réponses de streaming incluent plusieurs types d'événements :
+ `messageStart`: indique le début d'un message
+ `contentBlockStart`: indique le début d'un bloc de contenu
+ `contentBlockDelta`: contient du texte ou des données incrémentiels
+ `contentBlockStop`: indique la fin d'un bloc de contenu
+ `messageStop`: indique la fin du message avec la raison de l'arrêt
+ `metadata`: contient des informations d'utilisation (nombre de jetons)