View a markdown version of this page

Configurar y personalizar las consultas para las bases de conocimiento administradas - 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.

Configurar y personalizar las consultas para las bases de conocimiento administradas

Puede configurar y personalizar la recuperación para mejorar aún más la relevancia de los resultados. Por ejemplo, puede aplicar filtros a los metadatos de los documentos fields/attributes para usar los documentos actualizados más recientemente o los documentos con tiempos de modificación recientes.

nota

Todas las configuraciones siguientes solo se aplican a fuentes de datos no estructuradas.

Para obtener más información sobre estas configuraciones en la consola o la API, seleccione uno de los siguientes temas:

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.

nota

El número real de resultados de la respuesta puede ser inferior al valor de numberOfResults especificado, ya que este parámetro establece el número máximo de resultados que se devuelven. Si ha configurado la fragmentación jerárquica para su estrategia de fragmentación, el parámetro numberOfResults se asigna al número de fragmentos secundarios que recuperará la base de conocimiento. Como los fragmentos secundarios que comparten el mismo fragmento principal se sustituyen por el fragmento principal en la respuesta final, es posible que la cantidad de resultados devueltos sea inferior a la cantidad solicitada.

Para modificar el número máximo de resultados que se devuelven, seleccione la pestaña correspondiente al método que prefiera y siga estos pasos:

Console

Siga los pasos de la consola que se indican en Consulta de una base de conocimiento y recuperación de datos. En el panel Configuraciones, expanda la sección Fragmentos del origen e introduzca el número máximo de fragmentos de origen que se van a devolver.

API

Cuando haga una RetrieveAndGenerate solicitud Retrieve o, incluya un retrievalConfiguration campo asignado a un KnowledgeBaseRetrievalConfiguration objeto. Para ver la ubicación de este campo, consulte los cuerpos de las solicitudes Retrieve y RetrieveAndGenerate en la referencia de la API.

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

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

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

Puede aplicar filtros al documento fields/attributes para mejorar aún más la relevancia de las respuestas. Sus fuentes de datos pueden incluir metadatos de documentos attributes/fields para filtrarlos y pueden especificar qué campos incluir en las incrustaciones.

Consideraciones sobre la base de conocimientos gestionada

Al utilizar el filtrado de metadatos con una base de conocimientos gestionada:

  • Los filtros startsWith y de stringContains metadatos no son compatibles. En su lugar equals greaterThanlessThan, utilice notIn los operadoresin,,, u.

  • Los operadores de rango (greaterThan, greaterThanOrEqualslessThan, ylessThanOrEquals) aceptan un valor numérico o de fecha y hora. Para filtrar por fecha y hora, proporcione el valor en forma de cadena en ISO-8601 formato de fecha y hora desfasado. Utilice el formulario de desfase completo, por ejemplo,. 2026-03-02T19:02:18Z Los operadores de rango admiten valores de cadenas de fecha y hora solo para las bases de conocimiento administradas.

  • En el caso de las bases de conocimiento personalizadas, el servicio reserva los campos de metadatos con x-amz-bedrock el prefijo. En el caso de las bases de conocimiento totalmente administradas, los campos de metadatos reservados utilizan un prefijo de subrayado (por ejemplo,,_source_uri). _data_source_id No puede anular los campos de metadatos reservados en ninguno de los tipos de base de conocimientos.

Por ejemplo, “epoch_modification_time” representa el tiempo en segundos transcurridos desde el 1 de enero de 1970 (UTC) hasta que se actualizó el documento por última vez. Puede filtrar por los datos más recientes, donde “epoch_modification_time” es mayor que un número determinado. Estos documentos más recientes se pueden utilizar para la consulta.

Para utilizar filtros al consultar una base de conocimientos, compruebe que la base de conocimientos cumpla los siguientes requisitos:

  • Al configurar el conector del origen de datos, la mayoría de los conectores rastrea los principales campos de metadatos de los documentos. Si utiliza un bucket de Amazon S3 como origen de datos, el bucket debe incluir al menos un fileName.extension.metadata.json para el archivo o documento con el que está asociado. Consulte Campos de metadatos del documento Configuración de la conexión para obtener más información sobre cómo configurar el archivo de metadatos.

  • 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 motor nmslib, deberá realizar una de las siguientes acciones:

  • Si su base de conocimiento utiliza un índice vectorial en un bucket vectorial de S3, no puede utilizar los filtros startsWith y stringContains.

  • Si va a añadir metadatos a un índice vectorial existente en un clúster de base de datos de Amazon Aurora, le recomendamos que proporcione el nombre de campo de la columna de metadatos personalizada para almacenar todos los metadatos en una sola columna. Durante la ingesta de datos, esta columna se utilizará para rellenar toda la información de los archivos de metadatos de los orígenes de datos. Si decide proporcionar este campo, debe crear un índice en esta columna.

    • Cuando cree una nueva base de conocimiento en la consola y deje que Amazon Bedrock configure su base de datos de Amazon Aurora, creará automáticamente una sola columna para usted y la rellenará con la información de sus archivos de metadatos.

    • Si decide crear otro índice vectorial en el almacén de vectores, debe proporcionar el nombre del campo de metadatos personalizado para almacenar la información de sus archivos de metadatos. Si no proporciona este nombre de campo, debe crear una columna para cada atributo de metadatos de sus archivos y especificar el tipo de datos (texto, número o booleano). Por ejemplo, si existiera el atributo genre en el origen de datos, añadiría una columna con el nombre genre y especificaría text como tipo de datos. Durante la ingesta de datos, estas columnas se rellenarán con los valores de atributo correspondientes.

Si tiene documentos PDF en su fuente de datos y utiliza Amazon OpenSearch Serverless o Amazon Aurora para su almacén vectorial, las bases de conocimiento de Amazon Bedrock generarán los números de página de los documentos y los almacenarán en un metadato denominado x-amz-bedrock-kb-document-page-number. field/attribute Tenga en cuenta que los números de página almacenados en un campo de metadatos no se admiten si elige no fragmentar sus documentos.

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

Operadores de filtrado
Operador Consola Nombre del filtro de la API Tipos de datos de atributos compatibles Resultados filtrados
Igual a = equals cadena, número, booleano El atributo coincide con el valor que ha proporcionado
No es igual a != notEquals cadena, número, booleano El atributo no coincide con el valor que ha proporcionado
Mayor que > greaterThan número El atributo es mayor que el valor que ha proporcionado
Mayor que o igual a >= mayor ThanOrEquals número El atributo es mayor que o igual al valor que ha proporcionado
Menor que < lessThan número El atributo es menor que el valor que ha proporcionado
Menor que o igual a <= menos ThanOrEquals número El atributo es menor que o igual al valor que ha proporcionado
In : in lista de cadenas El atributo está en la lista que usted proporciona (actualmente es mejor compatible con los almacenes vectoriales GraphRag de Amazon OpenSearch Serverless y Neptune Analytics)
No en !: notIn lista de cadenas El atributo no está en la lista que nos proporciona (actualmente es más compatible con los almacenes vectoriales GraphRag de Amazon OpenSearch Serverless y Neptune Analytics)
Contiene una cadena No disponible stringContains cadena El atributo debe ser una cadena. El nombre del atributo coincide con la clave y su valor es una cadena que contiene el valor que ha proporcionado como subcadena, o una lista con un miembro que contiene el valor que ha proporcionado como subcadena (actualmente es más compatible con el almacén vectorial Amazon Serverless). OpenSearch El almacén vectorial GraphRag de Neptune Analytics admite la variante de cadena (pero no la variante de lista de este filtro).
Contiene una lista No disponible listContains cadena El atributo debe ser una lista de cadenas. El nombre del atributo coincide con la clave y su valor es una lista que contiene el valor que usted proporcionó como uno de sus miembros (actualmente es más compatible con 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 la API Resultados filtrados
Y and andAll Los resultados cumplen con todas las expresiones de filtrado del grupo
O o orAll Los resultados cumplen al menos con una de las expresiones de filtrado del grupo

Para obtener información sobre cómo filtrar los resultados con los metadatos, seleccione la pestaña correspondiente al método que prefiera y siga estos pasos:

Console

Siga los pasos de la consola que se indican en Consulta de una base de conocimiento y recuperación de datos. Al abrir el panel Configuraciones, verá la sección Filtros. Los siguientes procedimientos describen distintos casos de uso:

  • Para añadir un filtro, cree una expresión de filtrado con 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 Intro para añadir el filtro.

    Para obtener una lista de los operadores de filtrado aceptados, consulte la tabla 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 signos de pregunta.

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

    Agregue un filtro.
  • Para añadir otro filtro, introduzca otra expresión de filtrado en el cuadro y pulse Intro. Puede agregar hasta cinco filtros al grupo.

    Agregar 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 cinco grupos de filtrado.

    Añada 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 Y entre dos grupos de filtros y seleccione O.

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

    Edite un filtro.
  • Para eliminar un grupo de filtros, elija el icono de la papelera ( Trash can icon representing a delete action. ) situado junto al grupo. Para eliminar un filtro, seleccione el icono de eliminación ( Close or cancel icon represented by an "X" symbol. ) 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 después de 2018 cuyo género es "entertainment", además de los documentos cuyo género es "cooking" o "sports" y cuyo autor comienza por "C".

Ejemplo de configuración de filtro.
API

Cuando realices una RetrieveAndGenerate solicitud Retrieve o, incluye un retrievalConfiguration campo asignado a un KnowledgeBaseRetrievalConfiguration objeto. Para ver la ubicación de este campo, consulte los cuerpos de las solicitudes Retrieve y RetrieveAndGenerate en la referencia de la API.

Los siguientes objetos JSON muestran los campos mínimos que se requieren en el KnowledgeBaseRetrievalConfiguration objeto para establecer filtros para diferentes casos de uso:

  1. Utilice un operador de filtrado (consulte la tabla 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 Operadores lógicos anterior) para combinar hasta cinco operadores.

    "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 cinco 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 cinco 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 filtro que puede utilizar:

Campo Tipos de datos de valor compatibles Resultados filtrados
equals cadena, número, booleano El atributo coincide con el valor que ha proporcionado
notEquals cadena, número, booleano El atributo no coincide con el valor que ha proporcionado
greaterThan número El atributo es mayor que el valor que ha proporcionado
greaterThanOrEquals número El atributo es mayor que o igual al valor que ha proporcionado
lessThan número El atributo es menor que el valor que ha proporcionado
lessThanOrEquals número El atributo es menor que o igual al valor que ha proporcionado
in lista de cadenas El atributo está en la lista que ha proporcionado
notIn lista de cadenas El atributo no está en la lista que ha proporcionado
startsWith cadena El atributo comienza con la cadena que proporciones (solo es compatible con los almacenes vectoriales de Amazon OpenSearch Serverless)

Para combinar los tipos de filtro, puede utilizar uno de los siguientes operadores lógicos:

Campo Se asigna a Resultados filtrados
andAll Lista de hasta cinco tipos de filtro Los resultados cumplen con todas las expresiones de filtrado del grupo
orAll Lista de hasta cinco tipos de filtro Los resultados cumplen al menos con 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).

Puede implementar protecciones en la base de conocimientos para sus casos de uso y políticas de IA responsable. Puede crear varias barreras de protección adaptadas a diferentes casos de uso y aplicarlas en diferentes condiciones de solicitud y respuesta para proporcionar una experiencia de usuario coherente y estandarizar los controles de seguridad en toda la base de conocimientos. Puede configurar los temas denegados 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 Detección y filtrado del contenido dañino mediante Barreras de protección para Amazon Bedrock.

nota

Actualmente, Claude 3 Sonnet y Haiku no admiten el uso de barreras de protección con fundamento contextual para las bases de conocimientos.

Para ver las directrices generales de ingeniería de peticiones, consulte Conceptos de ingeniería de peticiones.

Elija la pestaña del método que prefiera y siga estos pasos:

Console

Siga los pasos de la consola que se indican en Consulta de una base de conocimiento y recuperación de datos. En la ventana de prueba, active Generar respuestas. A continuación, en el panel Configuraciones, expanda la sección Barreras de protección.

  1. En la sección Barreras de protección, elija el Nombre y la Versión de la barrera de protección. Si quiere ver los detalles de la barrera de protección y la versión que ha elegido, seleccione Ver.

    Si lo desea, puede crear una nueva seleccionando el enlace Barrera de protección.

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

API

Cuando realice una solicitud RetrieveAndGenerate, incluya el campo guardrailConfiguration dentro de la generationConfiguration para usar la barrera de protección con la solicitud. Para ver la ubicación de este campo, consulte el cuerpo de la solicitud RetrieveAndGenerate en la referencia de la API.

El siguiente objeto JSON muestra los campos mínimos necesarios GenerationConfiguration para establecerguardrailConfiguration:

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

Especifique el guardrailId y la guardrailVersion para las barreras de protección que ha elegido.

Puede utilizar un modelo reclasificador para recuperar los resultados de una consulta a la base de conocimiento. Siga los pasos de la consola que se indican en Consulta de una base de conocimiento y recuperación de datos. Cuando abra el panel Configuraciones, amplíe la sección Reordenamiento. Seleccione un modelo reclasificador, actualice los permisos si es necesario y modifique las opciones adicionales. Introduzca una petición y seleccione Ejecutar para probar los resultados después de la reclasificación.