搭配使用 Document AI 版面配置剖析器和 Vertex AI RAG 引擎

本頁介紹 Document AI 版面配置剖析器,以及如何搭配 RAG Engine 使用。

Document AI

Document AI文件處理和文件解讀平台,可擷取文件中的非結構化資料,並將這些非結構化資料轉換為適合儲存在資料庫中的欄位。結構化資料可讓您瞭解、分析及使用資料。

Document AI 是建構在 Vertex AI 產品之上,並採用生成式 AI 技術,可協助您建立可擴充的端對端雲端文件處理應用程式。使用這些產品不需要具備專業的機器學習專業知識。

Document AI 版面配置剖析器

版面配置剖析器會從文件中擷取文字、表格和清單等內容元素。版面配置剖析器接著會建立脈絡感知分塊,以便生成式 AI 和探索應用程式檢索資訊。

當這項功能用於檢索和 LLM 產生作業時,系統會在分割程序中考量文件的版面配置,藉此改善語意一致性並減少內容中的雜訊。區塊中的所有文字都來自相同的版面配置實體,例如標題、副標題或清單。

如要瞭解版面配置偵測功能使用的檔案類型,請參閱「依檔案類型偵測版面配置」。

在 Vertex AI RAG 引擎中使用版面配置剖析器

如要使用 Vertex AI RAG Engine 中的版面配置剖析器,您必須建立語料庫。如要建立字串集,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「RAG Engine」頁面。

    前往 RAG Engine

  2. 選取「建立字典」

  3. 在「Region」(區域) 欄位中,選取您的區域。

  4. 在「Corpus name」欄位中輸入詞彙庫名稱。

  5. 在「Description」欄位輸入說明。

  6. 在「資料」部分,選取要上傳資料的位置。

  7. 展開「Advanced options」(進階選項) 區段。

    1. 在「分割策略」部分中,建議使用下列預設大小:

      • 分塊大小:1024
      • 區塊重疊:256
    2. 在「版面配置剖析器」專區中,選取「LLM 剖析器」選項,這個選項適用於含有圖片或圖表的文件,可提供最高準確度。

      1. 在「Model」欄位中選取模型。

      2. 選用:在「每分鐘剖析要求次數上限」欄位中輸入剖析要求次數上限。

      3. 選用步驟:在「Custom parsing prompt」欄位中輸入剖析提示。

      4. 按一下「繼續」

  8. 在「Configure vector store」頁面中,執行下列操作:

    1. 在「嵌入模型」欄位中,選取嵌入模型。

    2. 在「向量資料庫」部分中,選取資料庫。

  9. 按一下「建立字典」

限制

ImportRagFiles API 支援版面配置剖析器,但適用下列限制:

  • 輸入所有檔案類型的檔案大小上限 20 MB。
  • 每個 PDF 檔案最多可包含 500 頁。

適用 Document AI 配額定價

啟用 Document AI API

您必須為專案啟用 Document AI API。如要進一步瞭解如何啟用 API,請參閱服務使用情形說明文件

Enable the Document AI API.

Enable the API

開啟版面配置剖析器

如要啟用版面配置剖析器,請按照下列步驟操作:

  1. 按照「建立及管理處理器」中的操作說明,建立版面配置剖析器。

    處理器類型名稱為 LAYOUT_PARSER_PROCESSOR

  2. 按照「啟用處理器」一文的操作說明,啟用版面配置剖析器。

RAG 知識庫 (語料庫)

如果沒有 RAG 語料庫,請建立 RAG 語料庫。例如,請參閱「建立 RAG 語料庫範例」。

如果您已擁有 RAG 字元集,則在使用版面配置剖析器匯入檔案時,系統不會重新匯入未使用版面配置剖析器匯入的現有檔案。如果您想在檔案中使用版面配置剖析器,請先刪除檔案。如需範例,請參閱「刪除 RAG 檔案範例」。

使用版面配置剖析器匯入檔案

您可以使用版面配置剖析器匯入來自不同來源的檔案和資料夾。

Python

如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。詳情請參閱 Python API 參考說明文件

請替換程式碼範例中使用的下列變數:

  • PROJECT_ID:您的專案 ID。
  • LOCATION:處理要求的區域。
  • RAG_CORPUS_ID:RAG 語料庫資源的 ID。
  • GCS_URIS:Cloud Storage 位置清單。例如:"gs://my-bucket1""gs://my-bucket2"
  • LAYOUT_PARSER_PROCESSOR_NAME:已建立的版面配置剖析器處理器的資源路徑。例如:"projects/{project}/locations/{location}/processors/{processor_id}"
  • CHUNK_SIZE:選用:每個區塊應有的符記數。
from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]  # Supports Cloud Storage and Google Drive.

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    transformation_config=rag.TransformationConfig(
        rag.ChunkingConfig(chunk_size=1024, chunk_overlap=256)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional: This must be an existing storage bucket folder, and the filename must be unique (non-existent).
    llm_parser=rag.LlmParserConfig(
      model_name="gemini-2.5-pro-preview-05-06",
      max_parsing_requests_per_min=100,
    ),  # Optional
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files} files.")

REST

程式碼範例說明如何使用版面配置剖析器匯入 Cloud Storage 檔案。如要進一步瞭解其他設定選項 (包括從其他來源匯入檔案),請參閱 ImportRagFilesConfig 參考資料

使用任何要求資料之前,請先替換程式碼範例中使用的下列變數:

  • PROJECT_ID:您的專案 ID。
  • LOCATION:處理要求的區域。
  • RAG_CORPUS_ID:RAG 語料庫資源的 ID。
  • GCS_URIS:Cloud Storage 位置清單。例如:"gs://my-bucket1""gs://my-bucket2"
  • LAYOUT_PARSER_PROCESSOR_NAME:已建立的版面配置剖析器處理器的資源路徑。例如:"projects/{project}/locations/{location}/processors/{processor_id}"
  • CHUNK_SIZE:選用:每個區塊應有的符記數。
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

JSON 要求內文:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_parsing_config": {
      "layout_parser": {
        "processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
      }
    },
    "rag_file_transformation_config": {
      "rag_file_chunking_config": {
        "fixed_length_chunking": {
          "chunk_size": CHUNK_SIZE
        }
      }
    },
  }
}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

Powershell

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content

擷取查詢

使用者提出問題或提供提示時,RAG 中的擷取元件會搜尋知識庫,找出與查詢相關的資訊。

如需根據查詢文字從語料庫擷取 RAG 檔案的範例,請參閱「擷取查詢」。

預測

預測模型會使用擷取的背景資訊,生成有依據的回覆。如需範例,請參閱「世代」。

後續步驟