Configurações de consulta - 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á.

Configurações de consulta

Você pode modificar as configurações ao consultar a base de conhecimento para personalizar a recuperação e a geração de respostas. Para saber mais sobre uma configuração e como modificá-la no console ou na API, selecione um dos tópicos a seguir.

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

  • Padrão — O Amazon Bedrock decide a estratégia de busca para você.

  • Híbrido — Combina incorporações vetoriais de pesquisa (pesquisa semântica) com a pesquisa no texto bruto. Atualmente, a pesquisa híbrida só é compatível com lojas de vetores Amazon OpenSearch Serverless que contêm um campo de texto filtrável. Se você usa um armazenamento vetorial diferente ou se o seu armazenamento vetorial Amazon OpenSearch Serverless não contém um campo de texto filtrável, a consulta usa a pesquisa semântica.

  • Semântica — Pesquisa somente incorporações vetoriais.

Para saber como definir o tipo de pesquisa, selecione a guia correspondente ao método de sua escolha e siga as etapas.

Console

Siga as etapas do console emConsulte a base de conhecimento e retorne resultados ou gere respostas. Ao abrir o painel Configurações, você verá as seguintes opções para o tipo de pesquisa:

  • Padrão — O Amazon Bedrock decide qual estratégia de pesquisa é mais adequada para sua configuração de armazenamento de vetores.

  • Híbrido — O Amazon Bedrock consulta a base de conhecimento usando as incorporações vetoriais e o texto bruto. Essa opção só está disponível se você estiver usando um armazenamento vetorial Amazon OpenSearch Serverless configurado com um campo de texto filtrável.

  • Semântica — O Amazon Bedrock consulta a base de conhecimento usando suas incorporações vetoriais.

API

Ao fazer uma RetrieveAndGeneratesolicitação Retrieveor, inclua um retrievalConfiguration campo mapeado para um KnowledgeBaseRetrievalConfigurationobjeto. Para ver a localização desse campo, consulte os corpos de RetrieveAndGeneratesolicitação Retrievee na referência da API.

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

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

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

  • Se você não especificar um valor, o Amazon Bedrock decide qual estratégia de pesquisa é mais adequada para sua configuração de armazenamento de vetores.

  • HÍBRIDO — O Amazon Bedrock consulta a base de conhecimento usando as incorporações vetoriais e o texto bruto. Essa opção só está disponível se você estiver usando um armazenamento vetorial Amazon OpenSearch Serverless configurado com um campo de texto filtrável.

  • SEMÂNTICO — O Amazon Bedrock consulta a base de conhecimento usando suas incorporações vetoriais.

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

Por exemplo, para uma pergunta como “Quem marcou mais 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 marcou na final da Copa do Mundo FIFA de 2022?

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

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. Ative a reformulação da consulta.

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 de informações, você pode usar parâmetros de inferência para obter mais 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, selecione a guia correspondente ao seu método de escolha 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. Consulte a base de conhecimento e retorne resultados ou gere respostas Ao abrir o painel Configurações, você verá uma seção de parâmetros de inferência. Modifique os parâmetros conforme necessário.

Para modificar os parâmetros de inferência ao conversar com seu documento, siga as etapas emConverse com os dados do seu documento usando a base de conhecimento. 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 do modelo na chamada para a RetrieveAndGenerateAPI. Você pode personalizar o modelo fornecendo parâmetros de inferência no inferenceConfig campo do knowledgeBaseConfiguration (se você consultar uma base de conhecimento) ou do externalSourcesConfiguration (se você conversar com seu documento).

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

  • temperatura

  • topP

  • maxTokenCount

  • Sequências de parada

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

  • temperatura

  • topP

  • maxTokenCount

  • Sequências de parada

Para obter uma explicação detalhada da função de cada um desses parâmetros, consulteParâmetros de inferência.

Além disso, você pode fornecer parâmetros personalizados não suportados textInferenceConfig pelo additionalModelRequestFields mapa. Você pode fornecer parâmetros exclusivos para modelos específicos com esse argumento. Para os parâmetros exclusivos, consulteParâmetros de inferência para modelos de base.

Se um parâmetro for omitidotextInferenceConfig, um valor padrão será usado. Quaisquer parâmetros não reconhecidos em textInferneceConfig serão ignorados, enquanto quaisquer parâmetros não reconhecidos em AdditionalModelRequestFields causarão uma exceção.

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

Usando parâmetros do modelo em RetrieveAndGenerate

Veja a seguir um exemplo da estrutura para inferenceConfig e additionalModelRequestFields abaixo do generationConfiguration no corpo da RetrieveAndGenerate solicitação:

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

O exemplo a seguir define 0,5, 0,5, top_p maxTokens de 2048, interrompe a geração se encontrar a string "\nObservação” na resposta gerada e passa um valor personalizado de 50. temperature top_k

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. Para modificar o número máximo de resultados a serem retornados, selecione a guia correspondente ao seu método de escolha e siga as etapas.

Console

Siga as etapas do console emConsulte a base de conhecimento e retorne resultados ou gere respostas. No painel Configurações, expanda o Número máximo de resultados recuperados.

API

Ao fazer uma RetrieveAndGeneratesolicitação Retrieveor, inclua um retrievalConfiguration campo mapeado para um KnowledgeBaseRetrievalConfigurationobjeto. Para ver a localização desse campo, consulte os corpos de RetrieveAndGeneratesolicitação Retrievee na referência da API.

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

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

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

Suas fontes de dados podem incluir atributos/campos de metadados do documento para filtrar, como “last_updated” ou o número de dias desde a última atualização de um documento a partir da data atual. Para usar filtros ao consultar uma base de conhecimento, verifique se sua 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 seus documentos. Se estiver usando um bucket do Amazon S3 como fonte de dados, o bucket deve incluir pelo menos um .metadata.json arquivo com o mesmo nome do documento de origem ao qual está associado.

  • Se o índice vetorial da sua base de conhecimento estiver em um armazenamento vetorial Amazon OpenSearch Serverless, verifique se o índice vetorial está configurado com o faiss mecanismo. Se o índice vetorial estiver configurado com o nmslib mecanismo, você precisará fazer o seguinte:

Você pode usar os seguintes operadores de filtragem para filtrar os resultados durante a consulta:

Operadores de filtragem
Operador Console Nome do filtro de API Tipos de dados de atributos compatíveis Resultados filtrados
Igual = equals string, número, booleano O atributo corresponde ao valor que você fornece
Não é igual != Não é igual string, número, booleano O atributo não corresponde ao valor que você fornece
Maior que > Maior que número O atributo é maior do que o valor que você fornece
Maior que ou igual >= greaterThanOrIgual número O atributo é maior ou igual ao valor que você fornece
Menor que < Menos de número O atributo é menor que o valor que você fornece
Menor ou igual <= lessThanOrIgual número O atributo é menor ou igual ao valor que você fornece
Em : em lista de cordas O atributo está na lista que você fornece
Não está em !: Não em lista de cordas O atributo não está na lista que você fornece
Inicia com ^ Começa com string O atributo começa com a string que você fornece (compatível somente com lojas de vetores Amazon OpenSearch Serverless)

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

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

Para saber como filtrar resultados usando metadados, selecione a guia correspondente ao seu método de escolha e siga as etapas.

Console

Siga as etapas do console emConsulte a base de conhecimento e retorne resultados ou gere respostas. Ao abrir o painel Configurações, você verá a seção Filtros. Os procedimentos a seguir descrevem diferentes casos de uso:

  • 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 de operadores de filtragem ao adicionar um espaço em branco após o atributo de metadados.

    nota

    Você deve colocar as cadeias de caracteres entre aspas.

    Por exemplo, você pode filtrar os resultados dos documentos de origem que contêm um atributo de genre metadados 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é 5 filtros no grupo.

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

    Altere a operação lógica entre os 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 diferentes operadores lógicos.
  • Para alterar o operador lógico usado entre todos os grupos de filtragem, escolha o menu suspenso AND entre quaisquer dois grupos de filtros e selecione OR.

    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 da lixeira ( ) ao lado do grupo. Para remover um filtro, escolha o ícone de exclusão ( ) ao lado do filtro.

    Exclua um filtro ou grupo de filtros.

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

Exemplo de configuração de filtro.
API

Ao fazer uma RetrieveAndGeneratesolicitação Retrieveor, inclua um retrievalConfiguration campo mapeado para um KnowledgeBaseRetrievalConfigurationobjeto. Para ver a localização desse campo, consulte os corpos de RetrieveAndGeneratesolicitação Retrievee na referência da API.

Os objetos JSON a seguir mostram os campos mínimos necessários no KnowledgeBaseRetrievalConfigurationobjeto para definir filtros para diferentes casos de uso:

  1. Use um operador de filtragem (consulte a tabela de 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é 5.

    "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é 5 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é 5 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 tabela a seguir descreve os tipos de filtro que você pode usar:

Campo Tipos de dados de valor compatíveis Resultados filtrados
equals string, número, booleano O atributo corresponde ao valor que você fornece
notEquals string, número, booleano O atributo não corresponde ao valor que você fornece
greaterThan número O atributo é maior do que o valor que você fornece
greaterThanOrEquals número O atributo é maior ou igual ao valor que você fornece
lessThan número O atributo é menor que o valor que você fornece
lessThanOrEquals número O atributo é menor ou igual ao valor que você fornece
in lista de cordas O atributo está na lista que você fornece
notIn lista de cordas O atributo não está na lista que você fornece
startsWith string O atributo começa com a string que você fornece (compatível somente com lojas de vetores Amazon OpenSearch Serverless)

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

Campo Mapas para Resultados filtrados
andAll Lista de até 5 tipos de filtro Os resultados atendem a todas as expressões de filtragem do grupo
orAll Lista de até 5 tipos de filtro Os resultados atendem a pelo menos uma das expressões de filtragem no grupo

Para ver exemplos, consulte Enviar uma consulta e incluir filtros (Recuperar) e Enviar uma consulta e incluir filtros (RetrieveAndGenerate).

Quando você consulta uma base de conhecimento e solicita a geração de respostas, o Amazon Bedrock usa um modelo de solicitação que combina instruções e contexto com a consulta do usuário para criar a solicitação que é enviada ao modelo para geração de resposta. Você pode criar o modelo de prompt com as seguintes ferramentas:

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

    Variável Substituído por Modelo Obrigatório?
    $consulta$ A consulta do usuário enviada para a base de conhecimento. AnthropicClaude Instant, Anthropic Claude v2.x Sim
    Anthropic Claude 3 Sonnet Não (incluído automaticamente na entrada do modelo)
    $resultados_da pesquisa$ Os resultados recuperados para a consulta do usuário. Todos Sim
    $instruções_formato_de_saída$ Instruções subjacentes para formatar a geração de respostas e as citações. Difere de acordo com o 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 Não
    $ hora_atual$ A hora atual. Todos Não
  • Tags XML — Anthropic os modelos oferecem suporte ao uso de tags XML para estruturar e delinear seus prompts. Use nomes de tags descritivos para obter os melhores resultados. Por exemplo, no prompt padrão do sistema, você verá a <database> tag usada para delinear um banco de dados de perguntas feitas anteriormente). Para obter mais informações, consulte Usar marcas XML no guia Anthropic do usuário.

Para obter diretrizes gerais de engenharia imediata, consulte Diretrizes da engenharia de prompts.

Selecione a guia correspondente ao seu método de escolha e siga as etapas.

Console

Siga as etapas do console emConsulte a base de conhecimento e retorne resultados ou gere respostas. 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. Selecione a opção Editar.

  2. Edite o prompt do sistema no editor de texto, incluindo espaços reservados para o prompt e tags XML, conforme necessário. Para reverter para o modelo de prompt padrão, escolha Redefinir para o 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 RetrieveAndGeneratesolicitação, inclua um generationConfiguration campo mapeado para um GenerationConfigurationobjeto. Para ver a localização desse campo, consulte o corpo da RetrieveAndGeneratesolicitação na referência da API.

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

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

Insira seu modelo de solicitação personalizado no textPromptTemplate campo, incluindo espaços reservados para solicitações e tags XML, conforme necessário. Para obter o número máximo de caracteres permitido no prompt do sistema, consulte o textPromptTemplate campo em GenerationConfiguration.

Você pode implementar proteções em sua base de conhecimento para seus casos de uso e políticas responsáveis de IA. Você pode criar várias proteções personalizadas para diferentes casos de uso e aplicá-las em várias condições de solicitação e resposta, fornecendo uma experiência de usuário consistente e padronizando os controles de segurança em toda a sua base de conhecimento. Você pode configurar tópicos negados para impedir tópicos indesejáveis e filtros de conteúdo para bloquear conteúdo prejudicial nas entradas e respostas do modelo. Para ter mais informações, consulte Guardrails para Amazon Bedrock.

nota

Atualmente, o uso de grades de proteção com base contextual para bases de conhecimento não é suportado no Claude 3 Sonnet e no Haiku.

Para obter diretrizes gerais de engenharia imediata, consulte Diretrizes da engenharia de prompts.

Selecione a guia correspondente ao seu método de escolha e siga as etapas.

Console

Siga as etapas do console emConsulte a base de conhecimento e retorne resultados ou gere respostas. Na janela de teste, ative Gerar respostas. Em seguida, no painel Configurações, expanda a seção Guardrails.

  1. Na seção Guardrails, escolha o nome e a versão do seu guardrail. Se você quiser ver os detalhes da grade de proteção e da versão escolhidas, escolha Exibir.

    Como alternativa, você pode criar um novo escolhendo o link Guardrail.

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

API

Ao fazer uma RetrieveAndGeneratesolicitação, inclua o guardrailsConfiguration campo no campo generationConfiguration para usar sua grade de proteção com a solicitação. Para ver a localização desse campo, consulte o corpo da RetrieveAndGeneratesolicitação na referência da API.

O objeto JSON a seguir mostra os campos mínimos necessários no GenerationConfigurationpara definir oguardrailsConfiguration:

"generationConfiguration": { "guardrailsConfiguration": { "guardrailsId": "string", "guardrailsVersion": "string" } }

Especifique a guardrailsId extremidade guardrailsVersion das grades de proteção escolhidas.