Supervisión de bases de conocimientos con Registros de CloudWatch - 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.

Supervisión de bases de conocimientos con Registros de CloudWatch

Amazon Bedrock admite un sistema de supervisión que lo ayuda a comprender la ejecución de cualquier trabajo de ingesta de datos para sus bases de conocimientos. En las siguientes secciones se explica cómo habilitar y configurar el sistema de registro para las bases de conocimientos de Amazon Bedrock mediante la AWS Management Console y la API de CloudWatch. Con este sistema de registro obtendrá mayor visibilidad sobre la ingesta de datos de los recursos de su base de conocimientos.

Registro de bases de conocimientos mediante la consola

Para activar el registro de una base de conocimientos de Amazon Bedrock mediante la AWS Management Console:

  1. Cree una base de conocimientos: utilice la AWS Management Console para Amazon Bedrock para crear una nueva base de conocimientos.

  2. Añada una opción de entrega de registros: después de crear la base de conocimientos, edite o actualice su base de conocimientos para añadir una opción de entrega de registros.

    Configure los detalles de la entrega de registros: introduzca los detalles de la entrega de registros, incluidos:

    • El destino del registro (CloudWatch, Amazon S3 o Amazon Data Firehose)

    • (Si utiliza Registros de CloudWatch como destino del registro) El nombre del grupo de registro

    • (Si utiliza Amazon S3 como destino del registro) El nombre del bucket

    • (Si utiliza Amazon Data Firehose como destino del registro) El flujo de Firehose

  3. Incluya los permisos de acceso: el usuario que ha iniciado sesión en la consola debe tener los permisos necesarios para escribir los registros recopilados en el destino elegido.

    El siguiente ejemplo de política de IAM se puede asociar al usuario que ha iniciado sesión en la consola para conceder los permisos necesarios para utilizar Registros de CloudWatch.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "logs:CreateDelivery", "Resource": [ "arn:aws:logs:your-region:your-account-id:delivery-source:*", "arn:aws:logs:your-region:your-account-id:delivery:*", "arn:aws:logs:your-region:your-account-id:delivery-destination:*" ] }] }
  4. Confirme el estado de entrega: compruebe que el estado de entrega del registro sea “Entrega activa” en la consola.

Registro de bases de conocimientos mediante la API de CloudWatch

Para activar el registro de una base de conocimientos de Amazon Bedrock mediante la API de CloudWatch:

  1. Obtenga el ARN de su base de conocimientos: tras crear una base de conocimientos mediante la API de Amazon Bedrock o la consola de Amazon Bedrock, obtenga el nombre del recurso de Amazon de la base de conocimientos. Puede obtener el nombre del recurso de Amazon llamando a la API de GetKnowledgeBase. El nombre de un recurso de Amazon para una base de conocimientos sigue este formato: arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge-base-id.

  2. Llame a PutDeliverySource: utilice la API de PutDeliverySource proporcionada por Amazon CloudWatch para crear un origen de entrega para la base de conocimientos. Pase el nombre del recurso de Amazon de la base de conocimientos como el resourceArn. logTypeespecifica APPLICATION_LOGS como el tipo de registros que se recopila. APPLICATION_LOGS realiza un seguimiento del estado actual de los archivos durante un trabajo de ingesta.

    { "logType": "APPLICATION_LOGS", "name": "my-knowledge-base-delivery-source", "resourceArn": "arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge_base_id" }
  3. Llame a PutDeliveryDestination: utilice la API de PutDeliveryDestination proporcionada por Amazon CloudWatch para configurar el lugar donde se almacenarán los registros. Puede elegir Registros de CloudWatch, Amazon S3 o Amazon Data Firehose como destino para almacenar los registros. Debe especificar el nombre del recurso de Amazon de una de las opciones de destino en las que se almacenarán sus registros. El outputFormat de los registros puede ser uno de estos: json, plain, w3c, raw o parquet. A continuación, se incluye un ejemplo de cómo configurar los registros para que se almacenen en un bucket de Amazon S3 y en formato JSON.

    { "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::bucket-name" }, "name": "string", "outputFormat": "json", "tags": { "key" : "value" } }

    Tenga en cuenta que si entrega registros entre cuentas, debe usar la API de PutDeliveryDestinationPolicy para asignar una política de AWS Identity and Access Management (IAM) a la cuenta de destino. La política de IAM permite la entrega de una cuenta a otra.

  4. Llame a CreateDelivery: use la llamada a la API de CreateDelivery para vincular el origen de la entrega con el destino creado en los pasos anteriores. Esta operación de la API asocia el origen de la entrega con el destino final.

    { "deliveryDestinationArn": "string", "deliverySourceName": "string", "tags": { "string" : "string" } }
nota

Si desea utilizar AWS CloudFormation, puede usar lo siguiente:

El ResourceArn es el KnowledgeBaseARN y el LogType admitido debe ser APPLICATION_LOGS.

Tipos de registro admitidos

Las bases de conocimientos de Amazon Bedrock admiten los siguientes tipos de registro:

  • APPLICATION_LOGS: registros que rastrean el estado actual de un archivo específico durante un trabajo de ingesta de datos.

Permisos y límites de usuario

Para habilitar el registro en una base de conocimientos de Amazon Bedrock, se requieren los siguientes permisos para la cuenta de usuario que ha iniciado sesión en la consola:

  1. bedrock:AllowVendedLogDeliveryForResource: necesario para permitir la entrega de los registros del recurso de la base de conocimientos.

    Puede ver un ejemplo de política de permisos o roles de IAM con todos los permisos necesarios para su destino de registro específico. Consulte Vended logs permissions for different delivery destinations y siga el ejemplo de la política de permisos o roles de IAM para su destino de registro, incluida la posibilidad de actualizar su recurso de destino de registro específico (ya sea Registros de CloudWatch, Amazon S3 o Amazon Data Firehose).

También puede comprobar si hay algún límite de cuota para realizar llamadas a la API relacionadas con la entrega de registros de CloudWatch en la CloudWatch Logs service quotas documentation. Los límites de cuota establecen un número máximo de veces que puede llamar a una API o crear un recurso. Si supera un límite, se producirá un error ServiceQuotaExceededException.

Ejemplos de registros de bases de conocimientos

Existen registros en el nivel de ingesta de datos y registros en el nivel de recursos para las bases de conocimientos de Amazon Bedrock.

A continuación, se incluye un ejemplo de un registro de trabajo de ingesta de datos.

{ "event_timestamp": 1718683433639, "event": { "ingestion_job_id": "<IngestionJobId>", "data_source_id": "<IngestionJobId>", "ingestion_job_status": "INGESTION_JOB_STARTED" | "COMPLETE" | "FAILED" | "CRAWLING_COMPLETED" "knowledge_base_arn": "arn:aws:bedrock:<region>:<accountId>:knowledge-base/<KnowledgeBaseId>", "resource_statistics": { "number_of_resources_updated": int, "number_of_resources_ingested": int, "number_of_resources_scheduled_for_update": int, "number_of_resources_scheduled_for_ingestion": int, "number_of_resources_scheduled_for_metadata_update": int, "number_of_resources_deleted": int, "number_of_resources_with_metadata_updated": int, "number_of_resources_failed": int, "number_of_resources_scheduled_for_deletion": int } }, "event_version": "1.0", "event_type": "StartIngestionJob.StatusChanged", "level": "INFO" }

A continuación, se muestra un ejemplo de un registro de nivel de recurso.

{ "event_timestamp": 1718677342332, "event": { "ingestion_job_id": "<IngestionJobId>", "data_source_id": "<IngestionJobId>", "knowledge_base_arn": "arn:aws:bedrock:<region>:<accountId>:knowledge-base/<KnowledgeBaseId>", "document_location": { "type": "S3", "s3_location": { "uri": "s3:/<BucketName>/<ObjectKey>" } }, "status": "<ResourceStatus>" "status_reasons": String[], "chunk_statistics": { "ignored": int, "created": int, "deleted": int, "metadata_updated": int, "failed_to_create": int, "failed_to_delete": int, "failed_to_update_metadata": int }, }, "event_version": "1.0", "event_type": "StartIngestionJob.ResourceStatusChanged", "level": "INFO" | "WARN" | "ERROR" }

El status para el recurso puede ser uno de los siguientes:

  • SCHEDULED_FOR_INGESTION, SCHEDULED_FOR_DELETION, SCHEDULED_FOR_UPDATE o SCHEDULED_FOR_METADATA_UPDATE: estos valores de estado indican que el recurso está programado para ser procesado después de calcular la diferencia entre el estado actual de la base de conocimientos y los cambios realizados en el origen de datos.

  • RESOURCE_IGNORED: este valor de estado indica que se ha ignorado el recurso en el procesamiento y el motivo se detalla en la propiedad status_reasons.

  • EMBEDDING_STARTED y EMBEDDING_COMPLETED: estos valores de estado indican cuándo se ha iniciado y completado la incrustación vectorial de un recurso.

  • INDEXING_STARTED y INDEXING_COMPLETED: estos valores de estado indican cuándo se ha iniciado y completado la indexación de un recurso.

  • DELETION_STARTED y DELETION_COMPLETED: estos valores de estado indican cuándo se ha iniciado y completado la eliminación de un recurso.

  • METADATA_UPDATE_STARTED y METADATA_UPDATE_COMPLETED: estos valores de estado indican cuándo se ha iniciado y completado la actualización de metadatos de un recurso.

  • EMBEDDING_FAILED, INDEXING_FAILED, DELETION_FAILED y METADATA_UPDATE_FAILED: estos valores de estado indican que se ha producido un error en el procesamiento de un recurso y los motivos se detallan en la propiedad status_reasons.

  • INDEXED, DELETED, PARTIALLY_INDEXED, METADATA_PARTIALLY_INDEXED y FAILED: una vez finalizado el procesamiento de un documento, se publica un registro con el estado final del documento y el resumen del procesamiento dentro de la propiedad chunk_statistics.

Ejemplos de consultas habituales para depurar los registros de la base de conocimientos

Puede interactuar con los registros realizando consultas. Por ejemplo, puede consultar todos los documentos con el estado del evento RESOURCE_IGNORED durante la ingesta de documentos o datos.

Las siguientes son algunas consultas habituales que se pueden utilizar para depurar los registros generados con Información de registros de CloudWatch:

  • Consulta de todos los registros generados para un documento de S3 específico:

    filter event.document_location.s3_location.uri = "s3://<bucketName>/<objectKey>"

  • Consulta de todos los documentos ignorados durante el trabajo de ingesta de datos:

    filter event.status = "RESOURCE_IGNORED"

  • Consulta de todas las excepciones que se han producido al incrustar documentos de forma vectorial:

    filter event.status = "EMBEDDING_FAILED"

  • Consulta de todas las excepciones que se han producido al indexar documentos en la base de datos vectorial:

    filter event.status = "INDEXING_FAILED"

  • Consulta de todas las excepciones que se han producido al eliminar documentos de la base de datos vectorial:

    filter event.status = "DELETION_FAILED"

  • Consulta de todas las excepciones que se han producido al actualizar los metadatos del documento de la base de datos vectorial:

    filter event.status = "DELETION_FAILED"

  • Consulta de todas las excepciones que se han producido al ejecutar un trabajo de ingesta de datos:

    filter level = "ERROR" or level = "WARN"