Ingesta directa de documentos en una base de conocimiento - 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.

Ingesta directa de documentos en una base de conocimiento

En este tema se explica cómo ingerir documentos directamente en una base de conocimiento. Se aplican restricciones a los tipos de documentos que puede ingerir directamente en función del origen de datos. Consulte la siguiente tabla para ver las restricciones sobre los métodos que puede utilizar para especificar los documentos que desea ingerir:

Data source type Documento definido como insertado Documento en una ubicación de Amazon S3
Amazon S3 Red circular icon with an X symbol, indicating cancellation or denial. No Green circular icon with a white checkmark symbol inside.
Personalizada Green circular icon with a white checkmark symbol inside. Green circular icon with a white checkmark symbol inside.

Amplíe la sección que se corresponda con su caso de uso:

nota

Al utilizar la consola, puede ingerir 10 documentos directamente en su base de conocimiento. Si, en su lugar, utiliza la API IngestKnowledgeBaseDocuments, puede ingerir hasta 25 documentos en su base de conocimiento. Para obtener más información acerca de esta cuota, consulte Cuotas de servicio de Amazon Bedrock en la guía Referencia general de AWS.

Para añadir o modificar documentos directamente en elConsola de administración de AWS, haga lo siguiente:

  1. Inicie sesión Consola de administración de AWS con una identidad de IAM que tenga permisos para usar la consola Amazon Bedrock. A continuación, abra la consola de Amazon Bedrock en https://console.aws.amazon.com/bedrock.

  2. En el panel de navegación izquierdo, elija Bases de conocimientos.

  3. En la sección Bases de conocimiento, seleccione la base de conocimiento en la que desea ingerir documentos.

  4. En la sección Origen de datos, seleccione el origen de datos para el que quiera añadir, modificar o eliminar documentos.

  5. En la sección Documentos, elija Agregar documentos. A continuación, lleve a cabo alguna de las operaciones siguientes:

    • Para añadir o modificar un documento directamente, seleccione Agregar documentos directamente. A continuación, proceda del modo siguiente:

      1. En el campo Identificador del documento, especifique un nombre exclusivo para el documento. Si especifica un nombre que ya existe en el origen de datos, se reemplazará el documento.

      2. Para cargar un documento, seleccione Cargar. Para definir un documento insertado, seleccione Agregar documento en línea, elija un formato e introduzca el texto del documento en el cuadro.

      3. (Opcional) Para asociar los metadatos al documento, seleccione Agregar metadatos e introduzca una clave, un tipo y un valor.

    • Para añadir o modificar un documento especificando su ubicación en S3, seleccione Agregar documentos de S3. A continuación, proceda del modo siguiente:

      1. En el campo Identificador del documento, especifique un nombre exclusivo para el documento. Si especifica un nombre que ya existe en el origen de datos, se reemplazará el documento.

      2. Especifique si la ubicación S3 del documento está en su AWS cuenta corriente o en otra diferente. A continuación, especifique el URI de S3 del documento.

      3. (Opcional) Para asociar los metadatos al documento, elija un origen de metadatos. Especifique el URI de S3 de los metadatos o seleccione Agregar metadatos e introduzca una clave, un tipo y un valor.

  6. Para ingerir el documento y cualquier metadato asociado, seleccione Agregar.

Para incorporar documentos directamente a una base de conocimientos mediante la API de Amazon Bedrock, envíe una IngestKnowledgeBaseDocumentssolicitud con un punto límite de tiempo de compilación de Agents for Amazon Bedrock y especifique el ID de la base de conocimientos y de la fuente de datos a la que está conectada.

nota

Si especifica un identificador de documento o una ubicación de S3 que ya exista en la base de conocimiento, el documento se sobrescribirá con el nuevo contenido.

El cuerpo de la solicitud contiene un campo que se asigna a una serie de KnowledgeBaseDocumentobjetos, cada uno de los cuales representa el contenido y los metadatos opcionales de un documento para añadirlos a la fuente de datos e incorporarlos a la base de conocimientos. documents Un objeto KnowledgeBaseDocument contiene los siguientes campos:

Seleccione un tema para obtener información sobre cómo ingerir documentos de diferentes tipos de orígenes de datos o para ver ejemplos:

Ingesta de un documento en una base de conocimiento conectada a un origen de datos personalizado

dataSourceIdSi los que especifique pertenecen a una fuente de datos personalizada, puede añadir contenido y metadatos para cada KnowledgeBaseDocumentobjeto de la documents matriz.

El contenido de un documento agregado a un origen de datos personalizado se puede definir de las siguientes maneras:

Puede definir los siguientes tipos de documentos como insertados:

Text

Si el documento es texto, el DocumentContentobjeto debe tener el siguiente formato:

{ "custom": { "customDocumentIdentifier": { "id": "string" }, "inlineContent": { "textContent": { "data": "string" }, "type": "TEXT" }, "sourceType": "IN_LINE" }, "dataSourceType": "CUSTOM" }

Incluya un ID del documento en el campo id y el texto del documento en el campo data.

Bytes

Si el documento contiene más que texto, conviértalo en una cadena Base64. En ese caso, el DocumentContentobjeto debería tener el siguiente formato:

{ "custom": { "customDocumentIdentifier": { "id": "string" }, "inlineContent": { "byteContent": { "data": blob, "mimeType": "string" }, "type": "BYTE" }, "sourceType": "IN_LINE" }, "dataSourceType": "CUSTOM" }

Incluya un ID del documento en el campo id, el documento codificado en Base64 en el campo data y el tipo MIME en el campo mimeType.

Si va a ingerir un documento desde una ubicación de S3, el DocumentContentobjeto del content campo debe tener el siguiente formato:

{ "custom": { "customDocumentIdentifier": { "id": "string" }, "s3Location": { "bucketOwnerAccountId": "string", "uri": "string" }, "sourceType": "S3" }, "dataSourceType": "CUSTOM" }

Incluya un ID del documento en el campo id, el propietario del bucket de S3 que contiene el documento en el campo bucketOwnerAccountId y el URI de S3 del documento en el campo uri.

Los metadatos de un documento se pueden definir de las siguientes maneras:

Si define los metadatos en línea, el DocumentMetadataobjeto del metadata campo debe tener el siguiente formato:

{ "inlineAttributes": [ { "key": "string", "value": { "stringValue": "string", "booleanValue": boolean, "numberValue": number, "stringListValue": [ "string" ], "type": "STRING" | "BOOLEAN" | "NUMBER" | "STRING_LIST" } } ], "type": "IN_LINE_ATTRIBUTE" }

Para cada atributo que añada, defina la clave en el campo key. Especifique el tipo de datos del valor en el campo type e incluya el campo que corresponda al tipo de datos. Por ejemplo, si incluye una cadena, el atributo tendría el siguiente formato:

{ "key": "string", "value": { "stringValue": "string", "type": "STRING" } }

También puede ingerir metadatos de un archivo con la extensión .metadata.json en una ubicación de S3. Para obtener más información sobre el formato de un archivo de metadatos, consulte la sección Campos de metadatos del documento en Conexión a Amazon S3 para la base de conocimiento.

Si los metadatos provienen de un archivo S3, el DocumentMetadataobjeto del metadata campo debe tener el siguiente formato:

{ "s3Location": { "bucketOwnerAccountId": "string", "uri": "string" }, "type": "S3_LOCATION" } }

Incluya el propietario del bucket de S3 que contiene el archivo de metadatos en el campo bucketOwnerAccountId y el URI de S3 del archivo de metadatos en el campo uri.

aviso

Si ha definido el contenido como insertado, debe definir los metadatos como insertados.

Ingesta de un documento en una base de conocimiento conectada a un origen de datos de Amazon S3

dataSourceIdSi el que especifique pertenece a una fuente de datos de S3, puede añadir contenido y metadatos para cada KnowledgeBaseDocumentobjeto de la documents matriz.

nota

Para los orígenes de datos de S3, puede añadir contenido y metadatos solo desde una ubicación de S3.

El contenido de un documento de S3 que se va a añadir a S3 debe añadirse a un DocumentContentobjeto con el siguiente formato:

{ "dataSourceType": "string", "s3": { "s3Location": { "uri": "string" } } }

Incluya el propietario del bucket de S3 que contiene el documento en el campo bucketOwnerAccountId y el URI de S3 del documento en el campo uri.

Los metadatos de un documento añadido a un origen de datos personalizado se pueden definir con el siguiente formato:

{ "s3Location": { "bucketOwnerAccountId": "string", "uri": "string" }, "type": "S3_LOCATION" } }
aviso

Los documentos que se ingieren directamente en una base de conocimiento conectada a un origen de datos de S3 no se añaden al propio bucket de S3. Le recomendamos que añada también estos documentos al origen de datos de S3 para que no se eliminen ni sobrescriban si sincroniza el origen de datos.

Ejemplo de cuerpos de solicitud

Amplíe las siguientes secciones para ver los cuerpos de solicitud para diferentes casos de uso con IngestKnowledgeBaseDocuments:

El siguiente ejemplo muestra la adición de un documento de texto a un origen de datos personalizado:

PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "CUSTOM", "custom": { "customDocumentIdentifier": { "id": "MyDocument" }, "inlineContent": { "textContent": { "data": "Hello world!" }, "type": "TEXT" }, "sourceType": "IN_LINE" } } } ] }

El siguiente ejemplo muestra la adición de un documento PDF a un origen de datos personalizado:

PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "CUSTOM", "custom": { "customDocumentIdentifier": { "id": "MyDocument" }, "inlineContent": { "byteContent": { "data": "<Base64-encoded string>", "mimeType": "application/pdf" }, "type": "BYTE" }, "sourceType": "IN_LINE" } } } ] }

El siguiente ejemplo muestra la adición de un documento de texto a un origen de datos personalizado desde una ubicación de S3:

PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "CUSTOM", "custom": { "customDocumentIdentifier": { "id": "MyDocument" }, "s3": { "s3Location": { "uri": "amzn-s3-demo-bucket" } }, "sourceType": "S3" } } } ] }

En el siguiente ejemplo, se muestra la adición insertada de un documento a un origen de datos personalizado junto con los metadatos que contienen dos atributos:

PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "CUSTOM", "custom": { "customDocumentIdentifier": { "id": "MyDocument" }, "inlineContent": { "textContent": { "data": "Hello world!" }, "type": "TEXT" }, "sourceType": "IN_LINE" } }, "metadata": { "inlineAttributes": [ { "key": "genre", "value": { "stringValue": "pop", "type": "STRING" } }, { "key": "year", "value": { "numberValue": 1988, "type": "NUMBER" } } ], "type": "IN_LINE_ATTRIBUTE" } } ] }

El siguiente ejemplo muestra la adición de un documento junto con los metadatos a un origen de datos de S3. Puede incluir los metadatos solo a través de S3:

PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "S3", "s3": { "s3Location": { "uri": "amzn-s3-demo-bucket" } } }, "metadata": { "s3Location": { "bucketOwnerId": "111122223333", "uri": "amzn-s3-demo-bucket" }, "type": "S3_LOCATION" } } ] }