本頁面介紹 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.
開啟版面配置剖析器
如要開啟版面配置剖析器,請按照下列步驟操作:
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 檔案範例。