从 PDF 中提取有价值的信息:Gemini 2.0 结构化输出方案.docxVIP

  • 0
  • 0
  • 约8.15千字
  • 约 9页
  • 2026-01-08 发布于四川
  • 举报

从 PDF 中提取有价值的信息:Gemini 2.0 结构化输出方案.docx

从PDF中提取有价值的信息:Gemini2.0结构化输出方案

上周,GoogleDeepMind发布了Gemini2.0,其中包括?Gemini?2.0Flash(全面可用)、Gemini2.0Flash-Lite(全新高性价比)和Gemini2.0Pro(实验性)。所有模型都支持至少100万?Token?的输入上下文窗口,并支持文本、图像和音频以及函数调用/结构化输出。本文同时作为?LLMOCR的局限性:光鲜外表下的文档解析难题?的参考阅读资料。

这为PDF处理带来了绝佳的用例。将PDF转换为结构化或机器可读的文本一直是一个主要的难题。试想一下,如果我们可以将PDF从文档转换为结构化数据,那将怎样?这就是Gemini2.0能够发挥作用的地方。

在本教程中,读者将学习如何使用Gemini2.0直接从PDF文档中提取结构化信息,例如发票号码、日期:

设置环境并创建推理客户端

处理PDF和其他文件

使用Gemini2.0和Pydantic实现结构化输出

使用Gemini2.0从PDF中提取结构化数据

?

1.设置环境并创建推理客户端

首要任务是安装?google-genai?PythonSDK?并获取API密钥。如果读者还没有API密钥,可以从?GoogleAIStudio?获取:获取GeminiAPI密钥。

%pipinstallgoogle-genai=1

一旦拥有SDK和API密钥,读者就可以创建一个客户端并定义将要使用的模型,即新的Gemini2.0Flash模型,该模型通过免费层级提供,每天1,500个请求(截至2025年2月6日)。

fromgoogleimportgenai

#Createaclient

api_key=XXXXX

client=genai.Client(api_key=api_key)

#Definethemodelyouaregoingtouse

model_id=gemini-2.0-flash#orgemini-2.0-flash-lite-preview-02-05,gemini-2.0-pro-exp-02-05

注意:如果读者想使用VertexAI,请点击此处了解如何创建客户端

?

2.处理PDF和其他文件

Gemini模型能够处理图像和视频,这可以与base64字符串或使用?files?API结合使用。上传文件后,读者可以直接在调用中包含文件URI。PythonAPI包括?upload?和?delete?方法。

对于此示例,用户有2个PDF样本,一个基本发票和一个带有手写值的表单。

!wget-q-O/generativeai-downloads/data/pdf_structured_outputs/handwriting_form.pdf

!wget-q-O/generativeai-downloads/data/pdf_structured_outputs/invoice.pdf

现在读者可以使用客户端和?upload?方法上传文件。让我们对其中一个文件进行尝试。

invoice_pdf=client.files.upload(file=invoice.pdf,config={display_name:invoice})

注意:FileAPI允许每个项目最多存储20GB的文件,每个文件最大大小为2GB。文件存储48小时。在此期间,可以使用用户的API密钥访问这些文件,但无法下载。文件上传是免费的。

文件上传后,读者可以检查它被转换为多少Token。这不仅有助于理解用户正在处理的上下文,还有助于跟踪成本。

file_size=client.models.count_tokens(model=model_id,contents=invoice_pdf)

print(fFile:{invoice_pdf.display_name}equalsto{file_size.total_tokens}tokens)

#File:invoiceequalsto821tokens

?

3.使用Gemini2.0和Pydantic实现结构化输出

结构化输出是一项功能,可确保Gemini始终生成符合预定义格式(例如JSONSchema)的响应。这意味着用户可以更好地控制输出以及如何将其集成到应用程序中,因为它保证返回具有用户定义的S

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档