本页介绍了 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 引擎页面。
选择创建语料库。
在区域字段中,选择您的区域。
在语料库名称字段中,为语料库输入一个名称。
在说明字段中,输入说明。
在数据部分中,选择要将数据上传到哪个位置。
展开高级选项部分。
在分块策略部分中,建议采用以下默认大小:
- 分块大小: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:可选:每个分块应具有的 token 数。
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:可选:每个分块应具有的 token 数。
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 文件示例。