本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將資料轉換為知識庫
若要建立知識庫,請連線至您想要讓知識庫能夠存取的支援資料來源。您的知識庫將能夠回應使用者查詢,或根據擷取的資料產生回應。
Amazon Bedrock 知識庫支援各種文件,包括文字、影像或包含資料表、圖表和其他影像的多模態文件。多模態資料是指文字和視覺化資料的組合。包含非結構化資料的檔案類型範例為文字、Markdown、HTML 和 PDF。
下列各節說明 Amazon Bedrock 知識庫支援的資料類型,以及您可以針對每種資料類型將知識庫連線到的服務:
非結構化資料
非結構化資料是指未強制進入預先定義結構的資料。Amazon Bedrock 知識庫支援連線至下列服務,將非結構化資料新增至您的知識庫:
Amazon S3
Confluence (預覽)
Microsoft SharePoint (預覽)
Salesforce (預覽)
Web Crawler (預覽)
自訂資料來源 (允許直接將資料擷取至知識庫,而不需要同步)
資料來源包含文件的原始形式。為了最佳化查詢程序,知識庫會將您的原始資料轉換為向量嵌入,此為資料的數值表示,以量化與也轉換為向量嵌入之查詢的相似性。Amazon Bedrock 知識庫會在轉換資料來源的程序中使用下列資源:
-
嵌入模型 – 將您的資料轉換為向量嵌入的基礎模型。對於同時包含文字和影像的多模態資料,您可以使用多模態內嵌模型,例如 Amazon Titan 多模態內嵌 G1 或 Cohere Embed v3。
-
向量存放區 – 存放資料向量表示的服務。支援下列向量存放區:
-
Amazon OpenSearch Serverless
-
Amazon Neptune
-
Amazon Aurora (RDS)
-
Pinecone
-
Redis Enterprise Cloud
-
MongoDB Atlas
-
將資料轉換為向量嵌入的程序稱為擷取。將您的資料轉換為知識庫的擷取程序涉及下列步驟:
擷取
-
您選擇的剖析器會剖析資料。如需剖析的詳細資訊,請參閱 剖析資料來源的選項。
-
資料來源中的每個文件都會分割為區塊、資料細分,可由字符數量和其他參數定義。如需分塊的詳細資訊,請參閱 內容群集如何適用於知識庫。
-
您選擇的嵌入模型會將資料轉換為向量嵌入。對於多模態內容,影像會內嵌為視覺化向量,而文字會內嵌為文字向量,因此可跨這兩種模態進行搜尋。
-
向量嵌入會寫入您選擇的向量存放區中的向量索引。
擷取程序完成後,您的知識庫已準備好進行查詢。如需有關如何從您的知識庫查詢和擷取資訊的資訊,請參閱 使用 Amazon Bedrock 知識庫從資料來源擷取資訊。
如果您變更資料來源,則必須同步變更以將新增、修改和刪除擷取至知識庫。有些資料來源支援將檔案直接擷取或刪除至知識庫,無需將資料來源修改和擷取視為個別步驟,也無需一律執行完整同步。若要了解如何將文件直接擷取至您的知識庫和支援該文件的資料來源,請參閱 將變更直接擷取到知識庫。
Amazon Bedrock 知識庫提供各種選項,可讓您自訂資料的擷取方式。如需自訂此程序的詳細資訊,請參閱 自訂您的知識庫。
結構化資料
結構化資料是指表格式資料,其格式由其存在的資料存放區預先定義。Amazon Bedrock 知識庫會透過 Amazon Redshift 查詢引擎連線至支援的結構化資料存放區。Amazon Bedrock 知識庫提供全受管機制,可分析查詢模式、查詢歷史記錄和結構描述中繼資料,將自然語言查詢轉換為 SQL 查詢。然後,這些轉換後的查詢會用來從支援的資料來源擷取相關資訊。
Amazon Bedrock 知識庫支援連線至下列服務,將結構化資料存放區新增至您的知識庫:
Amazon Redshift
AWS Glue Data Catalog(AWS Lake Formation)
如果您將知識庫連線至結構化資料存放區,則不需要將資料轉換為向量嵌入。相反地,Amazon Bedrock 知識庫可以直接查詢結構化資料存放區。在查詢期間,Amazon Bedrock 知識庫可以將使用者查詢轉換為 SQL 查詢,以擷取與使用者查詢相關的資料,並產生更準確的回應。您也可以在不擷取資料的情況下產生 SQL 查詢,並將其用於其他工作流程。
例如,資料庫儲存庫包含下表,其中包含客戶及其購買的相關資訊:
| 客戶 ID | 2020 年購買的金額 | 2021 年購買的金額 | 2022 年購買的金額 | 至今購買的總金額 |
|---|---|---|---|---|
| 1 | 200 | 300 | 500 | 1000 |
| 2 | 150 | 100 | 120 | 370 |
| 3 | 300 | 300 | 300 | 900 |
| 4 | 720 | 180 | 100 | 900 |
| 5 | 500 | 400 | 100 | 1000 |
| 6 | 900 | 800 | 1000 | 2700 |
| 7 | 470 | 420 | 400 | 1290 |
| 8 | 250 | 280 | 250 | 780 |
| 9 | 620 | 830 | 740 | 2190 |
| 10 | 300 | 200 | 300 | 800 |
如果使用者查詢顯示「為我提供支出前 5 的客戶的摘要」,知識庫可以執行下列動作:
-
將查詢轉換為 SQL 查詢。
-
從包含下列項目的資料表傳回摘錄:
-
相關資料表欄「客戶 ID」和「至今購買的總金額」
-
包含 10 個最高支出客戶總購買金額的資料表列
-
-
產生回應,說明哪些客戶是支出前 5 的客戶,以及他們購買的金額。
知識庫可以為其產生資料表摘錄的其他查詢範例包括:
-
「2020 年支出前 5 的客戶」
-
「2020 年購買金額最高的客戶」
-
「從 2020 年至 2022 年購買金額前 5 的客戶」
-
「2020 年至 2022 年最高支出前 5 的客戶」
-
「總購買金額低於 10 USD 的客戶」
-
「最低支出前 5 的客戶」
查詢愈具體或詳細,知識庫愈能縮小要傳回的確切資訊。例如,不是查詢「2020 年支出前 10 的客戶」,更具體的查詢是「尋找 2020 年客戶至今 10 次最高購買金額」。特定查詢是指客戶支出資料庫資料表中的資料欄名稱「至今購買的總金額」,並指出資料應該按「最高」排序。