View a markdown version of this page

Respuestas de transmisión - Amazon Nova

Respuestas de transmisión

La transmisión permite recibir las respuestas del modelo de forma incremental a medida que se generan, lo que proporciona una experiencia del usuario más interactiva. Tanto la API de Converse como la API de Invoke admiten la transmisión.

Transmisión con ConverseStream

Utilice ConverseStream para recibir respuestas como una secuencia de eventos:

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)

Transmisión con InvokeModelWithResponseStream

Utilice InvokeModelWithResponseStream para transmitir con la API de 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)

Tipos de eventos de transmisión

Las respuestas de transmisión incluyen varios tipos de eventos:

  • messageStart: indica el inicio de un mensaje.

  • contentBlockStart: indica el inicio de un bloque de contenido.

  • contentBlockDelta: contiene texto o datos incrementales.

  • contentBlockStop: indica el final de un bloque de contenido.

  • messageStop: indica el final del mensaje con el motivo de la detención.

  • metadata: contiene información de uso (recuentos de tokens).