搜索
首页web前端js教程将非结构化电子邮件转化为可操作的数据

Turn Unstructured Emails to Actionable Data

在此版本中,我们正在构建一个专为物流行业设计的工具。该工具将自动从电子邮件中的 PDF 附件(例如报价请求或运输信息表)中提取结构化数据,从而允许该数据在工作流程的其他地方使用。

为了让事情更容易理解,让我们以 Nova Logistics 为例——一家虚构的公司,专门在各个城市之间运输易碎电子产品。

在 Nova Logistics,客户通过电子邮件索取城市之间运输物品的报价,他们通常会附上包含所有必要运输详细信息的 PDF。目前,该流程是手动的:Nova 的人员必须打开每封电子邮件,下载随附的 PDF,通读它,并在计算运费之前提取关键信息,例如商品名称和数量。

这可能需要几个小时,尤其是每天有多封电子邮件,每封电子邮件都包含冗长的 PDF 文档。

在本文中,我们将逐步构建一个工具来自动化整个过程 - 从获取电子邮件和提取 PDF 数据到将提取的信息发送到 Google 表格。

它是如何运作的

  1. 投票电子邮件:首先,我们将建立一个系统来定期检查收件箱中的新电子邮件。找到电子邮件后,我们将下载 PDF 附件并向该电子邮件添加标签,以便将来不再对其进行轮询。
  2. 使用 Documind 提取数据:我们会将 PDF 作为 URL 传递给 Documind,这是一个使用 AI 从文档中提取结构化数据的开源包。这将为我们提供商品名称、数量、运输详细信息、重量等信息。
  3. 存储和使用数据:最后,我们会将提取的数据发送到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 交互的软件包。

  1. 打开终端命令提示符
  2. 通过运行以下命令为您的项目创建一个新文件夹:

    mkdir nova
    cd nova
    
  3. 初始化项目:

    npm init -y
    
  4. 安装所需的软件包:

    npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
    

1.3 获取 API 凭证

在我们开始编写代码之前,您需要设置并获取所有凭据以使用 Google API(Gmail 和 Google Sheets)、Supabase 和 Documind。这是每个的快速指南:

Google API

  1. 前往 Google Cloud Console。
  2. 从项目列表中,选择一个项目或创建一个新项目
  3. 为您的项目启用 Gmail API 和 Google Sheets API:
    • 转到 Cloud Console 中的 API 库并搜索“Gmail API”和“Google Sheets API”。单击每个并启用它们。
  4. 配置您的同意屏幕:
    • 转到 API 和服务 > OAuth 同意屏幕。
    • 为您的应用命名。
    • 选择“外部”作为您的受众类型。
    • 填写任何其他必填字段。
  5. 创建 OAuth 2.0 凭据:
    • 转到 API 和服务 >凭证。
    • 单击“创建凭据”并选择 OAuth 客户端 ID。
    • 选择“Web 应用程序”作为应用程序类型。
    • 复制您的客户端 ID 和密码。
  6. 为了跨多个平台轻松管理用户 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

  1. 在 Supabase 注册免费帐户。
  2. 创建一个新的项目存储桶用于存储PDF。
  3. 从您的项目设置中获取 API URLAPI 密钥

第 2 步:编写代码

现在让我们分步骤编写代码。

2.1 添加环境变量

创建一个 .env 文件来存储代码中将使用的所有重要变量。这是一个例子:

mkdir nova
cd nova

我们将在代码中进一步介绍如何获取和使用这些变量。

2.2 设置 Gmail API 并获取电子邮件

我们将首先使用 Gmail API 来获取没有“已处理”标签且包含附件的电子邮件。

要检索必要的访问令牌,我们将使用 Nango,它会在令牌过期时自动处理令牌刷新,因此您无需担心自己管理令牌生命周期。

您需要的是:

  1. 来自 Nango 中 Gmail 设置的集成 ID
  2. 需要访问令牌的用户的连接 ID
  3. 您的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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在JavaScript中替换字符串字符在JavaScript中替换字符串字符Mar 11, 2025 am 12:07 AM

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

自定义Google搜索API设置教程自定义Google搜索API设置教程Mar 04, 2025 am 01:06 AM

本教程向您展示了如何将自定义的Google搜索API集成到您的博客或网站中,提供了比标准WordPress主题搜索功能更精致的搜索体验。 令人惊讶的是简单!您将能够将搜索限制为Y

构建您自己的Ajax Web应用程序构建您自己的Ajax Web应用程序Mar 09, 2025 am 12:11 AM

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

示例颜色json文件示例颜色json文件Mar 03, 2025 am 12:35 AM

本文系列在2017年中期进行了最新信息和新示例。 在此JSON示例中,我们将研究如何使用JSON格式将简单值存储在文件中。 使用键值对符号,我们可以存储任何类型的

8令人惊叹的jQuery页面布局插件8令人惊叹的jQuery页面布局插件Mar 06, 2025 am 12:48 AM

利用轻松的网页布局:8个基本插件 jQuery大大简化了网页布局。 本文重点介绍了简化该过程的八个功能强大的JQuery插件,对于手动网站创建特别有用

什么是这个&#x27;在JavaScript?什么是这个&#x27;在JavaScript?Mar 04, 2025 am 01:15 AM

核心要点 JavaScript 中的 this 通常指代“拥有”该方法的对象,但具体取决于函数的调用方式。 没有当前对象时,this 指代全局对象。在 Web 浏览器中,它由 window 表示。 调用函数时,this 保持全局对象;但调用对象构造函数或其任何方法时,this 指代对象的实例。 可以使用 call()、apply() 和 bind() 等方法更改 this 的上下文。这些方法使用给定的 this 值和参数调用函数。 JavaScript 是一门优秀的编程语言。几年前,这句话可

通过来源查看器提高您的jQuery知识通过来源查看器提高您的jQuery知识Mar 05, 2025 am 12:54 AM

jQuery是一个很棒的JavaScript框架。但是,与任何图书馆一样,有时有必要在引擎盖下发现发生了什么。也许是因为您正在追踪一个错误,或者只是对jQuery如何实现特定UI感到好奇

10张移动秘籍用于移动开发10张移动秘籍用于移动开发Mar 05, 2025 am 12:43 AM

该帖子编写了有用的作弊表,参考指南,快速食谱以及用于Android,BlackBerry和iPhone应用程序开发的代码片段。 没有开发人员应该没有他们! 触摸手势参考指南(PDF) Desig的宝贵资源

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器