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á.
Uso da API Converse
Para usar a Converse API, você chama as ConverseStream operações Converse ou para enviar mensagens para um modelo. Para chamar Converse, é necessário ter a permissão para a operação bedrock:InvokeModel. Para chamar ConverseStream, é necessário ter a permissão para a operação bedrock:InvokeModelWithResponseStream.
Tópicos
Solicitação
Ao fazer uma solicitação Converse com um endpoint de tempo de execução do Amazon Bedrock, você pode incluir os seguintes campos:
-
modelID — Um parâmetro obrigatório no cabeçalho que permite especificar o recurso a ser usado para inferência.
-
Os campos a seguir permitem que você personalize o prompt:
-
mensagens — Use para especificar o conteúdo e a função dos prompts.
-
sistema — Use para especificar solicitações do sistema, que definem instruções ou contexto para o modelo.
-
InferenceConfig — Use para especificar parâmetros de inferência que são comuns a todos os modelos. Os parâmetros de inferência influenciam a geração da resposta.
-
additionalModelRequestCampos — Use para especificar parâmetros de inferência específicos do modelo com o qual você executa a inferência.
-
PromptVariables — (Se você usar um prompt do Gerenciamento de prompts) Use esse campo para definir as variáveis no prompt a serem preenchidas e os valores com os quais preenchê-las.
-
-
Os campos a seguir permitem que você personalize como a resposta é retornada:
-
GuardRailConfig — Use esse campo para incluir uma grade de proteção a ser aplicada a todo o prompt.
-
ToolConfig — Use esse campo para incluir uma ferramenta para ajudar um modelo a gerar respostas.
-
additionalModelResponseFieldPaths— Use esse campo para especificar campos a serem retornados como um objeto ponteiro JSON.
-
-
requestMetadata — Use esse campo para incluir metadados que podem ser filtrados ao usar registros de invocação.
nota
As restrições a seguir se aplicam quando você usa um prompt de gerenciamento de Prompt com Converse ouConverseStream:
-
Você não pode incluir os
toolConfigcamposadditionalModelRequestFieldsinferenceConfigsystem,, ou. -
Se você incluir o
messagescampo, as mensagens serão anexadas após as mensagens definidas no prompt. -
Se você incluir o
guardrailConfigcampo, a grade de proteção será aplicada a todo o prompt. Se você incluirguardContentblocos no ContentBlockcampo, a grade de proteção só será aplicada a esses blocos.
Expanda uma seção para saber mais sobre um campo no corpo da Converse solicitação:
O messages campo é uma matriz de objetos Message, cada um dos quais define uma mensagem entre o usuário e o modelo. Um Message objeto contém os seguintes campos:
-
role — Define se a mensagem é do
user(o prompt enviado ao modelo) ouassistant(a resposta do modelo). -
conteúdo — Define o conteúdo no prompt.
nota
O Amazon Bedrock não armazena nenhum texto, imagem ou documento que você forneça como conteúdo. Os dados são usados somente para gerar a resposta.
Você pode manter o contexto da conversa incluindo todas as mensagens na conversa nas Converse solicitações subsequentes e usando o role campo para especificar se a mensagem é do usuário ou do modelo.
O content campo é mapeado para uma matriz de ContentBlockobjetos. Em cada um ContentBlock, você pode especificar um dos seguintes campos (para ver quais modelos suportam quais blocos, consulteModelos compatíveis e recursos do modelo):
nota
As seguintes restrições pertencem ao campo content:
-
É possível incluir até vinte imagens. O tamanho, a altura e a largura de cada imagem não devem exceder 3,75 MB, 8.000 px e 8.000 px, respectivamente.
-
É possível incluir até cinco documentos. O tamanho de cada documento não deve ser superior a 4,5 MB.
-
Você só poderá incluir imagens e documentos se
roleforuser.
No exemplo de messages a seguir, o usuário solicita uma lista de três músicas pop e o modelo gera uma lista de músicas.
[ { "role": "user", "content": [ { "text": "Create a list of 3 pop songs." } ] }, { "role": "assistant", "content": [ { "text": "Here is a list of 3 pop songs by artists from the United Kingdom:\n\n1. \"As It Was\" by Harry Styles\n2. \"Easy On Me\" by Adele\n3. \"Unholy\" by Sam Smith and Kim Petras" } ] } ]
Prompt do sistema é um tipo de prompt que fornece instruções ou contexto ao modelo sobre a tarefa que ele deve realizar ou a persona que ele deve adotar durante a conversa. Você pode especificar uma lista de solicitações do sistema para a solicitação no campo system (SystemContentBlock), conforme mostrado no exemplo a seguir.
[ { "text": "You are an app that creates play lists for a radio station that plays rock and pop music. Only return song names and the artist. " } ]
A Converse API é compatível com um conjunto básico de parâmetros de inferência que você define no inferenceConfig campo (InferenceConfiguration). O conjunto básico de parâmetros de inferência é:
-
maxTokens: o número máximo de tokens a serem permitidos na resposta gerada.
-
stopSequences: uma lista de sequências de parada. Uma sequência de parada é uma sequência de caracteres que faz com que o modelo interrompa a geração da resposta.
-
temperature: a probabilidade do modelo selecionar opções de maior probabilidade ao gerar uma resposta.
-
topP: a porcentagem de candidatos mais prováveis que o modelo considera para o próximo token.
Para obter mais informações, consulte Geração de resposta de influência com parâmetros de inferência..
O exemplo de JSON a seguir define o parâmetro de inferência temperature.
{"temperature": 0.5}
Se o modelo que você está usando tiver parâmetros de inferência adicionais, será possível definir esses parâmetros especificando-os como JSON no campo additionalModelRequestFields. O exemplo de JSON a seguir mostra como definir top_k, que está disponível em modelos Claude da Anthropic, mas não é um parâmetro básico de inferência na API de mensagens.
{"top_k": 200}
Se você especificar um prompt do Prompt management no modelId como recurso para executar a inferência, use esse campo para preencher as variáveis do prompt com valores reais. O promptVariables campo mapeia para um objeto JSON com chaves que correspondem às variáveis definidas nos prompts e valores pelos quais substituir as variáveis.
Por exemplo, digamos que você tenha um prompt que dizMake me a . O ID do prompt é {{genre}} playlist consisting of the following number of songs: {{number}}.PROMPT12345 e sua versão é1. Você pode enviar a seguinte Converse solicitação para substituir as variáveis:
POST /model/arn:aws:bedrock:us-east-1:111122223333:prompt/PROMPT12345:1/converse HTTP/1.1 Content-type: application/json { "promptVariables": { "genre" : "pop", "number": 3 } }
Você pode aplicar uma grade de proteção criada com o Amazon Bedrock Guardrails incluindo esse campo. Para aplicar a grade de proteção a uma mensagem específica na conversa, inclua a mensagem em um. GuardrailConverseContentBlock Se você não incluir nenhum GuardrailConverseContentBlock s no corpo da solicitação, a grade de proteção será aplicada a todas as mensagens no messages campo. Para obter um exemplo, consulte Inclua uma grade de proteção com a API Converse.
Esse campo permite definir uma ferramenta para o modelo usar para ajudá-lo a gerar uma resposta. Para obter mais informações, consulte Use uma ferramenta para concluir uma resposta do modelo do Amazon Bedrock.
É possível especificar os caminhos para os parâmetros adicionais do modelo no campo additionalModelResponseFieldPaths, conforme mostrado no exemplo a seguir.
[ "/stop_sequence" ]
A API mostra os campos adicionais que você solicita no campo additionalModelResponseFields.
Esse campo é mapeado para um objeto JSON. Você pode especificar chaves e valores de metadados para os quais eles são mapeados dentro desse objeto. Você pode usar metadados de solicitação para ajudar a filtrar os registros de invocação do modelo.
Opcionalmente, você também pode adicionar pontos de verificação de cache aos tools campos system ou para usar o cache imediato, dependendo do modelo usado. Para obter mais informações, consulte Cache imediato para inferência mais rápida do modelo.
Resposta
A resposta que você recebe da Converse API depende de qual operação você chama, Converse ouConverseStream.
Resposta de Converse
Na resposta deConverse, o output campo (ConverseOutput) contém a mensagem (Mensagem) que o modelo gera. O conteúdo da mensagem está no campo content (ContentBlock) e a função (userouassistant) à qual a mensagem corresponde está no role campo.
Se você usou o cache de prompts, no campo de uso, cacheReadInputTokensCount cacheWriteInputTokensCount informe quantos tokens totais foram lidos do cache e gravados no cache, respectivamente.
O metrics campo (ConverseMetrics) inclui métricas para a chamada. Para determinar porque o modelo parou de gerar conteúdo, verifique o campo stopReason. Você pode obter informações sobre os tokens passados para o modelo na solicitação e os tokens gerados na resposta, verificando o usage campo (TokenUsage). Se você tiver especificado campos de resposta adicionais na solicitação, a API os retornará como JSON no campo additionalModelResponseFields.
O exemplo a seguir mostra a resposta de Converse quando você passa o prompt discutido em Solicitação.
{ "output": { "message": { "role": "assistant", "content": [ { "text": "Here is a list of 3 pop songs by artists from the United Kingdom:\n\n1. \"Wannabe\" by Spice Girls\n2. \"Bitter Sweet Symphony\" by The Verve \n3. \"Don't Look Back in Anger\" by Oasis" } ] } }, "stopReason": "end_turn", "usage": { "inputTokens": 125, "outputTokens": 60, "totalTokens": 185 }, "metrics": { "latencyMs": 1175 } }
ConverseStream resposta
Se você chamar ConverseStream para transmitir a resposta de um modelo, o fluxo será retornado no campo de resposta stream. O fluxo emite os eventos abaixo na seguinte ordem:
-
messageStart(MessageStartEvent). O evento inicial de uma mensagem. Inclui a função da mensagem. -
contentBlockStart(ContentBlockStartEvent). Um evento de início do bloco de conteúdo. Somente para uso de ferramentas. -
contentBlockDelta(ContentBlockDeltaEvent). Um evento delta do bloco de conteúdo. Inclui um dos seguintes:-
text— O texto parcial que o modelo gera. -
reasoningContent— O raciocínio parcial realizado pelo modelo para gerar a resposta. Você deve enviar as mensagens retornadassignature, além de todas as mensagens anteriores nasConversesolicitações subsequentes. Se alguma das mensagens for alterada, a resposta gerará um erro. -
toolUse— O objeto JSON de entrada parcial para uso da ferramenta.
-
-
contentBlockStop(ContentBlockStopEvent). Um evento de interrupção do bloqueio de conteúdo. -
messageStop(MessageStopEvent). O evento de parada da mensagem. Inclui o motivo pelo qual o modelo parou de gerar saída. -
metadata(ConverseStreamMetadataEvent). Metadados da solicitação. Os metadados incluem o uso do token emusage(TokenUsage) e métricas para a chamada emmetrics(ConverseStreamMetadataEvent).
ConverseStream transmite um bloco de conteúdo completo como um ContentBlockStartEvent evento, um ou mais ContentBlockDeltaEvent eventos e um ContentBlockStopEvent evento. Use o campo contentBlockIndex como um índice para correlacionar os eventos que compõem um bloco de conteúdo.
O exemplo a seguir é a resposta parcial de ConverseStream.
{'messageStart': {'role': 'assistant'}} {'contentBlockDelta': {'delta': {'text': ''}, 'contentBlockIndex': 0}} {'contentBlockDelta': {'delta': {'text': ' Title'}, 'contentBlockIndex': 0}} {'contentBlockDelta': {'delta': {'text': ':'}, 'contentBlockIndex': 0}} . . . {'contentBlockDelta': {'delta': {'text': ' The'}, 'contentBlockIndex': 0}} {'messageStop': {'stopReason': 'max_tokens'}} {'metadata': {'usage': {'inputTokens': 47, 'outputTokens': 20, 'totalTokens': 67}, 'metrics': {'latencyMs': 100.0}}}