從 Cloud Storage 匯入

您可以透過兩種方式,從 Cloud Storage 資料表建立資料儲存庫:

  • 一次性擷取:將 Cloud Storage 資料夾或檔案中的資料匯入資料儲存庫。除非手動重新整理資料,否則資料儲存庫中的資料不會變更。

  • 定期擷取:從 Cloud Storage 資料夾或檔案匯入資料,並設定同步頻率,決定資料儲存庫從該 Cloud Storage 位置更新最新資料的頻率。

下表比較將 Cloud Storage 資料匯入 Gemini Enterprise 資料儲存庫的兩種方式。

一次性擷取 定期擷取
正式發布 (GA)。 公開測試。
必須手動重新整理資料。 資料每隔一、三或五天會自動更新。資料無法手動重新整理。
Gemini Enterprise 會從 Cloud Storage 中的一個資料夾或檔案建立單一資料儲存庫。 Gemini Enterprise 會建立資料連接器,並將資料儲存庫 (稱為「實體」資料儲存庫) 與指定檔案或資料夾建立關聯。每個 Cloud Storage 資料連接器只能有一個實體資料儲存庫。
如要將多個檔案、資料夾和 bucket 的資料合併至一個資料儲存庫,請先從一個 Cloud Storage 位置擷取資料,再從另一個位置擷取更多資料。 由於不支援手動匯入資料,實體資料儲存庫中的資料只能來自一個 Cloud Storage 檔案或資料夾。
支援資料來源存取控管。詳情請參閱「資料來源存取控管」。 不支援資料來源存取控管。匯入的資料可以包含存取控管機制,但系統不會遵循這些機制。
您可以使用Google Cloud 控制台或 API 建立資料儲存庫。 您必須使用控制台建立資料連接器及其實體資料儲存庫。
符合 CMEK 規定。 符合 CMEK 規範。

事前準備

如要從與 Gemini Enterprise 資料存放區專案不同的來源�專案匯入資料,請將下列 Identity and Access Management (IAM) 角色授予包含 Gemini Enterprise 資料存放區的專案中service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com服務帳戶: Google Cloud Google Cloud

從 Cloud Storage 匯入一次

如要從 Cloud Storage 擷取資料,請按照下列步驟,使用 Google Cloud 控制台或 API 建立資料儲存庫並擷取資料。

匯入資料前,請參閱「準備要擷取的資料」。

控制台

如要透過控制台擷取 Cloud Storage bucket 中的資料,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。

    Gemini Enterprise

  2. 前往「Data Stores」(資料儲存庫) 頁面。

  3. 點選「Create Data Store」(建立資料儲存庫)。

  4. 在「Select a data source」(選取資料來源) 頁面中,選取「Cloud Storage」。

  5. 在「Select a folder or file you want to import」(選取要匯入的資料夾或檔案) 專區,選取「Folder」(資料夾) 或「File」(檔案)。

  6. 按一下「Browse」(瀏覽),選擇準備擷取的資料,然後點選「Select」(選取)。或者,直接在「gs://」欄位中輸入位置。

  7. 選取要匯入的資料類型。

  8. 按一下「繼續」。

  9. 如果是一次性匯入結構化資料:

    1. 將欄位對應至主要屬性。

    2. 如果結構定義缺少重要欄位,請使用「Add new field」(新增欄位) 新增。

      詳情請參閱「關於自動偵測和編輯」。

    3. 按一下「繼續」。

  10. 選擇資料儲存庫的區域。

  11. 輸入資料儲存庫的名稱。

  12. 選用:如果選取非結構化文件,可以選取文件的剖析和分塊選項。如要比較剖析器,請參閱「剖析文件」。如要瞭解區塊劃分,請參閱「為 RAG 劃分文件區塊」。

    OCR 剖析器和版面配置剖析器可能會產生額外費用。請參閱「Document AI 功能定價」。

    如要選取剖析器,請展開「文件處理選項」,然後指定要使用的剖析器選項。

  13. 點選「建立」。

  14. 接著需要檢查擷取狀態,請前往「Data stores」(資料儲存庫) 頁面,點按資料儲存庫名稱,即可在相應的「Data」(資料) 頁面查看該儲存庫的詳細資料。「Activity」(活動) 分頁的狀態欄從「In progress」(進行中) 變為「Import completed」(匯入完成) 時,表示擷取作業已完成。

    視資料大小而定,擷取作業可能需要數分鐘至數小時才能完成。

REST

如要使用指令列建立資料儲存庫,並從 Cloud Storage 擷取資料,請按照下列步驟操作。

  1. 建立資料儲存庫。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
      "contentConfig": "CONTENT_REQUIRED",
    }'
    

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • DATA_STORE_ID:要建立的資料儲存庫 ID。這個 ID 只能使用小寫英文字母、數字、底線和連字號。
    • DATA_STORE_DISPLAY_NAME:要建立的資料儲存庫顯示名稱。

    選用:如要設定文件剖析功能,或為 RAG 啟用文件分塊功能,請指定 documentProcessingConfig 物件,並將其納入資料儲存庫建立要求。如果擷取的是掃描的 PDF,建議設定 PDF 的 OCR 剖析器。如要瞭解如何設定剖析或分塊選項,請參閱「剖析及分塊文件」。

  2. 從 Cloud Storage 匯入資料。

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "gcsSource": {
          "inputUris": ["INPUT_FILE_PATTERN_1", "INPUT_FILE_PATTERN_2"],
          "dataSchema": "DATA_SCHEMA",
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
        "errorConfig": {
          "gcsPrefix": "ERROR_DIRECTORY"
        }
      }'
    

    更改下列內容:

    • PROJECT_ID:專案的 ID。
    • DATA_STORE_ID:資料儲存庫的 ID。
    • INPUT_FILE_PATTERN:Cloud Storage 中包含文件的檔案模式。

      如果是結構化資料或含有中繼資料的非結構化資料,輸入檔案模式範例為 gs://<your-gcs-bucket>/directory/object.json,而與一或多個檔案相符的模式範例為 gs://<your-gcs-bucket>/directory/*.json。

      非結構化文件的範例為 gs://<your-gcs-bucket>/directory/*.pdf。符合模式的每個檔案都會成為文件。

      如果 <your-gcs-bucket> 不在 PROJECT_ID 之下,您必須為服務帳戶 service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com 授予 Cloud Storage bucket 的「Storage 物件檢視者」權限。舉例來說,如果您要將 Cloud Storage bucket 從來源專案「123」匯入至目的地專案「456」,請在專案「123」的 Cloud Storage bucket 下授予 service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com 權限。

    • DATA_SCHEMA:選填。值為 document、custom、csv 和 content。預設為 document。

      • document:上傳非結構化資料,並附上非結構化文件的中繼資料。檔案中的每一行都必須採用下列其中一種格式。您可以定義每份文件的 ID:

        • { "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
        • { "id": "<your-id>", "structData": <JSON object>, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
      • custom:上傳結構化文件的 JSON 檔案。資料會根據結構定義整理。您可以指定結構定義,否則系統會自動偵測。您可以直接在每行中以一致的格式輸入文件的 JSON 字串,Gemini Enterprise 會自動為匯入的每份文件產生 ID。

      • content:上傳非結構化文件 (PDF、HTML、DOC、TXT、PPTX)。系統會自動產生每份文件的 ID,做為 SHA256(GCS_URI) 的前 128 位元,並編碼為十六進位字串。您可以指定多個輸入檔案模式,只要相符檔案不超過 10 萬個即可。

      • csv:在 CSV 檔案中加入標頭列,並將每個標頭對應至文件欄位。使用 inputUris 欄位指定 CSV 檔案的路徑。

    • ERROR_DIRECTORY:選用。Cloud Storage 目錄,用於存放匯入作業的錯誤資訊,例如 gs://<your-gcs-bucket>/directory/import_errors。Google 建議將這個欄位留空,讓 Gemini Enterprise 自動建立臨時目錄。

    • RECONCILIATION_MODE:選用。值為 FULL 和 INCREMENTAL。預設值為 INCREMENTAL。指定 INCREMENTAL 會將 Cloud Storage 的資料漸進式重新整理至資料儲存庫。這項操作會執行 upsert 作業,新增文件並以 ID 相同的更新文件取代現有文件。指定 FULL 會導致資料儲存庫中的文件全面重定基準。換句話說,系統會將新文件和更新的文件新增至資料儲存庫,並從資料儲存庫中移除不在 Cloud Storage 中的文件。如要自動刪除不再需要的文件,FULL 模式會很有幫助。

    • AUTO_GENERATE_IDS:選用。指定是否要自動產生文件 ID。如果設為 true,系統會根據酬載的雜湊值產生文件 ID。請注意,產生的文件 ID 在多次匯入後可能不一致。如果您在多次匯入作業中自動產生 ID,Google 強烈建議將 reconciliationMode 設為 FULL,以維持一致的文件 ID。

      只有在 gcsSource.dataSchema 設為 custom 或 csv 時,才指定 autoGenerateIds。否則會傳回 INVALID_ARGUMENT 錯誤。如未指定 autoGenerateIds 或將其設為 false,則必須指定 idField。否則文件無法匯入。

    • ID_FIELD:選填。指定哪些欄位是文件 ID。如果是 Cloud Storage 來源文件,idField 請在 JSON 欄位中指定文件 ID 的名稱。舉例來說,如果 {"my_id":"some_uuid"} 是其中一份文件的文件 ID 欄位,請指定 "idField":"my_id"。這會將所有名稱為 "my_id" 的 JSON 欄位識別為文件 ID。

      只有在下列情況下,才應指定這個欄位:(1) gcsSource.dataSchema 設為 custom 或 csv,且 (2) auto_generate_ids 設為 false 或未指定。否則會傳回 INVALID_ARGUMENT 錯誤。

      請注意,id_field 指定的 JSON 欄位名稱必須為字串類型,長度介於 1 至 63 個字元之間,且必須符合 RFC-1034。否則文件會匯入失敗。

連線至 Cloud Storage 並定期同步

匯入資料前,請參閱「準備要擷取的資料」。

以下程序說明如何建立資料連接器,將 Cloud Storage 位置與 Gemini Enterprise 資料連接器建立關聯,以及如何指定該位置中的資料夾或檔案,做為要建立的資料儲存庫。資料連接器的子資料儲存庫稱為「實體」資料儲存庫。

資料會定期同步至實體資料儲存庫。你可以指定每天、每三天或每五天同步一次。

控制台

  1. 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。

    Gemini Enterprise

  2. 前往「Data Stores」(資料儲存庫) 頁面。

  3. 點選「Create Data Store」(建立資料儲存庫)。

  4. 在「Source」(來源) 頁面中,選取「Cloud Storage」。

  5. 選取要匯入的資料類型。

  6. 按一下「定期」。

  7. 選取「同步頻率」,設定 Gemini Enterprise 連接器與 Cloud Storage 位置同步的頻率。你之後可以變更頻率。

  8. 在「Select a folder or file you want to import」(選取要匯入的資料夾或檔案) 專區,選取「Folder」(資料夾) 或「File」(檔案)。

  9. 按一下「瀏覽」,選擇已準備好要擷取的資料,然後按一下「選取」。 或者,您也可以直接在 gs:// 欄位中輸入位置。

  10. 按一下「繼續」。

  11. 選擇資料連接器的區域。

  12. 輸入資料連接器的名稱。

  13. 選用:如果選取非結構化文件,可以選取文件的剖析和分塊選項。如要比較剖析器,請參閱「剖析文件」。如要瞭解區塊劃分,請參閱「為 RAG 劃分文件區塊」。

    OCR 剖析器和版面配置剖析器可能會產生額外費用。

    如要選取剖析器,請展開「Document processing options」(文件處理選項),然後指定要使用的剖析器選項。

  14. 點選「建立」。

    您已建立資料連接器,會定期與 Cloud Storage 位置同步資料。您也建立了名為 gcs_store 的實體資料儲存庫。

  15. 接著需要檢查擷取狀態,請前往「Data Stores」(資料儲存庫) 頁面,點按資料連接器名稱,即可在相應的「Data」(資料) 頁面查看該資料連接器的詳細資料

    「資料擷取活動」分頁。「資料擷取活動」分頁的狀態欄從「進行中」變為「成功」時,表示首次擷取作業已完成。

    視資料大小而定,可能需要數分鐘至數小時才能擷取完畢。

設定資料來源並首次匯入資料後,系統會按照您在設定期間選取的頻率,從該來源同步資料。資料連接器建立後約一小時,系統會進行首次同步處理。下次同步處理作業會在約 24、72 或 120 小時後進行。

後續步驟

  • 如要將資料儲存庫連結至應用程式,請按照「建立搜尋應用程式」中的步驟,建立應用程式並選取資料儲存庫。

  • 如要在設定應用程式和資料儲存庫後,預覽搜尋結果的顯示方式,請參閱「預覽搜尋結果」。