本頁介紹 Document AI 版面配置剖析器,以及如何搭配 RAG Engine 使用。
Document AI
Document AI 是文件處理和文件解讀平台,可擷取文件中的非結構化資料,並將這些非結構化資料轉換為適合儲存在資料庫中的欄位。結構化資料可提供您能瞭解、分析和使用的資料。
Document AI 是建構在 Vertex AI 產品之上,並採用生成式 AI 技術,可協助您建立可擴充的端對端雲端文件處理應用程式。使用這些產品不需要具備專業的機器學習專業知識。
Document AI 版面配置剖析器
版面配置剖析器會從文件中擷取文字、表格和清單等內容元素。版面配置剖析器接著會建立情境感知分塊,以便生成式 AI 和探索應用程式檢索資訊。
當這項功能用於檢索和 LLM 產生作業時,系統會在分割程序中考量文件的版面配置,藉此改善語意一致性並減少內容中的雜訊。區塊中的所有文字都來自相同的版面配置實體,例如標題、副標題或清單。
如要瞭解版面配置偵測功能使用的檔案類型,請參閱「依檔案類型偵測版面配置」。
在 Vertex AI RAG 中使用版面配置剖析器
ImportRagFiles
API 支援版面配置剖析器,但適用下列限制:
- 輸入所有檔案類型的檔案大小上限 20 MB。
- 每個 PDF 檔案最多可包含 500 頁。
啟用 Document AI API
您必須為專案啟用 Document AI API。如要進一步瞭解如何啟用 API,請參閱服務使用情形說明文件。
Enable the Document AI API.
開啟版面配置剖析器
如要啟用版面配置剖析器,請按照下列步驟操作:
RAG 知識庫 (語料庫)
如果沒有 RAG 語料庫,請建立 RAG 語料庫。例如,請參閱「建立 RAG 語料庫範例」。
如果您已擁有 RAG 字元集,則在使用版面配置剖析器匯入檔案時,系統不會重新匯入未使用版面配置剖析器匯入的現有檔案。如果您想在檔案中使用版面配置剖析器,請先刪除檔案。如需範例,請參閱「刪除 RAG 檔案範例」。
使用版面配置剖析器匯入檔案
您可以使用版面配置剖析器匯入來自不同來源的檔案和資料夾。
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
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 = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]
# Supports Cloud Storage and Google Drive links
layout_parser_processor_name = "LAYOUT_PARSER_PROCESSOR_NAME"
# 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(
chunking_config=rag.ChunkingConfig(
chunk_size=512, # Optional
chunk_overlap=100, # Optional
),
),
max_embedding_requests_per_min=900, # Optional
parser=rag.LayoutParserConfig(
processor_name=layout_parser_processor_name,
max_parsing_requests_per_min=120, # Optional
)
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
擷取查詢
使用者提出問題或提供提示時,RAG 中的擷取元件會搜尋知識庫,找出與查詢相關的資訊。
如需根據查詢文字從語料庫擷取 RAG 檔案的範例,請參閱「擷取查詢」。
預測
預測模型會使用擷取的內容產生有依據的回覆。如需範例,請參閱「世代」。