Configuraciones de consulta - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuraciones de consulta

Puede modificar las configuraciones al consultar la base de conocimientos para personalizar la recuperación y la generación de respuestas. Para obtener más información sobre una configuración y cómo modificarla en la consola o la API, seleccione uno de los siguientes temas.

El tipo de búsqueda define cómo se consultan las fuentes de datos de la base de conocimientos. Son posibles los siguientes tipos de búsqueda:

  • Predeterminado: Amazon Bedrock decide la estrategia de búsqueda por ti.

  • Híbrido: combina la búsqueda de incrustaciones vectoriales (búsqueda semántica) con la búsqueda en el texto sin procesar. Actualmente, la búsqueda híbrida solo se admite en los almacenes vectoriales de Amazon OpenSearch Serverless que contienen un campo de texto filtrable. Si usa un almacén de vectores diferente o su almacén de vectores de Amazon OpenSearch Serverless no contiene un campo de texto filtrable, la consulta utiliza la búsqueda semántica.

  • Semántica: solo busca incrustaciones vectoriales.

Para aprender a definir el tipo de búsqueda, selecciona la pestaña correspondiente al método que prefieras y sigue los pasos.

Console

Siga los pasos de la consola que se indican enConsulte la base de conocimientos y devuelva resultados o genere respuestas. Al abrir el panel de configuraciones, verás las siguientes opciones para el tipo de búsqueda:

  • Predeterminado: Amazon Bedrock decide qué estrategia de búsqueda es la más adecuada para la configuración de tu tienda vectorial.

  • Híbrido: Amazon Bedrock consulta la base de conocimientos utilizando tanto las incrustaciones vectoriales como el texto sin procesar. Esta opción solo está disponible si utiliza un almacén vectorial de Amazon OpenSearch Serverless configurado con un campo de texto filtrable.

  • Semántica: Amazon Bedrock consulta la base de conocimientos mediante sus incrustaciones vectoriales.

API

Cuando realice una RetrieveAndGeneratesolicitud Retrieveo solicitud, incluya un retrievalConfiguration campo asignado a un objeto. KnowledgeBaseRetrievalConfiguration Para ver la ubicación de este campo, consulta los organismos de RetrieveAndGeneratesolicitud Retrievey los de la API que aparecen en la referencia de la API.

El siguiente objeto JSON muestra los campos mínimos necesarios en el KnowledgeBaseRetrievalConfigurationobjeto para establecer las configuraciones de los tipos de búsqueda:

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

Especifique el tipo de búsqueda en el overrideSearchType campo. Dispone de las opciones siguientes:

  • Si no especificas un valor, Amazon Bedrock decide qué estrategia de búsqueda es la más adecuada para la configuración de tu almacén vectorial.

  • HÍBRIDO: Amazon Bedrock consulta la base de conocimientos utilizando tanto las incrustaciones vectoriales como el texto sin procesar. Esta opción solo está disponible si utiliza un almacén vectorial de Amazon OpenSearch Serverless configurado con un campo de texto filtrable.

  • SEMÁNTICA: Amazon Bedrock consulta la base de conocimientos mediante sus incrustaciones vectoriales.

La descomposición de consultas es una técnica que se utiliza para dividir consultas complejas en subconsultas más pequeñas y fáciles de gestionar. Este enfoque puede ayudar a recuperar información más precisa y relevante, especialmente cuando la consulta inicial es multifacética o demasiado amplia. Si se activa esta opción, es posible que se ejecuten varias consultas en la base de conocimientos, lo que puede ayudar a obtener una respuesta final más precisa.

Por ejemplo, para una pregunta como «¿Quién obtuvo un puntaje más alto en la Copa Mundial de la FIFA 2022, Argentina o Francia?» , las bases de conocimiento de Amazon Bedrock pueden generar primero las siguientes subconsultas antes de generar una respuesta final:

  1. ¿Cuántos goles marcó Argentina en la final de la Copa Mundial de la FIFA 2022?

  2. ¿Cuántos goles marcó Francia en la final de la Copa Mundial de la FIFA 2022?

Console
  1. Cree y sincronice una fuente de datos o utilice una base de conocimientos existente.

  2. Ve a la ventana de prueba y abre el panel de configuración.

  3. Habilite la reformulación 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 } }, ...} }

Al generar respuestas basadas en la recuperación de información, puede utilizar los parámetros de inferencia para tener un mayor control sobre el comportamiento del modelo durante la inferencia e influir en los resultados del modelo. Para aprender a modificar los parámetros de inferencia, seleccione la pestaña correspondiente al método que prefiera y siga los pasos.

Console

Para modificar los parámetros de inferencia al consultar una base de conocimientos, siga los pasos de la consola que se indican en. Consulte la base de conocimientos y devuelva resultados o genere respuestas Al abrir el panel de configuraciones, verá una sección de parámetros de inferencia. Modifique los parámetros según sea necesario.

Para modificar los parámetros de inferencia al chatear con el documento, siga los pasos que se indican enChatea con los datos de tus documentos mediante la base de conocimientos. En el panel Configuraciones, expanda la sección Parámetros de inferencia y modifique los parámetros según sea necesario.

API

Los parámetros del modelo se proporcionan en la llamada a la RetrieveAndGenerateAPI. Puede personalizar el modelo proporcionando parámetros de inferencia en el inferenceConfig campo knowledgeBaseConfiguration (si consulta una base de conocimientos) o en el externalSourcesConfiguration (si conversa con su documento).

Dentro del inferenceConfig campo hay un textInferenceConfig campo que contiene los siguientes parámetros que puede:

  • temperature

  • topP

  • maxTokenCount

  • Detener secuencias

Puede personalizar el modelo utilizando los siguientes parámetros en el inferenceConfig campo de ambos externalSourcesConfiguration yknowledgeBaseConfiguration:

  • temperature

  • topP

  • maxTokenCount

  • Detenga las secuencias

Para obtener una explicación detallada de la función de cada uno de estos parámetros, consulteParámetros de inferencia.

Además, puede proporcionar parámetros personalizados que no sean compatibles textInferenceConfig con el additionalModelRequestFields mapa. Puede proporcionar parámetros exclusivos para modelos específicos con este argumento; para ver los parámetros únicos, consulteParámetros de inferencia para modelos fundacionales.

Si se omite un parámetrotextInferenceConfig, se utilizará un valor predeterminado. Se textInferneceConfig ignorará cualquier parámetro que no se reconozca en, mientras que cualquier parámetro que no se reconozca en AdditionalModelRequestFields provocará una excepción.

Se generará una excepción de validación si hay el mismo parámetro en ambos additionalModelRequestFieldsTextInferenceConfig.

Uso de los parámetros del modelo en RetrieveAndGenerate

A continuación se muestra un ejemplo de la estructura del cuerpo de la generationConfiguration RetrieveAndGenerate solicitud inferenceConfig y additionalModelRequestFields debajo de él:

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

El ejemplo siguiente establece a temperature en 0,5, top_p 0,5 y 2048, maxTokens detiene la generación si encuentra la cadena "\nObservation» en la respuesta generada y pasa un top_k valor personalizado de 50.

Cuando consulta una base de conocimientos, Amazon Bedrock devuelve hasta cinco resultados en la respuesta de forma predeterminada. Cada resultado corresponde a un fragmento de origen. Para modificar el número máximo de resultados que se van a devolver, selecciona la pestaña correspondiente al método que prefieras y sigue los pasos.

Console

Siga los pasos de la consola que se indican enConsulte la base de conocimientos y devuelva resultados o genere respuestas. En el panel de configuraciones, amplíe el número máximo de resultados recuperados.

API

Cuando realice una RetrieveAndGeneratesolicitud Retrieveo solicitud, incluya un retrievalConfiguration campo asignado a un KnowledgeBaseRetrievalConfigurationobjeto. Para ver la ubicación de este campo, consulta los organismos de RetrieveAndGeneratesolicitud Retrievey los de la API que aparecen en la referencia de la API.

El siguiente objeto JSON muestra los campos mínimos necesarios en el KnowledgeBaseRetrievalConfigurationobjeto para establecer el número máximo de resultados que se van a devolver:

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

Especifique el número máximo de resultados recuperados (consulte el numberOfResults campo KnowledgeBaseRetrievalConfigurationpara ver el rango de valores aceptados) que se devolverán en el numberOfResults campo.

Las fuentes de datos pueden incluir campos o atributos de metadatos de documentos para filtrar, como «last_updated» o el número de días transcurridos desde la última actualización de un documento a partir de la fecha actual. Para usar filtros al consultar una base de conocimientos, compruebe que la base de conocimientos cumpla los siguientes requisitos:

  • Al configurar el conector de la fuente de datos, la mayoría de los conectores rastrean los principales campos de metadatos de los documentos. Si utiliza un bucket de Amazon S3 como fuente de datos, el bucket debe incluir al menos un .metadata.json archivo con el mismo nombre que el documento fuente al que está asociado.

  • Si el índice vectorial de su base de conocimientos se encuentra en un almacén vectorial de Amazon OpenSearch Serverless, compruebe que el índice vectorial esté configurado con el faiss motor. Si el índice vectorial está configurado con el nmslib motor, deberá realizar una de las siguientes acciones:

Puede utilizar los siguientes operadores de filtrado para filtrar los resultados al realizar consultas:

Operadores de filtrado
Operador Consola Nombre del filtro de API Tipos de datos de atributos compatibles Resultados filtrados
Igual a = equals cadena, número, booleano El atributo coincide con el valor que usted proporciona
No es igual != No es igual cadena, número, booleano El atributo no coincide con el valor que has proporcionado
Mayor que > Mayor que number El atributo es mayor que el valor que usted proporciona
Mayor o igual a >= greaterThanOrIgual number El atributo es mayor o igual al valor que usted proporciona
Menor que < Menor que number El atributo es menor que el valor que usted proporciona
Menor o igual a <= lessThanOrIgual number El atributo es menor o igual al valor que usted proporciona
En : en lista de cadenas El atributo está en la lista que usted proporciona
No está !: No en lista de cadenas El atributo no está en la lista que has proporcionado
Empieza por ^ Empieza con cadena El atributo comienza con la cadena que proporciones (solo se admite en las tiendas vectoriales de Amazon OpenSearch Serverless)

Para combinar los operadores de filtrado, puede usar los siguientes operadores lógicos:

Logical operators (Operadores lógicos)
Operador Consola Nombre del campo del filtro de API Resultados filtrados
Y y Y todos Los resultados cumplen con todas las expresiones de filtrado del grupo
Or (Disyunción) o O todos Los resultados cumplen con al menos una de las expresiones de filtrado del grupo

Para aprender a filtrar los resultados mediante metadatos, selecciona la pestaña correspondiente al método que prefieras y sigue los pasos.

Console

Sigue los pasos de la consola que se indican enConsulte la base de conocimientos y devuelva resultados o genere respuestas. Cuando abras el panel de configuraciones, verás una sección de filtros. Los siguientes procedimientos describen diferentes casos de uso:

  • Para añadir un filtro, cree una expresión de filtrado introduciendo un atributo de metadatos, un operador de filtrado y un valor en el cuadro. Separe cada parte de la expresión con un espacio en blanco. Pulse Entrar para añadir el filtro.

    Para obtener una lista de los operadores de filtrado aceptados, consulte la tabla de operadores de filtrado anterior. También puede ver una lista de operadores de filtrado al añadir un espacio en blanco después del atributo de metadatos.

    nota

    Debe poner las cadenas entre comillas.

    Por ejemplo, puede filtrar los resultados de los documentos fuente que contienen un atributo de genre metadatos cuyo valor sea "entertainment" agregando el siguiente filtro:genre = "entertainment".

    Añada un filtro.
  • Para añadir otro filtro, introduzca otra expresión de filtrado en el cuadro y pulse Entrar. Puede añadir hasta 5 filtros al grupo.

    Añada otro filtro.
  • De forma predeterminada, la consulta devolverá resultados que cumplan con todas las expresiones de filtrado que proporcione. Para obtener resultados que cumplan con al menos una de las expresiones de filtrado, elija el menú desplegable y entre dos operaciones de filtrado y seleccione o.

    Cambie la operación lógica entre los filtros.
  • Para combinar distintos operadores lógicos, seleccione + Añadir grupo para añadir un grupo de filtros. Introduzca las expresiones de filtrado en el nuevo grupo. Puede añadir hasta 5 grupos de filtros.

    Agregue un grupo de filtros para combinar distintos operadores lógicos.
  • Para cambiar el operador lógico utilizado entre todos los grupos de filtrado, elija el menú desplegable AND entre dos grupos de filtros y seleccione OR.

    Cambie la operación lógica entre los grupos de filtros.
  • Para editar un filtro, selecciónelo, modifique la operación de filtrado y pulse Aplicar.

    Edite un filtro.
  • Para eliminar un grupo de filtros, elija el icono de la papelera ( Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family. ) situado junto al grupo. Para eliminar un filtro, selecciona el icono de eliminación ( Close or cancel icon represented by an "X" symbol. ) situado junto al filtro.

    Elimine un filtro o un grupo de filtros.

En la imagen siguiente se muestra un ejemplo de configuración de filtro que devuelve todos los documentos escritos según su género"entertainment", además de los documentos cuyo género es "cooking" o "sports" y cuyo autor comienza por él"C". 2018

Ejemplo de configuración de filtro.
API

Cuando realices una RetrieveAndGeneratesolicitud Retrieveo solicitud, incluye un retrievalConfiguration campo asignado a un KnowledgeBaseRetrievalConfigurationobjeto. Para ver la ubicación de este campo, consulta los organismos de RetrieveAndGeneratesolicitud Retrievey los de la API que aparecen en la referencia de la API.

Los siguientes objetos JSON muestran los campos mínimos necesarios en el KnowledgeBaseRetrievalConfigurationobjeto para establecer filtros para diferentes casos de uso:

  1. Utilice un operador de filtrado (consulte la tabla de operadores de filtrado anterior).

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } } } }
  2. Utilice un operador lógico (consulte la tabla de operadores lógicos anterior) para combinar hasta 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. Utilice un operador lógico para combinar hasta 5 operadores de filtrado en un grupo de filtros y un segundo operador lógico para combinar ese grupo de filtros con otro operador de filtrado.

    "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 hasta 5 grupos de filtros incrustándolos en otro operador lógico. Puede crear un nivel de incrustación.

    "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", ...] }, ... ] ] } } }

En la siguiente tabla se describen los tipos de filtros que puede utilizar:

Campo Tipos de datos de valores admitidos Resultados filtrados
equals cadena, número, booleano El atributo coincide con el valor que usted proporciona
notEquals cadena, número, booleano El atributo no coincide con el valor que has proporcionado
greaterThan number El atributo es mayor que el valor que has proporcionado
greaterThanOrEquals number El atributo es mayor o igual que el valor que usted proporciona
lessThan number El atributo es menor que el valor que usted proporciona
lessThanOrEquals number El atributo es menor o igual que el valor que usted proporciona
in lista de cadenas El atributo está en la lista que usted proporciona
notIn lista de cadenas El atributo no está en la lista que has proporcionado
startsWith cadena El atributo comienza con la cadena que proporciones (solo se admite en las tiendas vectoriales de Amazon OpenSearch Serverless)

Para combinar los tipos de filtros, puede usar uno de los siguientes operadores lógicos:

Campo Se asigna a Resultados filtrados
andAll Lista de hasta 5 tipos de filtros Los resultados cumplen con todas las expresiones de filtrado del grupo
orAll Lista de hasta 5 tipos de filtros Los resultados cumplen con al menos una de las expresiones de filtrado del grupo

Para ver ejemplos, consulte Enviar una consulta e incluir filtros (Recuperar) y Enviar una consulta e incluir filtros (RetrieveAndGenerate).

Cuando consulta una base de conocimientos y solicita la generación de respuestas, Amazon Bedrock utiliza una plantilla de solicitud que combina las instrucciones y el contexto con la consulta del usuario para crear la solicitud que se envía al modelo para la generación de respuestas. Puede diseñar la plantilla de solicitud con las siguientes herramientas:

  • Marcadores de posición rápidos: variables predefinidas en las bases de conocimiento de Amazon Bedrock que se rellenan dinámicamente en tiempo de ejecución durante la consulta a la base de conocimientos. En el indicador del sistema, verá estos marcadores de posición rodeados por el símbolo. $ En la siguiente lista se describen los marcadores de posición que puede utilizar:

    Variable Sustituido por Modelo ¿Obligatorio?
    $query$ La consulta del usuario enviada a la base de conocimientos. AnthropicClaude Instant, Anthropic Claude v2.x
    Anthropic Claude 3 Sonnet No (incluido automáticamente en la entrada del modelo)
    $search_results$ Los resultados recuperados de la consulta del usuario. Todos
    $output_format_instructions$ Instrucciones subyacentes para formatear la generación de respuestas y las citas. Se diferencia según el modelo. Si define sus propias instrucciones de formato, le sugerimos que elimine este marcador de posición. Sin este marcador de posición, la respuesta no contendrá citas. Todos No
    $current_time$ La hora actual. Todos No
  • Etiquetas XML: Anthropic los modelos admiten el uso de etiquetas XML para estructurar y delinear las solicitudes. Utilice nombres de etiquetas descriptivos para obtener resultados óptimos. Por ejemplo, en la línea de comandos predeterminada del sistema, verá la <database> etiqueta que se utiliza para delinear una base de datos de preguntas formuladas anteriormente. Para obtener más información, consulte Uso de etiquetas XML en la guía del Anthropic usuario.

Para obtener pautas generales de ingeniería rápida, consulte Directrices sobre ingeniería de peticiones.

Seleccione la pestaña correspondiente al método que prefiera y siga los pasos.

Console

Sigue los pasos de la consola que se indican enConsulte la base de conocimientos y devuelva resultados o genere respuestas. En la ventana de prueba, activa Generar respuestas. A continuación, en el panel de configuraciones, expanda la sección de plantillas de solicitudes de la base de conocimientos.

  1. Elija Editar.

  2. Edite el mensaje del sistema en el editor de texto, incluidos los marcadores de posición del mensaje y las etiquetas XML, según sea necesario. Para volver a la plantilla de mensajes predeterminada, seleccione Restablecer valores predeterminados.

  3. Cuando haya terminado de editar, elija Save changes (Guardar cambios). Para salir sin guardar la solicitud del sistema, seleccione Descartar cambios.

API

Cuando realices una RetrieveAndGeneratesolicitud, incluye un generationConfiguration campo asignado a un GenerationConfigurationobjeto. Para ver la ubicación de este campo, consulta el cuerpo de la RetrieveAndGeneratesolicitud en la referencia de la API.

El siguiente objeto JSON muestra los campos mínimos necesarios en el GenerationConfigurationobjeto para establecer el número máximo de resultados recuperados que se devolverán:

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

Introduce tu plantilla de solicitud personalizada en el textPromptTemplate campo, incluidos los marcadores de posición de la solicitud y las etiquetas XML, según sea necesario. Para conocer el número máximo de caracteres permitido en el mensaje del sistema, consulte el textPromptTemplate campo en GenerationConfiguration.

Puede implementar protecciones en su base de conocimientos para sus casos de uso y políticas de IA responsables. Puede crear varias barreras de protección adaptadas a diferentes casos de uso y aplicarlas en diferentes condiciones de solicitud y respuesta, proporcionando una experiencia de usuario coherente y estandarizando los controles de seguridad en toda su base de conocimientos. Puede configurar los temas rechazados para que no se admitan temas no deseados y filtros de contenido para bloquear el contenido dañino en las entradas y respuestas del modelo. Para obtener más información, consulte Barandillas para Amazon Bedrock.

nota

Actualmente, Claude 3 Sonnet y Haiku no admiten el uso de barreras contextuales como bases de conocimiento.

Para obtener pautas generales de ingeniería rápida, consulte. Directrices sobre ingeniería de peticiones

Seleccione la pestaña correspondiente al método que prefiera y siga los pasos.

Console

Sigue los pasos de la consola que se indican enConsulte la base de conocimientos y devuelva resultados o genere respuestas. En la ventana de prueba, activa Generar respuestas. A continuación, en el panel de configuraciones, expanda la sección Barandillas.

  1. En la sección Barandillas, elija el nombre y la versión de la barandilla. Si quieres ver los detalles de la barandilla y la versión que has elegido, selecciona Ver.

    Como alternativa, puede crear una nueva seleccionando el enlace Guardrail.

  2. Cuando haya terminado de editar, elija Save changes (Guardar cambios). Para salir sin guardar, selecciona Descartar cambios.

API

Cuando realices una RetrieveAndGeneratesolicitud, incluye el guardrailsConfiguration campo dentro de la generationConfiguration para usar tu barandilla con la solicitud. Para ver la ubicación de este campo, consulta el cuerpo de la RetrieveAndGeneratesolicitud en la referencia de la API.

El siguiente objeto JSON muestra los campos mínimos necesarios GenerationConfigurationpara configurarguardrailsConfiguration:

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

Especifique el extremo guardrailsVersion de guardrailsId las barandillas que haya elegido.