本頁面介紹 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」(進階選項) 區段。
在「分塊策略」部分中,建議採用下列預設大小:
- 分塊大小:1024
- 區塊重疊:256
在「版面配置剖析器」專區中,選取「Document AI 版面配置剖析器」選項,這個選項最適合含有圖片或圖表的文件,準確度最高。
從「模型」欄位中選取模型。
選用:在「每分鐘剖析要求數量上限」欄位中,輸入剖析要求數量上限。
選用:在「自訂剖析提示詞」欄位中,輸入剖析提示詞。
按一下「繼續」。
在「設定向量儲存庫」頁面中,執行下列操作:
在「嵌入模型」欄位中,選取嵌入模型。
在「向量資料庫」部分,選取資料庫。
按一下「建立語料庫」。
限制
ImportRagFiles API 支援版面配置剖析器,但有下列限制:
- 輸入所有檔案類型的檔案大小上限 (20 MB)。
- 每個 PDF 檔案最多只能有 500 頁。
啟用 Document AI API
您必須為專案啟用 Document AI API。如要進一步瞭解如何啟用 API,請參閱服務使用情形說明文件。
啟用 Document AI API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色。
開啟版面配置剖析器
如要開啟版面配置剖析器,請按照下列步驟操作:
您的 RAG 知識庫 (語料庫)
如果沒有 RAG 語料庫,請建立 RAG 語料庫。如需範例,請參閱「建立 RAG 語料庫範例」。
如果您已有 RAG 語料庫,使用「使用版面配置剖析器匯入檔案」時,系統不會重新匯入先前未經版面配置剖析器處理的檔案。如要使用版面配置剖析器處理檔案,請先刪除檔案。如需範例,請參閱「刪除 RAG 檔案範例」。
使用版面配置剖析器匯入檔案
您可以使用版面配置剖析器,匯入各種來源的檔案和資料夾。
Python
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 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="LOCATION")
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).
layout_parser=rag.LayoutParserConfig(
processor_name="projects/{PROJECT_ID}/locations/us/processors/{processor_id}/processorVersions/{processor_version_id}",
max_parsing_requests_per_min=120,
),
max_embedding_requests_per_min=900, # Optional
)
print(f"Import response: {response}")
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 檔案範例」。