So nehmen Sie Dokumente direkt in eine Wissensdatenbank auf
In diesem Thema wird beschrieben, wie Dokumente direkt in eine Wissensdatenbank aufgenommen werden. Je nach Datenquelle gelten Einschränkungen für die Dokumenttypen, die Sie direkt aufnehmen können. In der folgenden Tabelle finden Sie Einschränkungen für die Methoden, mit denen Sie angeben können, welche Dokumente aufgenommen werden sollen:
| Datenquellentyp | Inline definiertes Dokument | Dokument im Amazon-S3-Speicherort |
|---|---|---|
| Amazon S3 |
|
|
| Benutzerdefiniert |
|
|
Erweitern Sie den Abschnitt, der Ihrem Anwendungsfall entspricht:
Anmerkung
Wenn Sie die Konsole verwenden, können Sie bis zu 10 Dokumente direkt in Ihre Wissensdatenbank aufnehmen. Wenn Sie stattdessen die IngestKnowledgeBaseDocuments-API verwenden, können Sie bis zu 25 Dokumente in Ihre Wissensdatenbank aufnehmen. Weitere Informationen zu diesen Kontingenten finden Sie unter Amazon-Bedrock-Servicekontingente in der Allgemeinen Referenz zu AWS.
Wenn Sie Dokumente direkt in der AWS-Managementkonsole hinzufügen oder modifizieren möchten, gehen Sie wie folgt vor:
-
Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die zur Verwendung der Amazon-Bedrock-Konsole berechtigt ist. Öffnen Sie dann die Amazon-Bedrock-Konsole unter https://console.aws.amazon.com/bedrock
. -
Wählen Sie im linken Navigationsbereich Wissensdatenbank aus.
-
Wählen Sie im Abschnitt Wissensdatenbanken die Wissensdatenbank aus, in die Sie Dokumente aufnehmen möchten.
-
Wählen Sie im Abschnitt Datenquelle die Datenquelle aus, in der Sie Dokumente hinzufügen, modifizieren oder löschen möchten.
-
Wählen Sie im Abschnitt Dokumente die Option Dokumente hinzufügen aus. Führen Sie dann einen der folgenden Schritte aus:
-
Um ein Dokument direkt hinzuzufügen oder zu ändern, wählen Sie Dokumente direkt hinzufügen aus. Führen Sie dann die folgenden Schritte aus:
-
Geben Sie im Feld Dokument-ID einen eindeutigen Namen für das Dokument ein. Wenn Sie einen Namen angeben, der bereits in der Datenquelle vorhanden ist, wird das Dokument ersetzt.
-
Um ein Dokument hochzuladen, klicken Sie auf Hochladen. Um ein Dokument inline zu definieren, klicken Sie auf Dokument inline hinzufügen, wählen ein Format aus und geben den Text des Dokuments in das Feld ein.
-
(Optional) Um Metadaten mit dem Dokument zu verknüpfen, klicken Sie auf Metadaten hinzufügen und geben einen Schlüssel, einen Typ und einen Wert ein.
-
-
Um ein Dokument hinzuzufügen oder zu modifizieren, indem Sie seinen S3-Speicherort angeben, klicken Sie auf S3-Dokumente hinzufügen. Führen Sie dann die folgenden Schritte aus:
-
Geben Sie im Feld Dokument-ID einen eindeutigen Namen für das Dokument ein. Wenn Sie einen Namen angeben, der bereits in der Datenquelle vorhanden ist, wird das Dokument ersetzt.
-
Geben Sie an, ob sich der S3-Speicherort des Dokuments in Ihrem aktuellen AWS-Konto oder einem anderen Konto befindet. Geben Sie dann die S3-URI des Dokuments an.
-
(Optional) Um Metadaten mit dem Dokument zu verknüpfen, wählen Sie eine Metadatenquelle aus. Geben Sie die S3-URI der Metadaten an oder klicken Sie auf Metadaten hinzufügen und geben einen Schlüssel, einen Typ und einen Wert ein.
-
-
-
Um das Dokument und alle zugehörigen Metadaten aufzunehmen, klicken Sie auf Hinzufügen.
Um Dokumente mithilfe der Amazon-Bedrock-API direkt in eine Wissensdatenbank aufzunehmen, senden Sie eine IngestKnowledgeBaseDocuments-Anfrage mit einem Build-Time-Endpunkt für Agenten für Amazon Bedrock und geben die ID der Wissensdatenbank und der Datenquelle an, mit der sie verbunden ist.
Anmerkung
Wenn Sie eine Dokument-ID oder einen S3-Speicherort angeben, der bereits in der Wissensdatenbank vorhanden ist, wird das Dokument mit dem neuen Inhalt überschrieben.
Der Anfragetext enthält ein Feld, nämlich documents, das einem Array von KnowledgeBaseDocument-Objekten zugeordnet ist, von denen jedes den Inhalt und optionale Metadaten eines Dokuments darstellt, das der Datenquelle hinzugefügt und in die Wissensdatenbank aufgenommen werden soll. Jedes KnowledgeBaseDocument-Objekt enthält die folgenden Felder:
-
content – Ist einem DocumentContent-Objekt zugeordnet, das Informationen über den Inhalt des hinzuzufügenden Dokuments enthält.
-
metadata – (Optional) Ist einem DocumentMetadata-Objekt zugeordnet, das Informationen über die Metadaten des hinzuzufügenden Dokuments enthält. Weitere Informationen zur Verwendung von Metadaten beim Abrufen finden Sie im Abschnitt Metadaten und Filterung unter So konfigurieren Sie Abfragen und die Antwortgenerierung und passen diese an.
Wählen Sie ein Thema aus, um zu erfahren, wie Sie Dokumente für verschiedene Datenquellentypen aufnehmen können, oder um sich Beispiele anzusehen:
Themen
So nehmen Sie ein Dokument in eine Wissensdatenbank auf, die mit einer benutzerdefinierten Datenquelle verbunden ist
Wenn die von Ihnen angegebene dataSourceId zu einer benutzerdefinierten Datenquelle gehört, können Sie Inhalte und Metadaten für jedes KnowledgeBaseDocument-Objekt im documents-Array hinzufügen.
Der Inhalt eines Dokuments, das einer benutzerdefinierten Datenquelle hinzugefügt wird, kann auf folgende Weise definiert werden:
Sie können die folgenden Dokumenttypen inline definieren:
Wenn Sie ein Dokument von einem S3-Speicherort aufnehmen, sollte das DocumentContent-Objekt im Feld content die folgende Form haben:
{ "custom": { "customDocumentIdentifier": { "id": "string" }, "s3Location": { "bucketOwnerAccountId": "string", "uri": "string" }, "sourceType": "S3" }, "dataSourceType": "CUSTOM" }
Geben Sie eine ID für das Dokument im id-Feld ein, den Besitzer des S3-Buckets, der das Dokument enthält im Feld bucketOwnerAccountId und die S3-URI des Dokuments im Feld uri.
Die Metadaten für ein Dokument können auf folgende Weise definiert werden:
Wenn Sie die Metadaten inline definieren, sollte das DocumentMetadata-Objekt im Feld metadata das folgende Format haben:
{ "inlineAttributes": [ { "key": "string", "value": { "stringValue": "string", "booleanValue": boolean, "numberValue": number, "stringListValue": [ "string" ], "type": "STRING" | "BOOLEAN" | "NUMBER" | "STRING_LIST" } } ], "type": "IN_LINE_ATTRIBUTE" }
Definieren Sie für jedes Attribut, das Sie hinzufügen, den Schlüssel im key-Feld. Geben Sie den Datentyp des Werts im Feld type an und schließen Sie das Feld ein, das dem Datentyp entspricht. Wenn Sie beispielsweise eine Zeichenfolge angeben, hat das Attribut das folgende Format:
{ "key": "string", "value": { "stringValue": "string", "type": "STRING" } }
Sie können Metadaten aus einer Datei mit der Erweiterung .metadata.json auch an einem S3-Speicherort aufnehmen. Weitere Informationen über das Format einer Metadatendatei finden Sie im Abschnitt Felder für Dokumentmetadaten unter Verbinden mit Amazon S3 für Ihre Wissensdatenbank.
Wenn die Metadaten aus einer S3-Datei stammen, sollte das DocumentMetadata-Objekt im Feld metadata das folgende Format haben:
{ "s3Location": { "bucketOwnerAccountId": "string", "uri": "string" }, "type": "S3_LOCATION" } }
Geben Sie den Besitzer des S3-Buckets, der die Metadatendatei enthält, im Feld bucketOwnerAccountId an und die S3-URI der Metadatendatei im Feld uri.
Warnung
Wenn Sie den Inhalt inline definiert haben, müssen Sie die Metadaten inline definieren.
So nehmen Sie ein Dokument in eine Wissensdatenbank auf, die mit einer Amazon-S3-Datenquelle verbunden ist
Wenn die von Ihnen angegebene dataSourceId zu einer Amazon-S3-Datenquelle gehört, können Sie Inhalte und Metadaten für jedes KnowledgeBaseDocument-Objekt im documents-Array hinzufügen.
Anmerkung
Für S3-Datenquellen können Sie Inhalte und Metadaten nur von einem S3-Speicherort hinzufügen.
Der Inhalt eines S3-Dokuments, das zu S3 hinzugefügt werden soll, sollte einem DocumentContent-Objekt im folgenden Format hinzugefügt werden:
{ "dataSourceType": "string", "s3": { "s3Location": { "uri": "string" } } }
Geben Sie den Besitzer des S3-Buckets, der das Dokument enthält, im Feld bucketOwnerAccountId und die S3-URI des Dokuments im Feld uri an.
Die Metadaten eines Dokuments, das einer benutzerdefinierten Datenquelle hinzugefügt wird, kann auf folgende Weise definiert werden:
{ "s3Location": { "bucketOwnerAccountId": "string", "uri": "string" }, "type": "S3_LOCATION" } }
Warnung
Dokumente, die Sie direkt aus einer Wissensdatenbank aufnehmen, die mit einer S3-Datenquelle verbunden ist, werden nicht zu dem eigentlichen S3-Bucket hinzugefügt. Wir empfehlen, dass Sie diese Dokumente auch zur S3-Datenquelle hinzufügen, damit sie nicht entfernt oder überschrieben werden, wenn Sie Ihre Datenquelle synchronisieren.
Beispielanforderungstext
Erweitern Sie die folgenden Abschnitte, um Anfragetexte für verschiedene Anwendungsfälle mit IngestKnowledgeBaseDocuments zu sehen:
Das folgende Beispiel zeigt das Hinzufügen eines Textdokuments zu einer benutzerdefinierten Datenquelle:
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" } } } ] }
Das folgende Beispiel zeigt das Hinzufügen eines PDF-Dokuments zu einer benutzerdefinierten Datenquelle:
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" } } } ] }
Das folgende Beispiel zeigt das Hinzufügen eines einzelnen Textdokuments zu einer benutzerdefinierten Datenquelle von einem S3-Speicherort:
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" } } } ] }
Das folgende Beispiel zeigt das Inline-Hinzufügen eines Dokuments zu einer benutzerdefinierten Datenquelle zusammen mit Metadaten, die zwei Attribute enthalten:
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" } } ] }
Das folgende Beispiel zeigt das Hinzufügen eines Dokuments zusammen mit Metadaten zu einer S3-Datenquelle. Sie können die Metadaten nur über S3 mit einbeziehen:
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" } } ] }