Usar a API para invocar um modelo com um único prompt - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar a API para invocar um modelo com um único prompt

Execute inferência em um modelo por meio da API enviando uma InvokeModelWithResponseStreamsolicitação InvokeModelor. Você pode especificar o tipo de mídia para os corpos da solicitação e da resposta nos campos contentType e accept. Se você não especificar valores, o valor padrão para ambos os campos será application/json.

O streaming é compatível com todos os modelos de saída de texto, exceto AI21 Labs Jurassic-2 os modelos. Para verificar se um modelo suporta streaming, envie uma ListFoundationModelssolicitação GetFoundationModelor e verifique o valor no responseStreamingSupported campo.

Especifique os campos a seguir de acordo com o modelo utilizado.

  1. modelId: use o ID ou o ARN do modelo. O método para encontrar o modelId ou modelArn depende do tipo de modelo usado:

    • Modelo básico: execute uma das ações a seguir.

    • Modelo personalizado: compre throughput provisionado para o modelo personalizado (consulte Taxa de transferência provisionada para Amazon Bedrock para obter mais informações) e encontre o ID ou o ARN do modelo provisionado.

    • Modelo provisionado: se você criou um throughput provisionado para um modelo básico ou personalizado, execute uma das ações a seguir.

      • Envie uma ListProvisionedModelThroughputssolicitação e encontre provisionedModelArn o modelo a ser usado na resposta.

      • No console, selecione um modelo em Provisioned Throughput e encontre o ARN do modelo na seção Detalhes do modelo.

  2. body: cada modelo básico tem seus próprios parâmetros de inferência que podem ser definidos no campo body. Os parâmetros de inferência para um modelo personalizado ou provisionado dependem do modelo básico do qual ele foi criado. Para ter mais informações, consulte Parâmetros de inferência para modelos de base.

Exemplos de código de invocação de modelos

Os exemplos a seguir mostram como executar inferência com a InvokeModelAPI. Para conferir exemplos com modelos diferentes, consulte a referência do parâmetros de inferência do modelo desejado (Parâmetros de inferência para modelos de base).

CLI

O exemplo a seguir salva a resposta gerada à história rápida de dois cães em um arquivo chamado 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

O exemplo a seguir retorna uma resposta gerada ao prompt explain black holes to 8th graders.

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'))

Exemplo de código de invocação de modelos com streaming

nota

O AWS CLI não suporta streaming.

O exemplo a seguir mostra como usar a InvokeModelWithResponseStreamAPI para gerar streaming de texto com Python usando o prompt escreva um ensaio sobre viver em Marte em 1000 palavras.

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()))