本页介绍了 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 页面。
选择创建语料库。
在区域字段中,选择您的区域。
在语料库名称字段中,输入语料库名称。
在说明字段中,输入说明。
在数据部分中,选择要将数据上传到哪个位置。
展开高级选项部分。
在分块策略部分中,建议采用以下默认大小:
- 分块大小:1024
- 块重叠:256
在布局解析器部分中,选择 LLM 解析器选项,该选项对于包含图片或图表的文档具有最高的准确率。
在型号字段中,选择您的型号。
可选:在每分钟解析的请求数上限字段中,输入解析请求数上限。
可选:在自定义解析提示字段中,输入解析提示。
点击继续。
在配置向量存储区页面上,执行以下操作:
在嵌入模型字段中,选择您的嵌入模型。
在向量数据库部分中,选择您的数据库。
点击创建语料库。
限制
ImportRagFiles
API 支持布局解析器,但存在以下限制:
- 输入文件大小上限(所有文件类型均为 20 MB)。
- 每个 PDF 文件的页数上限为 500。
启用 Document AI API
您必须为项目启用 Document AI API。如需详细了解如何启用 API,请参阅 Service Usage 文档。
Enable the Document AI API.
开启布局解析器
如需开启布局解析器,请按以下步骤操作:
您的 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="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 文件示例。