Configurar e personalizar consultas e geração de respostas - Amazon Bedrock

Configurar e personalizar consultas e geração de respostas

Você pode configurar e personalizar a recuperação e a geração de respostas, aumentando ainda mais a relevância das respostas. Por exemplo, você pode aplicar filtros a campos/atributos de metadados do documento para usar os documentos atualizados mais recentemente ou documentos com horários de modificação recentes.

nota

Todas as configurações a seguir, exceto Orquestração e geração, são aplicáveis somente a fontes de dados não estruturados.

Para saber mais sobre essas configurações no console ou na API, selecione um dos seguintes tópicos:

Quando você consulta uma base de conhecimento, o Amazon Bedrock retorna até cinco resultados na resposta por padrão. Cada resultado corresponde a um fragmento de origem.

nota

O número real de resultados na resposta pode ser menor que o valor numberOfResults especificado, pois esse parâmetro define o número máximo de resultados a serem exibidos. Se você configurou a fragmentação hierárquica para sua estratégia de fragmentação, o parâmetro numberOfResults será associado ao número de fragmentos secundários que a base de conhecimento recuperará. Como os fragmentos secundários que compartilham o mesmo fragmento principal são substituídos pelo fragmento principal na resposta final, o número de resultados exibidos pode ser menor do que o valor solicitado.

Para modificar o número máximo de resultados a serem exibidos, escolha a guia correspondente ao método de sua preferência e siga as etapas:

Console

Siga as etapas do console em Consultar uma base de conhecimento e recuperar dados ou Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados. No painel Configurações, expanda a seção Fragmentos de origem e insira o número máximo de fragmentos de origem a serem exibidos.

API

Ao fazer uma solicitação Retrieve ou RetrieveAndGenerate, inclua um campo retrievalConfiguration, associado a um objeto KnowledgeBaseRetrievalConfiguration. Para ver a localização desse campo, consulte os corpos de solicitação Retrieve e RetrieveAndGenerate na referência de API.

O seguinte objeto JSON mostra os campos mínimos necessários no objeto KnowledgeBaseRetrievalConfiguration para definir o número máximo de resultados a serem mostrados:

"retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": number } }

Especifique o número máximo de resultados recuperados (consulte o campo numberOfResults em KnowledgeBaseRetrievalConfiguration para obter o intervalo de valores aceitos) a serem retornados no campo numberOfResults.

O tipo de pesquisa define como fontes de dados na base de conhecimento são consultadas. Estes tipos de pesquisa são possíveis:

nota

Só é possível usar pesquisa híbrida com armazenamentos de vetores do Amazon RDS, Amazon OpenSearch Sem Servidor e MongoDB que contenham um campo de texto filtrável. Quando você usa um armazenamento de vetores diferente ou seu armazenamento de vetores não contém um campo de texto filtrável, a consulta usa a pesquisa semântica.

  • Padrão: o Amazon Bedrock decide a estratégia de pesquisa para você.

  • Híbrida: combina pesquisa com incorporações de vetores (pesquisa semântica) com pesquisa no texto bruto.

  • Semântica: só pesquisa incorporações de vetores.

Para saber como definir o tipo de pesquisa, escolha a guia correspondente ao método de sua preferência e siga as etapas:

Console

Siga as etapas do console em Consultar uma base de conhecimento e recuperar dados ou Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados. Ao abrir o painel Configurações, expanda a seção Tipo de pesquisa, ative Substituir pesquisa padrão e selecione uma opção.

API

Ao fazer uma solicitação Retrieve ou RetrieveAndGenerate, inclua um campo retrievalConfiguration, associado a um objeto KnowledgeBaseRetrievalConfiguration. Para ver a localização desse campo, consulte os corpos de solicitação Retrieve e RetrieveAndGenerate na referência de API.

O seguinte objeto JSON mostra os campos mínimos necessários no objeto KnowledgeBaseRetrievalConfiguration para definir as configurações do tipo de pesquisa:

"retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC" } }

Especifique o tipo de pesquisa no campo overrideSearchType. Você tem as seguintes opções:

  • Se você não especificar um valor, o Amazon Bedrock decidirá qual estratégia de pesquisa é mais adequada à configuração do armazenamento de vetores.

  • HÍBRIDA: o Amazon Bedrock consulta a base de conhecimento usando as incorporações de vetores e o texto bruto.

  • SEMÂNTICA: o Amazon Bedrock consulta a base de conhecimento usando as incorporações de vetores.

Console

Siga as etapas do console em Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados. Ao abrir o painel Configurações, expanda a seção Preferência de streaming e ative Resposta do fluxo.

API

Para transmitir respostas, use a API RetrieveAndGenerateStream. Para obter mais detalhes sobre o preenchimento dos campos, consulte a guia API em Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados.

Você pode aplicar filtros para documentar campos/atributos para ajudar a melhorar ainda mais a relevância das respostas. As fontes de dados podem incluir atributos/campos de metadados do documento para filtragem e especificar quais campos incluir nas incorporações.

Por exemplo, “epoch_modification_time” representa o tempo em segundos desde 1.º de janeiro de 1970 (UTC), quando o documento foi atualizado pela última vez. Você pode filtrar os dados mais recentes, em que “epoch_modification_time” é maior que um determinado número. Esses documentos mais recentes podem ser usados na consulta.

Para usar filtros ao consultar uma base de conhecimento, verifique se a base de conhecimento atende aos seguintes requisitos:

  • Ao configurar o conector da fonte de dados, a maioria dos conectores rastreia os principais campos de metadados dos documentos. Se estiver usando um bucket do Amazon S3 como fonte de dados, o bucket deverá incluir pelo menos um fileName.extension.metadata.json para o arquivo ou o documento ao qual está associado. Consulte Campos de metadados do documento em Configuração de conexão para ter mais informações sobre como configurar o arquivo de metadados.

  • Se o índice de vetores da base de conhecimento estiver em um armazenamento de vetores do Amazon OpenSearch Sem Servidor, verifique se ele está configurado com o mecanismo faiss. Se o índice de vetores estiver configurado com o mecanismo nmslib, será necessário fazer o seguinte:

  • Se sua base de conhecimento usa um índice de vetores em um bucket de vetores do S3, não é possível usar os filtros startsWith e stringContains.

  • Se estiver adicionando metadados a um índice de vetores existente em um cluster de banco de dados do Amazon Aurora, recomendamos que você forneça o nome do campo da coluna de metadados personalizados para armazenar todos os metadados em uma única coluna. Durante a ingestão de dados, essa coluna será usada para preencher todas as informações em os arquivos de metadados de suas fontes de dados. Se você optar por fornecer esse campo, deverá criar um índice nessa coluna.

    • Quando você cria uma base de conhecimento no console e permite que o Amazon Bedrock configure o banco de dados do Amazon Aurora, ele cria automaticamente uma única coluna para você e a preenche com as informações dos seus arquivos de metadados.

    • Ao optar por criar outro índice de vetores no armazenamento de vetores, é necessário fornecer o nome do campo de metadados personalizados para armazenar informações dos arquivos de metadados. Se você não fornecer esse nome de campo, crie uma coluna para cada atributo de metadados nos arquivos e especifique o tipo de dados (texto, número ou booliano). Por exemplo, se o atributo genre existir na fonte de dados, você deve adicionar uma coluna chamada genre e especificar text como o tipo de dados. Durante a ingestão, essas colunas separadas serão preenchidas com os valores dos atributos correspondentes.

Se você tiver documentos PDF em sua fonte de dados e usar o Amazon OpenSearch Sem Servidor como armazenamento de vetores, as Bases de Conhecimento do Amazon Bedrock gerarão números de página de documento e os armazenarão em um campo/atributo de metadados chamado x-amz-bedrock-kb-document-page-number. Observe que não será possível ter números de página armazenados em um campo de metadados se você optar por não agrupar seus documentos.

Você pode usar os operadores de filtragem para filtrar os resultados ao consultar:

Operadores de filtragem
Operador Console Nome do filtro da API Tipos de dados de atributo compatíveis Resultados filtrados
Igual = igual a string, número, booliano O atributo corresponde ao valor fornecido por você
Não é igual a != notEquals string, número, booliano O atributo não corresponde ao valor fornecido por você
Maior que > greaterThan número O atributo é maior que o valor fornecido por você
É maior que ou igual a >= greaterThanOrEquals número O atributo é maior que ou igual ao valor fornecido por você
Menor que < lessThan número O atributo é menor que o valor fornecido por você
Menor ou igual a <= lessThanOrEquals número O atributo é menor que ou igual ao valor fornecido por você
Em : in lista de strings O atributo está na lista fornecida por você (no momento, apresenta melhor compatibilidade com os armazenamentos de vetores do Amazon OpenSearch Sem Servidor e GraphRAG do Neptune Analytics)
Não está em !: notIn lista de strings O atributo não está na lista fornecida por você (no momento, apresenta melhor compatibilidade com os armazenamentos de vetores do Amazon OpenSearch Sem Servidor e GraphRAG do Neptune Analytics)
A string contém Indisponível stringContains string O atributo deve ser uma string. O nome do atributo corresponde à chave e cujo valor é uma string que contém o valor que você forneceu como substring ou uma lista com um membro que contém o valor que você forneceu como substring. (No momento, apresenta melhor compatibilidade com o armazenamento de vetores do Amazon OpenSearch Sem Servidor). O armazenamento de vetores do GraphRAG do Neptune Analytics permite a variante de string, mas não a variante de lista desse filtro.)
A lista contém Indisponível listContains string O atributo deve ser uma lista de strings. O nome do atributo corresponde à chave e cujo valor é uma lista que contém o valor que você forneceu como um de seus membros (no momento, apresenta melhor compatibilidade com os armazenamentos de vetores do Amazon OpenSearch Sem Servidor).

Para combinar operadores de filtragem, você pode usar os seguintes operadores lógicos:

Operadores lógicos
Operador Console Nome do campo de filtro da API Resultados filtrados
E e andAll Os resultados atendem a todas as expressões de filtragem no grupo
Ou ou orAll Os resultados atendem a pelo menos uma das expressões de filtragem no grupo

Para saber como filtrar os resultados usando metadados, escolha a guia correspondente ao método de sua preferência e siga as etapas:

Console

Siga as etapas do console em Consultar uma base de conhecimento e recuperar dados ou Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados. Ao abrir o painel Configurações, você verá uma seção Filtros. Os seguintes procedimentos descrevem casos de uso diferentes:

  • Para adicionar um filtro, crie uma expressão de filtragem inserindo um atributo de metadados, um operador de filtragem e um valor na caixa. Separe cada parte da expressão com um espaço em branco. Pressione Enter para adicionar o filtro.

    Para obter uma lista dos operadores de filtragem aceitos, consulte a tabela Operadores de filtragem acima. Você também pode ver uma lista dos operadores de filtragem ao adicionar um espaço em branco após o atributo de metadados.

    nota

    Você deve colocar as strings entre aspas.

    Por exemplo, você pode filtrar resultados dos documentos de origem que contenham um atributo de metadados genre cujo valor é "entertainment" adicionando o seguinte filtro: genre = "entertainment".

    Adicione um filtro.
  • Para adicionar outro filtro, insira outra expressão de filtragem na caixa e pressione Enter. Você pode adicionar até cinco filtros no grupo.

    Adicione um filtro.
  • Por padrão, a consulta retorna resultados que atendam a todas as expressões de filtragem fornecidas por você. Para retornar resultados que atendam a pelo menos uma das expressões de filtragem, escolha o menu suspenso e entre duas operações de filtragem e selecione ou.

    Altere a operação lógica entre filtros.
  • Para combinar operadores lógicos diferentes, selecione + Adicionar grupo para adicionar um grupo de filtros. Insira expressões de filtragem no novo grupo. Você pode adicionar até 5 grupos de filtros.

    Adicione um grupo de filtros para combinar operadores lógicos diferentes.
  • Para alterar o operador lógico usado entre todos os grupos de filtragem, escolha o menu suspenso E entre dois grupos de filtros e selecione OU.

    Altere a operação lógica entre grupos de filtros.
  • Para editar um filtro, selecione-o, modifique a operação de filtragem e escolha Aplicar.

    Edite um filtro.
  • Para remover um grupo de filtros, escolha o ícone de lixeira ( Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family. ) ao lado do grupo. Para remover um filtro, escolha o ícone de exclusão ( Close or cancel icon represented by an "X" symbol. ) ao lado do filtro.

    Exclua um filtro ou um grupo de filtros.

A imagem a seguir mostra um exemplo de configuração do filtro que mostra todos os documentos gravados depois de 2018 cujo gênero é "entertainment", além de documentos cujo gênero é "cooking" ou "sports" cujo autor começa com "C".

Configuração do filtro de exemplo.
API

Ao fazer uma solicitação Retrieve ou RetrieveAndGenerate, inclua um campo retrievalConfiguration, associado a um objeto KnowledgeBaseRetrievalConfiguration. Para ver a localização desse campo, consulte os corpos de solicitação Retrieve e RetrieveAndGenerate na referência de API.

O seguinte objeto JSON mostra os campos mínimos necessários no objeto KnowledgeBaseRetrievalConfiguration para definir filtros para casos de uso diferentes:

  1. Use um operador de filtragem (consulte a tabela Operadores de filtragem acima).

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } } } }
  2. Use um operador lógico (consulte a tabela Operadores lógicos acima) para combinar até cinco.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] } } }
  3. Use um operador lógico para combinar até cinco operadores de filtragem em um grupo de filtros e um segundo operador lógico para combinar esse grupo de filtros com outro operador de filtragem.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } ] } } }
  4. Combine até cinco grupos de filtros incorporando-os em outro operador lógico. Você pode criar um nível de incorporação.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] ] } } }

A seguinte tabela descreve os tipos de filtro que você pode usar:

Campo Tipos de dados de valor compatíveis Resultados filtrados
equals string, número, booliano O atributo corresponde ao valor fornecido por você
notEquals string, número, booliano O atributo não corresponde ao valor fornecido por você
greaterThan número O atributo é maior que o valor fornecido por você
greaterThanOrEquals número O atributo é maior que ou igual ao valor fornecido por você
lessThan número O atributo é menor que o valor fornecido por você
lessThanOrEquals número O atributo é menor que ou igual ao valor fornecido por você
in lista de strings O atributo está na lista fornecida por você
notIn lista de strings O atributo não está na lista fornecida por você
startsWith string O atributo começa pela string fornecida por você (só é compatível com os armazenamentos de vetores do Amazon OpenSearch Sem Servidor)

Para combinar tipos de filtro, você pode usar um dos seguintes operadores lógicos:

Campo Está associado a Resultados filtrados
andAll Lista de até cinco tipos de filtro Os resultados atendem a todas as expressões de filtragem no grupo
orAll Lista de até cinco tipos de filtro Os resultados atendem a pelo menos uma das expressões de filtragem no grupo

Para obter exemplos, consulte Send a query and include filters (Retrieve) e Send a query and include filters (RetrieveAndGenerate).

A base de conhecimento do Amazon Bedrock gera e aplica um filtro de recuperação com base na consulta do usuário e em um esquema de metadados.

nota

No momento, o recurso só funciona com o Claude 3.5 Sonnet da Anthropic.

A implicitFilterConfiguration é especificada na vectorSearchConfiguration no corpo da solicitação Retrieve. Inclui os seguintes campos:

  • metadataAttributes: nessa matriz, forneça esquemas que descrevam os atributos de metadados para os quais o modelo gerará um filtro.

  • modelArn: o ARN do modelo a ser usado.

Veja a seguir um exemplo de esquemas de metadados que você pode adicionar à matriz metadataAttributes.

[ { "key": "company", "type": "STRING", "description": "The full name of the company. E.g. `Amazon.com, Inc.`, `Alphabet Inc.`, etc" }, { "key": "ticker", "type": "STRING", "description": "The ticker name of a company in the stock market, e.g. AMZN, AAPL" }, { "key": "pe_ratio", "type": "NUMBER", "description": "The price to earning ratio of the company. This is a measure of valuation of a company. The lower the pe ratio, the company stock is considered chearper." }, { "key": "is_us_company", "type": "BOOLEAN", "description": "Indicates whether the company is a US company." }, { "key": "tags", "type": "STRING_LIST", "description": "Tags of the company, indicating its main business. E.g. `E-commerce`, `Search engine`, `Artificial intelligence`, `Cloud computing`, etc" } ]

Você pode implementar barreiras para a base de conhecimento nos casos de uso e políticas de IA responsável. Você pode criar várias barreiras de proteção personalizadas para diferentes casos de uso e aplicá-las em várias condições de solicitação e resposta, proporcionando uma experiência do usuário consistente e padronizando controles de segurança em toda a base de conhecimento. Você pode configurar tópicos negados para evitar tópicos indesejáveis e filtros de conteúdo para bloquear conteúdo prejudicial em entradas e respostas do modelo. Para obter mais informações, consulte Detectar e filtrar conteúdo nocivo usando as Barreiras de Proteção do Amazon Bedrock.

nota

Não é possível usar barreiras de proteção com base contextual para bases de conhecimento no Claude 3 Sonnet e no Haiku.

Para obter diretrizes gerais de engenharia de prompts, consulte Conceitos de engenharia de prompts.

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

Console

Siga as etapas do console em Consultar uma base de conhecimento e recuperar dados ou Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados. Na janela de teste, ative Gerar respostas. Em seguida, no painel Configurações, expanda a seção Barreiras de proteção.

  1. Na seção Barreiras de proteção, escolha o Nome e a Versão da barreira de proteção. Se você quiser ver os detalhes da barreira de proteção e da versão escolhidas, escolha Exibir.

    Você também pode criar uma nova escolhendo o link Barreira de proteção.

  2. Quando terminar de editar, escolha Save changes (Salvar alterações). Para sair sem salvar, escolha Descartar alterações.

API

Ao fazer uma solicitação RetrieveAndGenerate, inclua o campo guardrailConfiguration em generationConfiguration para usar a barreira de proteção com a solicitação. Para ver a localização desse campo, consulte o corpo da solicitação RetrieveAndGenerate na referência de API.

O seguinte objeto JSON mostra os campos mínimos necessários no objeto GenerationConfiguration para definir guardrailConfiguration:

"generationConfiguration": { "guardrailConfiguration": { "guardrailId": "string", "guardrailVersion": "string" } }

Especifique guardrailId e guardrailVersion das barreiras de proteção escolhidas.

Você pode usar um modelo reclassificador para reclassificar os resultados da consulta à base de conhecimento. Siga as etapas do console em Consultar uma base de conhecimento e recuperar dados ou Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados. Ao abrir o painel Configurações, expanda a seção Reclassificação. Selecione um modelo reclassificador, atualize as permissões, se necessário, e modifique as opções adicionais. Insira um prompt e selecione Executar para testar os resultados após a reclassificação.

Decomposição da consulta é uma técnica usada para dividir consultas complexas em subconsultas menores, mais gerenciáveis. Essa abordagem pode ajudar a recuperar informações mais precisas e relevantes, especialmente quando a consulta inicial é multifacetada ou muito abrangente. A habilitação dessa opção pode acarretar a execução de várias consultas na Base de Conhecimento, o que pode ajudar em uma resposta final mais precisa.

Por exemplo, para uma pergunta como “Quem fez mais gols na Copa do Mundo FIFA de 2022, Argentina ou França?”, as bases de conhecimento do Amazon Bedrock podem primeiro gerar as seguintes subconsultas, antes de gerar uma resposta final:

  1. Quantos gols a Argentina fez na final da Copa do Mundo FIFA de?

  2. Quantos gols a França fez na final da Copa do Mundo FIFA de?

Console
  1. Crie e sincronize uma fonte de dados ou use uma base de conhecimento existente.

  2. Vá até a janela de teste e abra o painel de configuração.

  3. Habilite a decomposição de consultas.

API
POST /retrieveAndGenerate HTTP/1.1 Content-type: application/json { "input": { "text": "string" }, "retrieveAndGenerateConfiguration": { "knowledgeBaseConfiguration": { "orchestrationConfiguration": { // Query decomposition "queryTransformationConfiguration": { "type": "string" // enum of QUERY_DECOMPOSITION } }, ...} }

Ao gerar respostas com base na recuperação das informações, você pode usar parâmetros de inferência para ter maior controle sobre o comportamento do modelo durante a inferência e influenciar as saídas do modelo.

Para saber como modificar os parâmetros de inferência, escolha a guia correspondente ao método de sua preferência e siga as etapas:

Console

Para modificar os parâmetros de inferência ao consultar uma base de conhecimento: siga as etapas do console em Consultar uma base de conhecimento e recuperar dados ou Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados. Ao abrir o painel Configurações, você verá uma seção Parâmetros de inferência. Modifique os parâmetros conforme necessário.

Para modificar os parâmetros de inferência ao conversar com o documento: siga as etapas em Conversar com seu documento sem uma base de conhecimento configurada. No painel Configurações, expanda a seção Parâmetros de inferência e modifique os parâmetros conforme necessário.

API

Você fornece os parâmetros de modelo na chamada para a API RetrieveAndGenerate. Você pode personalizar o modelo fornecendo parâmetros de inferência no campo inferenceConfig de knowledgeBaseConfiguration (se você consultar uma base de conhecimento) ou de externalSourcesConfiguration (se você conversar com seu documento).

Dentro do campo inferenceConfig, há um campo textInferenceConfig que contém os seguintes parâmetros:

  • temperature

  • topP

  • maxTokenCount

  • stopSequences

Você pode personalizar o modelo usando os seguintes parâmetros no campo inferenceConfig de externalSourcesConfiguration e knowledgeBaseConfiguration:

  • temperature

  • topP

  • maxTokenCount

  • stopSequences

Para obter uma explicação detalhada da função de cada um desses parâmetros, consulte Geração de resposta de influência com parâmetros de inferência.

Além disso, você pode fornecer parâmetros personalizados não compatíveis com textInferenceConfig por meio do mapa additionalModelRequestFields. Você pode fornecer parâmetros exclusivos para modelos específicos com esse argumento. Para os parâmetros exclusivos, consulte Parâmetros de solicitação de inferência e campos de resposta para modelos de base.

Se um parâmetro for omitido de textInferenceConfig, um valor padrão será usado. Todos os parâmetros não reconhecidos em textInferneceConfig serão ignorados, ao passo que todos os parâmetros não reconhecidos em AdditionalModelRequestFields causarão uma exceção.

Uma exceção de validação será lançada se houver o mesmo parâmetro em additionalModelRequestFields e TextInferenceConfig.

Uso dos parâmetros de modelo em RetrieveAndGenerate

Este é um exemplo da estrutura para inferenceConfig e additionalModelRequestFields em generationConfiguration no corpo da solicitação RetrieveAndGenerate:

"inferenceConfig": { "textInferenceConfig": { "temperature": 0.5, "topP": 0.5, "maxTokens": 2048, "stopSequences": ["\nObservation"] } }, "additionalModelRequestFields": { "top_k": 50 }

O exemplo a seguir vai definir uma temperature de 0,5, top_p de 0,5, maxTokens de 2048, interromper a geração se encontrar a string “\nObservation” na resposta gerada e passa um valor top_k personalizado de 50.

Quando você consulta uma base de conhecimento e solicita a geração de resposta, o Amazon Bedrock usa um modelo de prompt que combina instruções e contexto com a consulta do usuário para criar o prompt de geração enviado ao modelo para geração de respostas. É possível personalizar o prompt de orquestração, que transforma o prompt do usuário em uma consulta de pesquisa. Você pode projetar os modelos de prompt com as seguintes ferramentas:

  • Espaços reservados de prompt: variáveis predefinidas nas bases de conhecimento do Amazon Bedrock preenchidas dinamicamente em tempo de execução durante a consulta à base de conhecimento. No prompt do sistema, você verá esses espaços reservados entre o símbolo $. A seguinte lista descreve os espaços reservados que você pode usar:

    nota

    O espaço reservado $output_format_instructions$ é um campo obrigatório para que as citações sejam exibidas na resposta.

    Variável Modelo de prompt Substituído por Modelo Obrigatório?
    $query$ Orquestração, geração A consulta do usuário enviada para a base de conhecimento. Claude Instant da Anthropic, Claude v2.x da Anthropic Sim
    Anthropic Claude 3 Sonnet Não (incluído automaticamente na entrada do modelo)
    $search_results$ Geração Os resultados recuperados para a consulta do usuário. Todos Sim
    $output_format_instructions$ Orquestração Instruções subjacentes para formatação da geração de respostas e citações. Difere de modelo para modelo. Se você definir suas próprias instruções de formatação, sugerimos que remova esse espaço reservado. Sem esse espaço reservado, a resposta não conterá citações. Todos Sim
    $current_time$ Orquestração, geração A hora atual. Todos Não
  • Tags XML: os modelos da Anthropic são compatíveis com o uso de tags XML para estruturar e delinear os prompts. Use nomes de tags descritivos para obter os resultados ideais. Por exemplo, no prompt do sistema padrão, você verá a tag <database> usada para delinear um banco de dados de perguntas feitas anteriormente. Para ter mais informações, consulte Use XML tags, no Guia do usuário da Anthropic.

Para obter diretrizes gerais de engenharia de prompts, consulte Conceitos de engenharia de prompts.

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

Console

Siga as etapas do console em Consultar uma base de conhecimento e recuperar dados ou Consultar uma base de conhecimento e gerar respostas com base nos dados recuperados. Na janela de teste, ative Gerar respostas. Em seguida, no painel Configurações, expanda a seção Modelo de prompt da base de conhecimento.

  1. Escolha Editar.

  2. Edite o prompt do sistema no editor de texto, inclusive espaços reservados para o prompt e tags XML, conforme necessário. Para reverter para o modelo de prompt padrão, escolha Definir como padrão.

  3. Quando terminar de editar, escolha Save changes (Salvar alterações). Para sair sem salvar o prompt do sistema, escolha Descartar alterações.

API

Ao fazer uma solicitação RetrieveAndGenerate, inclua um campo generationConfiguration associado a um objeto GenerationConfiguration. Para ver a localização desse campo, consulte o corpo da solicitação RetrieveAndGenerate na referência de API.

O seguinte objeto JSON mostra os campos mínimos necessários no objeto GenerationConfiguration para definir o número máximo de resultados recuperados a serem retornados:

"generationConfiguration": { "promptTemplate": { "textPromptTemplate": "string" } }

Insira o modelo de prompt personalizado no campo textPromptTemplate, inclusive espaços reservados de prompt e tags XML, conforme necessário. Para obter o número máximo de caracteres permitidos no prompt do sistema, consulte o campo textPromptTemplate em GenerationConfiguration.