在此版本中,我们正在构建一个专为物流行业设计的工具。该工具将自动从电子邮件中的 PDF 附件(例如报价请求或运输信息表)中提取结构化数据,从而允许该数据在工作流程的其他地方使用。
为了让事情更容易理解,让我们以 Nova Logistics 为例——一家虚构的公司,专门在各个城市之间运输易碎电子产品。
在 Nova Logistics,客户通过电子邮件索取城市之间运输物品的报价,他们通常会附上包含所有必要运输详细信息的 PDF。目前,该流程是手动的:Nova 的人员必须打开每封电子邮件,下载随附的 PDF,通读它,并在计算运费之前提取关键信息,例如商品名称和数量。
这可能需要几个小时,尤其是每天有多封电子邮件,每封电子邮件都包含冗长的 PDF 文档。
在本文中,我们将逐步构建一个工具来自动化整个过程 - 从获取电子邮件和提取 PDF 数据到将提取的信息发送到 Google 表格。
它是如何运作的
- 投票电子邮件:首先,我们将建立一个系统来定期检查收件箱中的新电子邮件。找到电子邮件后,我们将下载 PDF 附件并向该电子邮件添加标签,以便将来不再对其进行轮询。
- 使用 Documind 提取数据:我们会将 PDF 作为 URL 传递给 Documind,这是一个使用 AI 从文档中提取结构化数据的开源包。这将为我们提供商品名称、数量、运输详细信息、重量等信息。
- 存储和使用数据:最后,我们会将提取的数据发送到Google 表格,以便于查看、跟踪和用于进一步计算。
我们需要什么
要构建此工具,我们需要以下软件包:
- Gmail API:从收件箱获取电子邮件。
- Supabase:上传和存储 PDF。
- Documind:从 PDF 中提取结构化数据。
- Google Sheets API:存储提取的数据并计算报价。
- Nango:管理用户身份验证
第 1 步:初始设置
在开始编写代码之前,我们需要设置一些东西。不用担心;我将指导您完成每一步。
1.1 安装 Node.js
我们将使用 Node.js 来运行我们的代码。如果您尚未安装 Node.js,请前往 Node.js 网站并下载最新版本。
1.2 安装所需的库
安装 Node.js 后,我们需要安装帮助我们与 Gmail、Google Sheets、Supabase 和 Documind 交互的软件包。
- 打开终端或命令提示符。
-
通过运行以下命令为您的项目创建一个新文件夹:
mkdir nova cd nova
-
初始化项目:
npm init -y
-
安装所需的软件包:
npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
1.3 获取 API 凭证
在我们开始编写代码之前,您需要设置并获取所有凭据以使用 Google API(Gmail 和 Google Sheets)、Supabase 和 Documind。这是每个的快速指南:
Google API
- 前往 Google Cloud Console。
- 从项目列表中,选择一个项目或创建一个新项目
- 为您的项目启用 Gmail API 和 Google Sheets API:
- 转到 Cloud Console 中的 API 库并搜索“Gmail API”和“Google Sheets API”。单击每个并启用它们。
- 配置您的同意屏幕:
- 转到 API 和服务 > OAuth 同意屏幕。
- 为您的应用命名。
- 选择“外部”作为您的受众类型。
- 填写任何其他必填字段。
- 创建 OAuth 2.0 凭据:
- 转到 API 和服务 >凭证。
- 单击“创建凭据”并选择 OAuth 客户端 ID。
- 选择“Web 应用程序”作为应用程序类型。
- 复制您的客户端 ID 和密码。
- 为了跨多个平台轻松管理用户 OAuth,我使用 Nango。您可以查看他们的文档以了解如何开始:
- 登录 Nango 并单击“配置新集成”。
- 在集成列表中搜索 Google Mail。
- 添加您复制的客户端 ID 和 Secret。
- 在范围字段中,添加 https://www.googleapis.com/auth/gmail.readonly 、 https://www.googleapis.com/auth/gmail.modify 和 https://www.googleapis 。 com/auth/gmail.labels
- 复制集成的回调 URL 并保存。
- 返回 Google 控制台上的“凭据”并将回调 URL 添加为授权重定向 URI。
由于我们也在使用 Google Sheets API,因此您只需完成第 6 步即可在 Nango 上创建另一个集成。搜索 Google Sheets 集成并使用您复制的相同客户端 ID 和密钥。在范围空间中,添加 https://www.googleapis.com/auth/spreadsheets
要发布您的应用程序,请转到 Google 控制台中的 OAuth 同意屏幕,然后单击“发布”按钮。
Supabase
- 在 Supabase 注册免费帐户。
- 创建一个新的项目和存储桶用于存储PDF。
- 从您的项目设置中获取 API URL 和 API 密钥。
第 2 步:编写代码
现在让我们分步骤编写代码。
2.1 添加环境变量
创建一个 .env 文件来存储代码中将使用的所有重要变量。这是一个例子:
mkdir nova cd nova
我们将在代码中进一步介绍如何获取和使用这些变量。
2.2 设置 Gmail API 并获取电子邮件
我们将首先使用 Gmail API 来获取没有“已处理”标签且包含附件的电子邮件。
要检索必要的访问令牌,我们将使用 Nango,它会在令牌过期时自动处理令牌刷新,因此您无需担心自己管理令牌生命周期。
您需要的是:
- 来自 Nango 中 Gmail 设置的集成 ID。
- 需要访问令牌的用户的连接 ID。
- 您的Nango 密钥。
您可以使用自己的 Gmail 帐户直接通过 Nango UI 轻松添加新连接。您可以在 Nango 仪表板的环境设置部分找到您的密钥。
npm init -y
为了简单起见,我们将一次将结果限制为五封电子邮件,并且我们将专门进行过滤以仅获取带有 PDF 附件的电子邮件。从这些中,我们将仅检索第一个附件进行处理。下载附件后,我们将通过应用标签将电子邮件标记为已处理,确保在未来的轮询周期中不会再次获取该电子邮件。
2.2 上传至Supabase
接下来,我们需要将下载的 PDF 上传到 Supabase。确保将代码中的存储桶名称替换为您的存储桶名称。
npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
2.3 使用Documind提取数据
将 PDF 存储在 Supabase 中后,我们将使用 Documind 提取相关数据。由于它利用 OpenAI 进行处理,因此请确保您的 API 密钥已添加到 .env 文件中。
Documind 使用您定义的模式来提取您需要的结构化数据。我们将很快讨论架构定义,但请随时查看文档以获取更多详细信息。
SUPABASE_API_KEY=<supabase api key> SUPABASE_URL=<supabase url> OPENAI_API_KEY=<open ai api key> NANGO_KEY=<nango secret key> </nango></open></supabase></supabase>
2.4 将提取的数据发送到Google表格
从 PDF 中提取数据后,我们会将其发送到 Google 表格。
继续之前,请确保您的 Google 表格已设置,并且您已通过 Nango 创建与您的帐户的连接。如果您还没有这样做,这里有一个您可以开始使用的模板。
mkdir nova cd nova
第 3 步:将所有内容放在一起
现在我们已经编写了各个函数,我们需要将所有内容组合在一起。
在此步骤中,我们将定义 Documind 将用于提取所需数据的架构。该模式将指导 AI 识别和构建 PDF 中的相关信息。
npm init -y
测试代码
完整的源代码可在 GitHub 上获取,以及用于测试的示例 PDF。但是,我们也欢迎您创建和使用自己的文档。只需克隆存储库,修改代码以满足您的要求,然后针对您自己的用例进行尝试。
以上是将非结构化电子邮件转化为可操作的数据的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver Mac版
视觉化网页开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

Atom编辑器mac版下载
最流行的的开源编辑器