View a markdown version of this page

Streaming delle risposte - Amazon Nova

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Streaming delle risposte

Lo streaming consente di ricevere le risposte dei modelli in modo incrementale man mano che vengono generate, offrendo un'esperienza utente più interattiva. Sia l'API Converse che l'API Invoke supportano lo streaming.

Streaming con ConverseStream

Utilizza ConverseStream per ricevere risposte sotto forma di flusso di eventi:

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 con InvokeModelWithResponseStream

Utilizzalo InvokeModelWithResponseStream per lo streaming con 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)

Tipi di eventi in streaming

Le risposte in streaming includono diversi tipi di eventi:

  • messageStart: indica l'inizio di un messaggio

  • contentBlockStart: indica l'inizio di un blocco di contenuto

  • contentBlockDelta: contiene testo o dati incrementali

  • contentBlockStop: indica la fine di un blocco di contenuto

  • messageStop: Indica la fine del messaggio con il motivo dell'interruzione

  • metadata: contiene informazioni sull'utilizzo (numero di token)