本页面介绍了如何使用 Vertex AI RAG Engine LLM 解析器。
简介
Vertex AI RAG Engine 使用 LLM 进行文档解析。LLM 能够以以下方式有效处理文档:
- 理解和解读各种格式的语义内容。
- 检索相关文档块。
- 从文档中提取有意义的信息。
- 识别文档中的相关部分。
- 准确总结复杂文档。
- 理解并与视觉内容互动。
- 从图表和示意图中提取数据。
- 描述图片。
- 了解图表与文本之间的关系。
- 提供更贴合上下文且更准确的回答。
Vertex AI RAG Engine 的功能可显著提高所生成回答的质量。
支持的模型
以下模型支持 Vertex AI RAG Engine LLM 解析器:
- Gemini 2.5 Flash(预览版)
- Gemini 2.5 Flash-Lite(预览版)
- Gemini 2.5 Flash-Lite
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
支持的文件类型
LLM 解析器支持以下文件类型:
application/pdf
image/png
image/jpeg
image/webp
image/heic
image/heif
价格和配额
如需了解价格详情,请参阅 Vertex AI 价格。
如需了解适用的配额,请参阅速率配额。
LLM 解析器会调用 Gemini 模型来解析文档。这会产生额外的费用,这些费用会向您的项目收取。您可以使用以下公式大致估算费用:
cost = number_of_document_files * average_pages_per_document * (average_input_tokens * input_token_pricing_of_selected_model + average_output_tokens * output_token_pricing_of_selected_model)
例如,假设您有 1,000 个 PDF 文件,每个 PDF 文件有 50 页内容。平均而言,一页 PDF 内容会包含 500 个 token,而提示还需要额外的 100 个 token。平均输出为 100 个 token。
您的配置中使用了 Gemini 2.0 Flash-Lite 来进行解析,其费用为每 100 万个输入 token 0.075 美元,每 100 万个输出文本 token 0.3 美元。
cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75
费用为 3.75 美元。
导入文件并启用 LlmParser
替换代码示例中使用的以下变量中的值:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- LOCATION:处理请求的区域。
- RAG_CORPUS_RESOURCE:语料库的 ID。
- GCS_URI:要导入的文件的 Cloud Storage URI。
- GOOGLE_DRIVE_URI:要导入的文件的 Google 云端硬盘 URI。
- MODEL_NAME:用于解析文档的模型的资源名称。
格式:
projects/{project_id}/locations/{location}/publishers/google/models/{model_id}
- CUSTOM_PARSING_PROMPT(可选):客户为 LLM 解析器配置的自定义提示,用于解析文档。
MAX_PARSING_REQUESTS_PER_MIN(可选):作业每分钟可向 Vertex AI 模型发出的请求数量上限。如需了解详情,请参阅 Vertex AI 上的生成式 AI 的速率限制,并访问项目的配额和系统限制页面,以设置适当的值。
REST
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE/ragFiles:import" -d '{
"import_rag_files_config": {
"gcs_source": {
"uris": ["GCS_URI", "GOOGLE_DRIVE_URI"]
},
"rag_file_chunking_config": {
"chunk_size": 512,
"chunk_overlap": 102
},
"rag_file_parsing_config": {
"llm_parser": {
"model_name": "MODEL_NAME",
"custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
"max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
}
}
}
}'
Python
如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。如需了解详情,请参阅 Python API 参考文档。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
CORPUS_NAME = "RAG_CORPUS_RESOURCE"
LOCATION = "LOCATION"
MODEL_ID = "MODEL_ID"
MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional
PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]
# Initialize Vertex AI API once per session
vertexai.init(project={PROJECT_ID}, location={LOCATION})
transformation_config = rag.TransformationConfig(
chunking_config=rag.ChunkingConfig(
chunk_size=1024, # Optional
chunk_overlap=200, # Optional
),
)
llm_parser_config = rag.LlmParserConfig(
model_name = MODEL_NAME,
max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
)
rag.import_files(
CORPUS_NAME,
PATHS,
llm_parser=llm_parser_config,
transformation_config=transformation_config,
)
提示
Vertex AI RAG Engine LLM 解析器使用经过调优的预定义提示来解析文档。不过,如果您有不适合使用通用提示的专业文档,则可以在使用 API 时指定自定义解析提示。当您请求 Gemini 解析文档时,Vertex AI RAG Engine 会将提示附加到默认系统提示中。
提示模板表
为了方便解析文档,下表提供了一个提示模板示例,可指导您创建 Vertex AI RAG Engine 可用于解析文档的提示:
指令 | 模板语句 | 示例 |
---|---|---|
指定角色。 | 您是 [指定角色,例如事实数据提取器或信息检索器]。 | 您是信息检索器。 |
指定任务。 | 从 [指定文档来源,例如文档、文本、文章、图片、表格] 中提取 [指定信息类型,例如事实陈述、关键数据或具体细节]。 | 从 sample.txt 文件中提取关键数据。 |
说明您希望 LLM 如何根据您的文档生成输出。 | 以 [指定输出格式,例如结构化列表或文本格式] 呈现每个事实,并链接到其 [指定来源位置,例如网页、段落、表格或行]。 | 以结构化列表的形式呈现每个事实,并链接到其示例页面。 |
突出说明 LLM 应重点关注的内容。 | 照原文提取 [指定关键数据类型,例如名称、日期、数字、属性或关系]。 | 提取名称和日期。 |
突出说明您希望 LLM 避免的内容。 | [列出要避免的操作,例如分析、解读、总结、推理或发表意见]。仅提取文档中明确说明的内容。 | 不要发表意见。仅提取文档中明确说明的内容。 |
常规准则
请遵循以下准则来撰写要发送给 LLM 解析器的提示。
- 具体:明确定义任务和要提取的信息类型。
- 详细:提供有关输出格式、来源出处和不同数据结构处理的详细说明。
- 限制:明确说明 AI 不应执行的操作,例如分析或解读。
- 清晰:使用清晰且具有指导性的语言。
- 结构化:使用编号列表或项目符号以逻辑方式整理指令,以提高可读性。
解析质量分析
下表列出了客户使用 Vertex AI RAG Engine 运行的各种场景的结果。反馈表明,LLM 解析器可提高文档解析质量。
场景 | 结果 | |
---|---|---|
跨幻灯片解析信息并关联章节 | LLM 解析器成功地将一张幻灯片上的章节标题与后续幻灯片中呈现的详细信息关联起来。 | |
理解并提取表格信息 | LLM 解析器正确地关联了一个大型表格中的列与表头,以回答特定问题。 | |
解读流程图 | LLM 解析器能够遵循流程图的逻辑,并提取出正确的操作序列及相应信息。 | |
从图表中提取数据 | LLM 解析器能够解读不同类型的图表(例如折线图),并根据查询提取特定的数据点。 | |
捕捉标题与文本间的关系 | 在提示的引导下,LLM 解析器会关注标题结构,并能检索出与特定主题或章节关联的所有相关信息。 | |
通过提示工程克服嵌入模型的局限性 | 尽管在某些用例中,其最初表现会受限于嵌入模型的局限性,但额外的实验表明,一个精心设计的 LLM 解析器提示或许能缓解这些问题,甚至在仅靠嵌入模型难以进行语义理解的情况下,也能检索到正确信息。 |
LLM 解析器增强了 LLM 理解和推理文档上下文的能力,从而生成更准确、更全面的回答。
检索查询
在您输入发送给生成式 AI 模型的提示后,RAG 中的检索组件会搜索其知识库,以查找与查询相关的信息。如需查看根据查询文本从语料库中检索 RAG 文件的示例,请参阅检索查询。
后续步骤
- 如需详细了解 Vertex AI RAG Engine,请参阅 Vertex AI RAG Engine 概览。
- 如需详细了解 Vertex AI RAG Engine,请参阅 Vertex AI RAG Engine API。