

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
<a name="kb-direct-ingestion-add"></a>

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 | ![](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/images/icons/icon-no.png)No | ![](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/images/icons/icon-yes.png)Sí | 
| Personalizada | ![](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/images/icons/icon-yes.png)Sí | ![](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/images/icons/icon-yes.png)Sí | 

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](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#limits_bedrock) en la *guía Referencia general de AWS *.

## Uso de la consola
<a name="kb-direct-ingestion-add-console"></a>

Para añadir o modificar documentos directamente en el Consola 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 Amazon Bedrock en [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

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

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

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

1. 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.

     1. 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.

     1. (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.

     1. 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.

     1. (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.

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

## Uso de la API de
<a name="kb-direct-ingestion-add-api"></a>

Para incorporar documentos directamente a una base de conocimientos mediante la API de Amazon Bedrock, envíe una [IngestKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_IngestKnowledgeBaseDocuments.html)solicitud con un [punto límite de tiempo de compilación de Agents for Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) 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 [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objetos, 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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html) contiene los siguientes campos:
+ contenido: se asigna a un [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto que contiene información sobre el contenido del documento que se va a añadir.
+ metadatos: (opcional) se asigna a un [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objeto que contiene información sobre los metadatos del documento que se va a añadir. Para obtener más información sobre cómo utilizar los metadatos durante la recuperación, consulte la sección **Metadatos y filtrado** en [Configuración y personalización de las consultas y la generación de respuestas](kb-test-config.md).

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

**Topics**
+ [Ingesta de un documento en una base de conocimiento conectada a un origen de datos personalizado](#kb-direct-ingestion-add-custom)
+ [Ingesta de un documento en una base de conocimiento conectada a un origen de datos de Amazon S3](#kb-direct-ingestion-add-s3)
+ [Ejemplo de cuerpos de solicitud](#w2aac32c12c23c19c17c11b3c19)

### Ingesta de un documento en una base de conocimiento conectada a un origen de datos personalizado
<a name="kb-direct-ingestion-add-custom"></a>

`dataSourceId`Si los que especifique pertenecen a una fuente de datos personalizada, puede añadir contenido y metadatos para cada [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objeto de la `documents` matriz.

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

#### Definición del documento como insertado
<a name="kb-direct-ingestion-add-custom-inline"></a>

Puede definir los siguientes tipos de documentos como insertados:

------
#### [ Text ]

Si el documento es texto, el [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto 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 algo más que texto, conviértalo en un Base64-string. En ese caso, el [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto 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 identificador para el documento en el `id` campo, el Base64-encoded documento en el `data` campo y el tipo MIME en el `mimeType` campo.

------

#### Ingesta del documento desde S3
<a name="w2aac32c12c23c19c17c11b3c15b7b3"></a>

Si va a ingerir un documento desde una ubicación S3, el [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto 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:

#### Definición de los metadatos como insertados
<a name="w2aac32c12c23c19c17c11b3c15c11b1"></a>

Si define los metadatos en línea, el [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objeto 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"
    }
}
```

#### Ingesta de los metadatos desde S3
<a name="w2aac32c12c23c19c17c11b3c15c11b3"></a>

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](s3-data-source-connector.md).

Si los metadatos provienen de un archivo S3, el [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objeto 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
<a name="kb-direct-ingestion-add-s3"></a>

`dataSourceId`Si el que especifique pertenece a una fuente de datos de S3, puede añadir contenido y metadatos para cada [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objeto 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 [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto 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
<a name="w2aac32c12c23c19c17c11b3c19"></a>

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

#### Adición e ingesta de un documento de texto personalizado en un origen de datos personalizado
<a name="w2aac32c12c23c19c17c11b3c19b5b1"></a>

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"
            }
         }
     }
   ]
}
```

#### Agregue un Base64-encoded documento a una fuente de datos personalizada e ingiéralo
<a name="w2aac32c12c23c19c17c11b3c19b5b3"></a>

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"
            }
         }
     }
   ]
}
```

#### Adición e ingesta de un documento desde una ubicación de S3 en una base de conocimiento conectada a un origen de datos personalizado
<a name="w2aac32c12c23c19c17c11b3c19b5b5"></a>

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"
            }
         }
     }
   ]
}
```

#### Adición de un documento insertado a una base de conocimiento conectada a un origen de datos personalizado e inclusión de los metadatos insertados
<a name="w2aac32c12c23c19c17c11b3c19b5b7"></a>

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"
         }
     }
   ]
}
```

#### Adición de un documento insertado a una base de conocimiento conectada a un origen de datos de S3 e inclusión de sus metadatos
<a name="w2aac32c12c23c19c17c11b3c19b5b9"></a>

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"
            }
        }
    ]
}
```