Importare documenti direttamente in una knowledge base - Amazon Bedrock

Importare documenti direttamente in una knowledge base

Questo argomento illustra come importare documenti direttamente in una knowledge base. In base all’origine dati, si applicano restrizioni ai tipi di documenti che è possibile importare direttamente. Per le restrizioni sui metodi che si possono utilizzare per specificare i documenti da importare, consulta la tabella seguente:

Tipo di origine dati Documento definito in linea Documento nella posizione di 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.
Personalizza Green circular icon with a white checkmark symbol inside. Green circular icon with a white checkmark symbol inside.

Espandi la sezione corrispondente al caso d’uso specifico:

Nota

Quando usi la console, puoi importare fino a 10 documenti direttamente nella knowledge base. Se invece utilizzi l’API IngestKnowledgeBaseDocuments, nella knowledge base puoi importare fino a 25 documenti. Per ulteriori informazioni sulla quota, consulta Quote di servizio di Amazon Bedrock nella guida Riferimenti generali di AWS.

Per aggiungere o modificare documenti direttamente nella Console di gestione AWS, esegui queste operazioni:

  1. Accedi alla Console di gestione AWS con un’identità IAM che disponga delle autorizzazioni per utilizzare la console Amazon Bedrock. Quindi, apri la console Amazon Bedrock all’indirizzo https://console.aws.amazon.com/bedrock.

  2. Nel riquadro di navigazione a sinistra, scegli Knowledge base.

  3. Nella sezione Knowledge base, seleziona la knowledge base in cui importare i documenti.

  4. Nella sezione Origine dati, seleziona l’origine dati per cui desideri aggiungere, modificare o eliminare documenti.

  5. Nella sezione Documenti, scegli Aggiungi documenti. Effettua quindi una delle seguenti operazioni:

    • Per aggiungere o modificare direttamente un documento, seleziona Aggiungi documenti direttamente. Successivamente, esegui queste operazioni:

      1. Nel campo Identificatore del documento, specifica un nome univoco per il documento. Se si specifica un nome già esistente nell’origine dati, il documento viene sostituito.

      2. Per caricare un documento, seleziona Carica. Per definire un documento in linea, seleziona Aggiungi documento in linea, scegli un formato e inserisci il testo del documento nella casella.

      3. (Facoltativo) Per associare i metadati al documento, seleziona Aggiungi metadati e immetti una chiave, un tipo e un valore.

    • Per aggiungere o modificare un documento specificandone la posizione S3, seleziona Aggiungi documenti S3. Successivamente, esegui queste operazioni:

      1. Nel campo Identificatore del documento, specifica un nome univoco per il documento. Se si specifica un nome già esistente nell’origine dati, il documento viene sostituito.

      2. Specifica se la posizione S3 del documento si trova nell’account AWS corrente o in un altro. Successivamente, specifica l’URI S3 del documento.

      3. (Facoltativo) Per associare i metadati al documento, scegli un valore nel campo Origine dei metadati. Specifica l’URI S3 dei metadati o seleziona Aggiungi metadati e immetti una chiave, un tipo e un valore.

  6. Per importare il documento e i metadati associati, scegli Aggiungi.

Per importare documenti direttamente in una knowledge base con l’API Amazon Bedrock, invia una richiesta IngestKnowledgeBaseDocuments con un endpoint Agent per Amazon Bedrock in fase di compilazione e specifica l’ID della knowledge base e dell’origine dati a cui è connesso.

Nota

Se si specifica un identificatore del documento o una posizione S3 già esistente nella knowledge base, il documento viene sovrascritto con il nuovo contenuto.

Il corpo della richiesta contiene un campo, documents, che corrisponde a una serie di oggetti KnowledgeBaseDocument, ciascuno dei quali rappresenta il contenuto e i metadati facoltativi di un documento da aggiungere all’origine dati e da importare nella knowledge base. Ogni oggetto KnowledgeBaseDocument contiene i campi seguenti:

Seleziona un argomento per scoprire come importare documenti per diversi tipi di origini dati o per visualizzare esempi:

Importare un documento in una knowledge base connessa a un’origine dati personalizzata

Se l’oggetto dataSourceId specificato appartiene a un’origine dati personalizzata, è possibile aggiungere contenuto e metadati per ogni oggetto KnowledgeBaseDocument nell’array documents.

Il contenuto di un documento aggiunto a un’origine dati personalizzata può essere definito nei modi seguenti:

È possibile definire i seguenti tipi di documenti in linea:

Text

Se il documento contiene testo, l’oggetto DocumentContent deve avere il seguente formato:

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

Includi un ID per il documento nel campo id e il testo del documento nel campo data.

Bytes

Se il documento contiene altri elementi oltre al testo, convertilo in una stringa Base64. L’oggetto DocumentContent deve avere il seguente formato:

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

Includi un ID per il documento nel campo id, il documento con codifica Base64 nel data e il tipo MIME nel campo mimeType.

Se importi un documento da una posizione S3, l’oggetto DocumentContent nel campo content deve avere il seguente formato:

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

Includi un ID per il documento nel campo id, il proprietario del bucket S3 che contiene il documento nel campo bucketOwnerAccountId e l’URI S3 del documento nel campo uri.

I metadati di un documento possono essere definiti nei modi seguenti:

Se definisci i metadati in linea, l’oggetto DocumentMetadata nel campo metadata deve avere il seguente formato:

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

Per ogni attributo aggiunto, definisci la chiave nel campo key. Specifica il tipo di dati del valore nel campo type e includi il campo che corrisponde al tipo di dati. Ad esempio, se includi una stringa, l’attributo avrà il seguente formato:

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

Puoi anche importare i metadati da un file con estensione .metadata.json in una posizione S3. Per ulteriori informazioni sul formato di un file di metadati, consulta la sezione Campi di metadati del documento in Connettersi ad Amazon S3 per una knowledge base.

Se i metadati provengono da un file S3, l’oggetto DocumentMetadata nel campo metadata deve avere il seguente formato:

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

Includi il proprietario del bucket S3 che contiene il file di metadati nel campo bucketOwnerAccountId e l’URI S3 del file di metadati nel campo uri.

avvertimento

Se hai definito il contenuto in linea, anche i metadati devono essere definiti in linea.

Importare un documento in una knowledge base connessa a un’origine dati Amazon S3

Se l’oggetto dataSourceId specificato appartiene a un’origine dati S3, è possibile aggiungere contenuto e metadati per ogni oggetto KnowledgeBaseDocument nell’array documents.

Nota

Per le origini dati S3, puoi aggiungere contenuti e metadati solo da una posizione S3.

Il contenuto di un documento S3 da aggiungere a S3 deve essere aggiunto a un oggetto DocumentContent nel seguente formato:

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

Includi il proprietario del bucket S3 che contiene il documento nel campo bucketOwnerAccountId e l’URI S3 del documento nel campo uri.

I metadati di un documento aggiunto a un’origine dati personalizzata può essere definito nel seguente formato:

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

I documenti che importi direttamente in una knowledge base connessa a un’origine dati S3 non vengono aggiunti al bucket S3. Si consiglia di aggiungere questi documenti anche all’origine dati S3 in modo che non vengano rimossi né sovrascritti se si sincronizza l’origine dati.

Esempio di corpi della richiesta

Espandi le seguenti sezioni per visualizzare i corpi delle richieste per diversi casi d’uso con IngestKnowledgeBaseDocuments:

L’esempio seguente mostra l’aggiunta di un documento di testo a un’origine dati personalizzata:

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

L’esempio seguente mostra l’aggiunta di un documento PDF a un’origine dati personalizzata:

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

L’esempio seguente mostra l’aggiunta di un documento di testo a un’origine dati personalizzata da una posizione 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" } } } ] }

L’esempio seguente mostra l’aggiunta in linea a un’origine dati personalizzata di un documento e di metadati contenenti due attributi:

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

L’esempio seguente mostra l’aggiunta di un documento e dei metadati a un’origine dati S3. Puoi includere i metadati solo tramite 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" } } ] }