Configurar y personalizar las consultas y la generación de respuestas - 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 y la generación de respuestas

Puede configurar y personalizar la recuperación y la generación de respuestas, lo que mejora aún más la relevancia de las respuestas. Por ejemplo, puede aplicar filtros a los campos o atributos de metadatos del documento para utilizar los documentos actualizados más recientemente o los documentos con fechas de modificación recientes.

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

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

    Sigue los pasos de la consola que se indican enConsulte una base de conocimientos y genere respuestas de IA. 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 haces un Retrieve o RetrieveAndGeneratesolicitud, incluye un retrievalConfiguration campo asignado a un KnowledgeBaseRetrievalConfigurationobjeto. Para ver la ubicación de este campo, consulta la Retrieve y RetrieveAndGeneratesolicite los organismos de la API referencia.

    El siguiente JSON objeto 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.

    • HYBRID— 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.

    • SEMANTIC— 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 marcó más alto en el FIFA Mundial de 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 del FIFA Mundial de 2022?

    2. ¿Cuántos goles marcó Francia en la final FIFA del Mundial de 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 estos 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 una base de conocimientos y genere respuestas de IA 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 tu documento sin tener configurada una 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 al RetrieveAndGenerateAPI. Puede personalizar el modelo proporcionando parámetros de inferencia en el inferenceConfig campo del knowledgeBaseConfiguration (si consulta una base de conocimientos) o en el externalSourcesConfiguration (si conversa con el documento).

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

    • temperature

    • topP

    • maxTokenCount

    • stopSequences

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

    • temperature

    • topP

    • maxTokenCount

    • stopSequences

    Para obtener una explicación detallada de la función de cada uno de estos parámetros, consulteInfluya en la generación de respuestas con pará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 solicitud de inferencia y campos de respuesta para modelos básicos.

    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 maxTokens 0,5 y 2048, 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 una base de conocimientos y genere respuestas de IA. En el panel de configuraciones, amplíe el número máximo de resultados recuperados.

    API

    Cuando haces un Retrieve o RetrieveAndGeneratesolicitud, incluye un retrievalConfiguration campo asignado a un KnowledgeBaseRetrievalConfigurationobjeto. Para ver la ubicación de este campo, consulta la Retrieve y RetrieveAndGeneratesolicite los organismos de la API referencia.

    El JSON objeto siguiente 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.

    Puede aplicar filtros a los campos o atributos del documento para mejorar aún más la relevancia de las respuestas. Sus fuentes de datos pueden incluir atributos/campos de metadatos de documentos para filtrar. Por ejemplo, el documento «epoch_modification_time» o el número de segundos transcurridos desde el 1 de enero de 1970 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 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 uno fileName.extension.metadata.json para el archivo o documento al que está asociado. Consulte Configuración de la conexión de Amazon S3 para obtener más información sobre la configuración del 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 nmslib motor, deberá realizar una de las siguientes acciones:

    • Si va a añadir metadatos a un índice vectorial existente en un clúster de base de datos de Amazon Aurora, debe añadir una columna a la tabla para cada atributo de metadatos de sus archivos de metadatos antes de iniciar la ingestión. Los valores de los atributos de los metadatos se escribirán en estas columnas.

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

    Operadores de filtrado
    Operador Consola APInombre del filtro 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 != notEquals cadena, número, booleano El atributo no coincide con el valor que has proporcionado
    Mayor que > greaterThan number El atributo es mayor que el valor que has proporcionado
    Mayor o igual a >= greaterThanOrIgual number El atributo es mayor o igual al valor que usted proporciona
    Menor que < lessThan 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 (actualmente es más compatible con las tiendas de vectores de Amazon OpenSearch Serverless)
    No está !: notIn lista de cadenas El atributo no está en la lista que has proporcionado (actualmente es más compatible con las tiendas de vectores de Amazon OpenSearch Serverless)
    Empieza por ^ startsWith cadena El atributo comienza con la cadena que proporciones (actualmente es mejor compatible con las tiendas de vectores de Amazon OpenSearch Serverless)

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

    Logical operators (Operadores lógicos)
    Operador Consola APInombre del campo de filtro Resultados filtrados
    Y y andAll Los resultados cumplen con todas las expresiones de filtrado del grupo
    Or (Disyunción) o orAll 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 estos pasos:

    Console

    Sigue los pasos de la consola que se indican enConsulte una base de conocimientos y genere respuestas de IA. 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.

      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ú ANDdesplegable entre dos grupos de filtros y seleccione O.

      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 haces un Retrieve o RetrieveAndGeneratesolicitud, incluye un retrievalConfiguration campo asignado a un KnowledgeBaseRetrievalConfigurationobjeto. Para ver la ubicación de este campo, consulta la Retrieve y RetrieveAndGeneratesolicite los organismos de la API referencia.

    Los siguientes JSON objetos muestran los campos mínimos necesarios en el KnowledgeBaseRetrievalConfigurationobjeto para establecer filtros para distintos 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 Reemplazado por Modelo ¿Obligatorio?
      $query$ La consulta del usuario enviada a la base de conocimientos. Anthropic Claude 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
    • XMLetiquetas — Anthropic los modelos admiten el uso de XML etiquetas para estructurar y delinear las indicaciones. 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 XML etiquetas en Anthropic guía del usuario.

    Para obtener pautas generales de ingeniería rápida, consulte Conceptos de ingeniería rápidos.

    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 una base de conocimientos y genere respuestas de IA. 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 y las XML etiquetas del mensaje, 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 haces un RetrieveAndGeneratesolicitud, incluye un generationConfiguration campo asignado a un GenerationConfigurationobjeto. Para ver la ubicación de este campo, consulta la RetrieveAndGeneratecuerpo de la solicitud en la API referencia.

    El JSON objeto siguiente 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" } }

    Introduzca su plantilla de solicitud personalizada en el textPromptTemplate campo, incluidos los marcadores de posición y las XML etiquetas de las solicitudes, según sea necesario. Para ver 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 Detenga el contenido dañino en los modelos que utilizan Amazon Bedrock Guardrails.

    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. Conceptos de ingeniería rápidos

    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 una base de conocimientos y genere respuestas de IA. 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 haces un RetrieveAndGeneratesolicitud, incluye el guardrailsConfiguration campo dentro de la generationConfiguration para usar tu barandilla con la solicitud. Para ver la ubicación de este campo, consulte la RetrieveAndGeneratecuerpo de la solicitud en la API referencia.

    El siguiente JSON objeto 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.