Uso de la API para invocar un modelo con una sola petición - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la API para invocar un modelo con una sola petición

Ejecute una inferencia en un modelo a través de la API enviando una InvokeModelWithResponseStreamsolicitud InvokeModelo. Puede especificar el tipo de medio para los cuerpos de la solicitud y la respuesta en los campos contentType y accept. Si no especifica un valor, el valor predeterminado para ambos campos es application/json.

La transmisión es compatible con todos los modelos de salida de texto, excepto los AI21 Labs Jurassic-2 modelos. Para comprobar si un modelo admite la transmisión, envía una ListFoundationModelssolicitud GetFoundationModelo consulta y comprueba el valor que aparece en el responseStreamingSupported campo.

Especifique los siguientes campos, según el modelo que utilice.

  1. modelId: utilice el identificador del modelo o su ARN. El método para encontrar la modelId o modelArn depende del tipo de modelo que utilices:

    • Modelo base: realice una de las siguientes acciones.

    • Modelo personalizado: compre el rendimiento aprovisionado para el modelo personalizado (para obtener más información, consulte Rendimiento aprovisionado para Amazon Bedrock) y busque el ID del modelo o el ARN del modelo aprovisionado.

    • Modelo aprovisionado: si ha creado un rendimiento aprovisionado para un modelo base o personalizado, realice una de las siguientes acciones.

      • Envía una ListProvisionedModelThroughputssolicitud y busca provisionedModelArn el modelo que deseas usar en la respuesta.

      • En la consola, seleccione un modelo en Rendimiento aprovisionado y busque el ARN del modelo en la sección Detalles del modelo.

  2. body: cada modelo básico tiene sus propios parámetros que se configuran en el campo body. Los parámetros de inferencia de un modelo personalizado o aprovisionado dependen del modelo base a partir del cual se creó. Para obtener más información, consulte Parámetros de inferencia para Modelos fundacionales.

Ejemplos de código de modelo de invocación

En los siguientes ejemplos, se muestra cómo ejecutar una inferencia con la API. InvokeModel Para ver ejemplos con diferentes modelos, consulte la referencia del parámetro de inferencia del modelo deseado (Parámetros de inferencia para Modelos fundacionales).

CLI

En el siguiente ejemplo, se guarda la respuesta generada a la pregunta sobre la historia de dos perros en un archivo denominado invoke-model-output.txt.

aws bedrock-runtime invoke-model \ --model-id anthropic.claude-v2 \ --body '{"prompt": "\n\nHuman: story of two dogs\n\nAssistant:", "max_tokens_to_sample" : 300}' \ --cli-binary-format raw-in-base64-out \ invoke-model-output.txt
Python

El siguiente ejemplo devuelve una respuesta generada a la petición explica los agujeros negros a los alumnos de 8º curso.

import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ "prompt": "\n\nHuman: explain black holes to 8th graders\n\nAssistant:", "max_tokens_to_sample": 300, "temperature": 0.1, "top_p": 0.9, }) modelId = 'anthropic.claude-v2' accept = 'application/json' contentType = 'application/json' response = brt.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get('body').read()) # text print(response_body.get('completion'))

Ejemplos de código de modelo de invocación con transmisión

nota

No AWS CLI es compatible con la transmisión.

El siguiente ejemplo muestra cómo usar la InvokeModelWithResponseStreamAPI para generar texto en streaming con Python mediante el mensaje escribe un ensayo para vivir en Marte en 1000 palabras.

import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ 'prompt': '\n\nHuman: write an essay for living on mars in 1000 words\n\nAssistant:', 'max_tokens_to_sample': 4000 }) response = brt.invoke_model_with_response_stream( modelId='anthropic.claude-v2', body=body ) stream = response.get('body') if stream: for event in stream: chunk = event.get('chunk') if chunk: print(json.loads(chunk.get('bytes').decode()))