本頁面介紹 Document AI 版面配置剖析器,以及如何搭配 RAG 引擎使用。
Document AI
Document AI 是文件處理與解讀平台,可擷取文件中的非結構化資料,並轉換為適合儲存在資料庫的欄位。結構化資料可讓您瞭解、分析及使用資料。
Document AI 建構於 Vertex AI 產品之上,並採用生成式 AI 技術,可協助您建立可擴充的雲端文件處理應用程式,實現端對端作業。使用這些產品不需具備專業機器學習知識。
Document AI 版面配置剖析器
版面配置剖析器會從文件中擷取文字、表格和清單等內容元素。版面配置剖析器接著會建立情境感知分塊,以便生成式 AI 和探索應用程式檢索資訊。
用於檢索和 LLM 生成時,系統會在分塊程序中考量文件版面配置,藉此提升語意一致性並減少內容中的雜訊。同一組文字中的所有文字都來自相同的版面配置實體,例如標題、副標題或清單。
如要瞭解版面配置偵測功能支援的檔案類型,請參閱「各檔案類型的版面配置偵測功能」。
在 Vertex AI RAG 引擎中使用版面配置剖析器
如要在 Vertex AI RAG 引擎中使用版面配置剖析器,請建立語料庫。如要建立語料庫,請按照下列步驟操作:
前往 Google Cloud 控制台的「RAG Engine」頁面。
選取「建立語料庫」。
在「Region」(區域) 欄位中,選取您的區域。
在「Corpus name」(語料庫名稱) 欄位中,輸入語料庫名稱。
在「Description」(說明) 欄位中輸入說明。
在「資料」部分,選取要上傳資料的來源。
展開「Advanced options」(進階選項) 區段。
在「Chunking strategy」(分塊策略) 區段中,建議採用下列預設大小:
- 分塊大小:1024
- 區塊重疊:256
在「版面配置剖析器」部分中,選取「LLM 剖析器」選項,這個選項最適合用於含有圖片或圖表的檔案,準確度最高。
從「模型」欄位中選取模型。
選填:在「每分鐘剖析要求數量上限」欄位中,輸入剖析要求數量上限。
選用步驟:在「自訂剖析提示詞」欄位中,輸入剖析提示。
按一下「繼續」。
在「設定向量儲存庫」頁面中,執行下列操作:
在「嵌入模型」欄位中,選取嵌入模型。
在「向量資料庫」部分,選取資料庫。
按一下「建立語料庫」。
限制
ImportRagFiles
API 支援版面配置剖析器,但有下列限制:
- 輸入所有檔案類型的檔案大小上限 (20 MB)。
- 每個 PDF 檔案最多只能有 500 頁。
啟用 Document AI API
您必須為專案啟用 Document AI API。如要進一步瞭解如何啟用 API,請參閱服務使用情形說明文件。
Enable the Document AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
開啟版面配置剖析器
如要開啟版面配置剖析器,請按照下列步驟操作:
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 檔案的範例,請參閱擷取查詢。
預測
預測功能會使用檢索到的脈絡資訊,生成有依據的回覆。如需範例,請參閱「生成」。
後續步驟
- Vertex AI RAG 引擎中的向量資料庫選項
- 如要瞭解如何匯入 RAG 檔案,請參閱匯入 RAG 檔案範例。