

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Respons streaming
<a name="streaming-responses"></a>

Streaming memungkinkan Anda menerima respons model secara bertahap saat dihasilkan, memberikan pengalaman pengguna yang lebih interaktif. Baik Converse API dan Invoke API mendukung streaming.

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

Gunakan `ConverseStream` untuk menerima tanggapan sebagai aliran acara:

```
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 dengan InvokeModelWithResponseStream
<a name="streaming-invoke"></a>

Gunakan `InvokeModelWithResponseStream` untuk streaming dengan 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)
```

## Jenis acara streaming
<a name="streaming-events"></a>

Respons streaming mencakup beberapa jenis acara:
+ `messageStart`: Menunjukkan awal pesan
+ `contentBlockStart`: Menunjukkan awal dari blok konten
+ `contentBlockDelta`: Berisi teks atau data tambahan
+ `contentBlockStop`: Menunjukkan akhir dari blok konten
+ `messageStop`: Menunjukkan akhir pesan dengan alasan berhenti
+ `metadata`: Berisi informasi penggunaan (jumlah token)