Esquema completo da solicitação - Amazon Nova

Esquema completo da solicitação

O esquema de solicitação é quase idêntico entre a API Invoke (streaming e não streaming) e a API Converse. Há diferenças sutis relacionadas à codificação da carga útil de imagem e vídeo. Como o Amazon Nova Micro não é compatível com imagens ou vídeos como entrada, essas partes do esquema de solicitação não se aplicam ao Amazon Nova Micro. Do contrário, o esquema de solicitação é o mesmo para todos os modelos de compreensão do Amazon Nova.

Importante

O período de tempo limite para chamadas de inferência para o Amazon Nova é de 60 minutos. Por padrão, os clientes do AWS SDK atingem o tempo limite após 1 minuto. Recomendamos que você aumente o período de tempo limite de leitura do seu cliente do AWS SDK para pelo menos 60 minutos. Por exemplo, no SDK botocore do AWS Python, altere o valor do campo read_timeout em botocore.config para pelo menos 3600.

client = boto3.client( "bedrock-runtime", region_name="us-east-1", config=Config( connect_timeout=3600, # 60 minutes read_timeout=3600, # 60 minutes retries={'max_attempts': 1} ) )
{ "system": [ { "text": "string" } ], "messages": [ { "role": "user", //first turn should always be the user turn "content": [ { "text": "string" }, { "image": { "format": "jpeg" | "png" | "gif" | "webp", "source": { "bytes": image // Binary array (Converse API) or Base64-encoded string (Invoke API) } } }, { "video": { "format": "mkv" | "mov" | "mp4" | "webm" | "three_gp" | "flv" | "mpeg" | "mpg" | "wmv", "source": { // Option 1: Sending a S3 location "s3Location": { "uri": "string", // example: s3://my-bucket/object-key "bucketOwner": "string" // (Optional) example: "123456789012" }, // Option 2: Sending file bytes "bytes": video // Binary array (Converse API) or Base64-encoded string (Invoke API) } } } ] }, { "role": "assistant", "content": [ { "text": "string" //prefilling assistant turn } ] } ], "inferenceConfig":{ // all Optional, Invoke parameter names used in this example "maxTokens": int, // greater than 0, equal or less than 5k (default: dynamic*) "temperature": float, // greater than 0 and less than 1.0 (default: 0.7) "topP": float, // greater than 0, equal or less than 1.0 (default: 0.9) "topK": int, // 0 or greater (default: 50) "stopSequences": ["string"] }, "toolConfig": { // all Optional "tools": [ { "toolSpec": { "name": "string", //meaningful tool name (Max char: 64) "description": "string", //meaningful description of the tool "inputSchema": { "json": { // The JSON schema for the tool. For more information, see JSON Schema Reference "type": "object", "properties": { "arg1": { //arguments "type": "string", //argument data type "description": "string" //meaningful description } }, "required": [ "string" //args ] } } } } ], }, "toolChoice": { "auto": {} } //Amazon Nova models ONLY support tool choice of "auto" }

Os seguintes parâmetros são obrigatórios:

  • system: (opcional) o prompt do sistema para a solicitação.

    Um prompt do sistema é uma maneira de fornecer contexto e instruções para o Amazon Nova, como especificar uma meta ou um perfil específico.

  • messages: (obrigatório) as mensagens de entrada.

    • role: o perfil do turno da conversa. Os valores válidos são user e assistant.

    • content: (obrigatório) uma lista de objetos ContentBlock que contêm conteúdo para a conversa. Cada objeto contém uma chave que especifica o tipo de conteúdo (text, image ou video). O valor do objeto depende do tipo de chave. Os tipos a seguir são compatíveis com a chave:

      • text: mapeia para um objeto que contém um único campo text, cujo valor é o prompt textual do turno da conversa. Se a conversa também incluir um objeto image ou video, o objeto text será interpretado como um prompt de texto que acompanha a imagem ou o vídeo.

      • image: (não compatível com o Amazon Nova Micro) mapeia para um objeto representando o conteúdo da imagem e inclui os seguintes campos:

        • format: (obrigatório) o formato da imagem. Você pode especificar os seguintes formatos de imagem:

          • jpeg

          • png

          • webp

          • gif

        • source: (obrigatório) os dados da imagem. Para a API Invoke, deve ser uma string de imagem codificada no Base64. Para a API Converse, deve ser uma matriz de bytes.

        • bytes: (obrigatório) os dados da imagem. Para a API Invoke, deve ser uma string de imagem codificada no Base64. Para a API Converse, deve ser uma matriz de bytes.

      • video: (não compatível com o Amazon Nova Micro) mapeia para um objeto representando conteúdo de vídeo e incluindo os seguintes campos:

        • format: (obrigatório) o formato do vídeo. Especifique os seguintes valores:

          • mkv

          • mov

          • mp4

          • webm

          • three_gp

          • flv

          • mpeg

          • mpg

          • wmv

        • source: (obrigatório) a fonte dos dados do vídeo. Você pode especificar um URI do Amazon S3 ou os bytes do arquivo de vídeo na solicitação.

          • uri: (obrigatório) o URI do Amazon S3 do arquivo de vídeo. Por exemplo, “s3://my-bucket/object-key”.

          • bucketOwner: (opcional) o ID da conta à qual o bucket pertence. Use isto se você estiver invocando o modelo de uma conta separada.

          • bytes: (obrigatório) os dados da imagem. Para a API Invoke, deve ser uma string de imagem codificada no Base64. Para a API Converse, deve ser uma matriz de bytes.

  • inferenceConfig: são valores de configuração de inferência que podem ser passados na inferência.

    • maxTokens: (opcional) o número máximo de tokens a serem gerados antes de parar.

      Observe que os modelos do Amazon Nova podem parar de gerar tokens antes de atingir o valor de maxTokens. O valor máximo permitido para novos tokens é 5K.

    • temperature: (opcional) o valor de aleatoriedade injetada na resposta. Os valores válidos são entre 0,00001 and 1, inclusive. O valor padrão é 0,7.

    • topP: (opcional) use amostragem de núcleo.

      O Amazon Nova calcula a distribuição cumulativa de todas as opções de cada token subsequente em ordem de probabilidade decrescente e a interrompe quando atinge uma determinada probabilidade especificada por topP. Você deve alterar temperature ou topP, mas não ambos. Os valores válidos são entre 0 e 1, inclusive. O valor padrão é 0.9.

    • topK: (opcional) somente uma amostragem das opções K principais para cada token subsequente.

      Use o parâmetro topK para remover respostas de baixa probabilidade e com final extenso. Os valores válidos são entre 0 e 128. O valor padrão é que esse parâmetro não é usado.

      nota

      Ao usar a API Converse com o parâmetro topK, um parâmetro inferenceConfig adicional deve ser incluído em um campo additionalModelRequestFields. Confira Usar a API Converse para obter um exemplo de como esses parâmetros são passados.

    • stopSequences: (opcional) matriz de strings contendo sequências de parada. Se o modelo gerar qualquer uma dessas strings, a geração será interrompida e a resposta será retornada até esse ponto.

    Parameter Default value Range
    temperature 0.7 0.00001-1
    topP 0.9 0-1
    topK Not used 0-128
  • toolConfig: (opcional) objeto JSON seguindo o esquema ToolConfig, contendo a especificação e a escolha da ferramenta. Esse esquema é o mesmo seguido pela API Converse.