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á.
Para usar o 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.
-
additionalmodelRequestFields— 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
toolConfig
camposadditionalModelRequestFields
inferenceConfig
system
,, ou. -
Se você incluir o
messages
campo, as mensagens serão anexadas após as mensagens definidas no prompt. -
Se você incluir o
guardrailConfig
campo, a grade de proteção será aplicada a todo o prompt. Se você incluirguardContent
blocos 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 modalidades, 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
role
foruser
.
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"
}
]
}
]
Um prompt do sistema é um tipo de prompt que fornece instruções ou contexto ao modelo sobre a tarefa que ele deve executar ou a personalidade 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 ferramenta Converse A API oferece suporte a 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 definirtop_k
, que está disponível em Anthropic Claude modelos, 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 é mapeado 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 Converse API .
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 que você está usando. Para obter mais informações, consulte Cache imediato para inferência mais rápida do modelo.
nota
No momento, o cache de prompts do Amazon Bedrock está disponível apenas para um número selecionado de clientes. Para saber mais sobre como participar da prévia, consulte Cache de prompts do Amazon Bedrock
Resposta
A resposta que você recebe do Converse A 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 (user
ouassistant
) à 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 nasConverse
solicitaçõ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 para a 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}}}