

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Ingerir documentos diretamente em uma base de conhecimento
<a name="kb-direct-ingestion-add"></a>

Este tópico descreve como ingerir documentos diretamente em uma base de conhecimento. As restrições se aplicam aos tipos de documento que você pode ingerir diretamente, dependendo da fonte de dados. Consulte a seguinte tabela para ver as restrições sobre os métodos que é possível usar para especificar os documentos a serem ingeridos:


****  

| Tipo de fonte de dados | Documento definido em linha | Local do Amazon S3 | 
| --- | --- | --- | 
| Amazon S3 | ![\[Red circular icon with an X symbol, indicating cancellation or denial.\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/icons/icon-no.png)Não | ![\[Green circular icon with a white checkmark symbol inside.\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/icons/icon-yes.png)Sim | 
| Personalizada | ![\[Green circular icon with a white checkmark symbol inside.\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/icons/icon-yes.png)Sim | ![\[Green circular icon with a white checkmark symbol inside.\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/icons/icon-yes.png)Sim | 

Expanda a seção que corresponde ao seu caso de uso:

**nota**  
Ao usar o console, você pode ingerir até dez documentos diretamente na base de conhecimento. Se, em vez disso, você usar a API `IngestKnowledgeBaseDocuments`, poderá ingerir até 25 documentos na base de conhecimento. Para ter mais informações sobre essa cota, consulte [Cotas de serviço do Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#limits_bedrock) no *Guia de referência da AWS *.

## Usar o console
<a name="kb-direct-ingestion-add-console"></a>

Para adicionar ou modificar documentos diretamente no Console de gerenciamento da AWS, faça o seguinte:

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console Amazon Bedrock. Em seguida, abra o console Amazon Bedrock em [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. No painel de navegação à esquerda, selecione **Bases de conhecimento**.

1. Na seção **Bases de conhecimento**, selecione a base de conhecimento para ingerir documentos nela.

1. Na seção **Fonte de dados**, selecione a fonte de dados para a qual você deseja adicionar, modificar ou excluir documentos.

1. Na seção **Documentos**, escolha **Adicionar documentos**. Depois, siga um destes procedimentos:
   + Para adicionar ou modificar um documento diretamente, selecione **Adicionar documentos diretamente**. Faça o seguinte:

     1. No campo **Identificador do documento**, especifique um nome exclusivo para o documento. Se você especificar um nome que já existe na fonte de dados, o documento será substituído.

     1. Para fazer upload de um documento, selecione **Fazer upload**. Para definir um documento em linha, selecione **Adicionar documento em linha**, escolha um formato e insira o texto do documento na caixa.

     1. (Opcional) Para associar metadados ao documento, selecione **Adicionar metadados** e insira chave, tipo e valor.
   + Para adicionar ou modificar um documento especificando sua localização no S3, selecione **Adicionar documentos do S3**. Faça o seguinte:

     1. No campo **Identificador do documento**, especifique um nome exclusivo para o documento. Se você especificar um nome que já existe na fonte de dados, o documento será substituído.

     1. Especifique se a **localização do documento no S3** está na sua AWS conta corrente ou em outra. Em seguida, especifique o URI do S3 do documento.

     1. (Opcional) Para associar metadados ao documento, escolha uma **fonte de metadados**. Especifique o URI do S3 dos metadados ou selecione **Adicionar metadados** e insira chave, tipo e valor.

1. Para ingerir o documento e todos os metadados associados, escolha **Adicionar**.

## Usar a API
<a name="kb-direct-ingestion-add-api"></a>

Para ingerir documentos diretamente em uma base de conhecimento usando a API do Amazon Bedrock, envie uma [IngestKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_IngestKnowledgeBaseDocuments.html)solicitação com um [endpoint de tempo de construção do Agents for Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) e especifique a ID da base de conhecimento e da fonte de dados à qual ela está conectada.

**nota**  
Se você especificar um identificador de documento ou um local do S3 que já exista na base de conhecimento, o documento será substituído pelo novo conteúdo.

O corpo da solicitação contém um campo,`documents`, que mapeia para uma matriz de [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objetos, cada um representando o conteúdo e os metadados opcionais de um documento para adicionar à fonte de dados e ingerir na base de conhecimento. Um objeto [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html) contém os seguintes campos:
+ conteúdo — mapeia para um [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto contendo informações sobre o conteúdo do documento a ser adicionado.
+ metadados — (Opcional) Mapeia para um [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objeto contendo informações sobre os metadados do documento a ser adicionado. Para ter mais informações sobre como usar metadados durante a recuperação, consulte a seção **Metadados e filtragem** em [Configurar e personalizar consultas e geração de respostas](kb-test-config.md).

Selecione um tópico para saber como ingerir documentos para diferentes tipos de fonte de dados ou ver exemplos:

**Topics**
+ [Ingerir um documento em uma base de conhecimento conectada a uma fonte de dados personalizada](#kb-direct-ingestion-add-custom)
+ [Ingerir um documento em uma base de conhecimento conectada a uma fonte de dados do Amazon S3](#kb-direct-ingestion-add-s3)
+ [Exemplo de corpo de solicitação](#w2aac28c10c23c19c17c11b3c19)

### Ingerir um documento em uma base de conhecimento conectada a uma fonte de dados personalizada
<a name="kb-direct-ingestion-add-custom"></a>

Se o `dataSourceId` que você especificar pertencer a uma fonte de dados personalizada, você poderá adicionar conteúdo e metadados para cada [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objeto na `documents` matriz.

O conteúdo de um documento adicionado a uma fonte de dados personalizada pode ser definido das seguintes maneiras:

#### Definir o documento em linha
<a name="kb-direct-ingestion-add-custom-inline"></a>

É possível definir os seguintes tipos de documento em linha:

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

Se o documento for texto, o [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto deverá estar no seguinte formato:

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

Inclua um ID para o documento no campo `id` e o texto do documento no campo `data`.

------
#### [ Bytes ]

Se o documento contiver mais do que texto, converta-o em uma string em base64. O [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto deve então estar no seguinte formato:

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

Inclua um ID para o documento no campo `id`, o documento codificado em base64 no campo `data` e o tipo de MIME no campo `mimeType`.

------

#### Ingerir o documento do S3
<a name="w2aac28c10c23c19c17c11b3c15b7b3"></a>

Se você estiver ingerindo um documento de um local do S3, o [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto no `content` campo deverá ter o seguinte formato:

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

Inclua um ID para o documento no campo `id`, o proprietário do bucket do S3 que contém o documento no campo `bucketOwnerAccountId` e o URI do S3 do documento no campo `uri`.

Os metadados de um documento podem ser definidos das seguintes maneiras:

#### Definir os metadados em linha
<a name="w2aac28c10c23c19c17c11b3c15c11b1"></a>

Se você definir os metadados em linha, o [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objeto no `metadata` campo deverá estar no seguinte 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 você adicionar, defina a chave no campo `key`. Especifique o tipo de dados do valor no campo `type` e inclua o campo que corresponde ao tipo de dados. Por exemplo, se você incluir uma string, o atributo estará no seguinte formato:

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

#### Ingerir os metadados do S3
<a name="w2aac28c10c23c19c17c11b3c15c11b3"></a>

Também é possível ingerir metadados de um arquivo com a extensão `.metadata.json` em um local do S3. Para ter mais informações sobre o formato de um arquivo de metadados, consulte a seção **Campos de metadados do documento** em [Conectar-se ao Amazon S3 para obter sua base de conhecimento](s3-data-source-connector.md).

Se os metadados forem de um arquivo S3, o [DocumentMetadata](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentMetadata.html)objeto no `metadata` campo deverá estar no seguinte formato:

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

Inclua o proprietário do bucket do S3 que contém o arquivo de metadados no campo `bucketOwnerAccountId` e o URI do S3 do arquivo de metadados no campo `uri`.

**Atenção**  
Se você definiu o conteúdo em linha, deverá definir os metadados em linha.

### Ingerir um documento em uma base de conhecimento conectada a uma fonte de dados do Amazon S3
<a name="kb-direct-ingestion-add-s3"></a>

Se o `dataSourceId` que você especificar pertencer a uma fonte de dados do S3, você poderá adicionar conteúdo e metadados para cada [KnowledgeBaseDocument](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseDocument.html)objeto na `documents` matriz.

**nota**  
Para fontes de dados do S3, é possível adicionar conteúdo e metadados somente de um local do S3.

O conteúdo de um documento do S3 a ser adicionado ao S3 deve ser adicionado a um [DocumentContent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DocumentContent.html)objeto no seguinte formato:

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

Inclua o proprietário do bucket do S3 que contém o documento no campo `bucketOwnerAccountId` e o URI do S3 do documento no campo `uri`.

Os metadados de um documento adicionado a uma fonte de dados personalizada podem ser definidos no seguinte formato:

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

**Atenção**  
Os documentos que você ingere diretamente em uma base de conhecimento conectada a uma fonte de dados do S3 não são adicionados ao bucket do S3 em si. Recomendamos que você também adicione esses documentos à fonte de dados do S3 para que eles não sejam removidos ou substituídos se você sincronizar a fonte de dados.

### Exemplo de corpo de solicitação
<a name="w2aac28c10c23c19c17c11b3c19"></a>

Expanda as seções a seguir para ver o corpo da solicitação para diferentes casos de uso com `IngestKnowledgeBaseDocuments`:

#### Adicionar um documento de texto personalizado a uma fonte de dados personalizada e ingeri-lo
<a name="w2aac28c10c23c19c17c11b3c19b5b1"></a>

O seguinte exemplo mostra a adição de um documento de texto a uma fonte de dados personalizada:

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

#### Adicionar um documento codificado em base64 a uma fonte de dados personalizada e ingeri-lo
<a name="w2aac28c10c23c19c17c11b3c19b5b3"></a>

O seguinte exemplo mostra a adição de um documento PDF a uma fonte de dados personalizada:

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

#### Adicionar um documento de um local do S3 a uma base de conhecimento conectada a uma fonte de dados personalizada e ingeri-lo
<a name="w2aac28c10c23c19c17c11b3c19b5b5"></a>

O seguinte exemplo mostra a adição de um documento de texto a uma fonte de dados personalizada de um local do 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"
            }
         }
     }
   ]
}
```

#### Adicionar um documento em linha a uma base de conhecimento conectada a uma fonte de dados personalizada e incluir metadados em linha
<a name="w2aac28c10c23c19c17c11b3c19b5b7"></a>

O seguinte exemplo mostra a adição em linha a uma fonte de dados personalizada de um documento com metadados que contêm dois 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"
         }
     }
   ]
}
```

#### Adicionar um documento a uma base de conhecimento conectada a uma fonte de dados do S3 e incluir metadados para ele
<a name="w2aac28c10c23c19c17c11b3c19b5b9"></a>

O exemplo a seguir mostra a adição de um documento com metadados a uma fonte de dados do S3. É possível incluir os metadados somente por meio do 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"
            }
        }
    ]
}
```