搜尋
首頁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. 透過執行以下命令為您的專案建立一個新資料夾:

  3. 初始化項目:

  4. 安裝所需的軟體包:

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 檔案來儲存程式碼中將使用的所有重要變數。這是一個例子:

我們將在程式碼中進一步介紹如何取得和使用這些變數。

2.2 設定 Gmail API 並取得電子郵件

我們將首先使用 Gmail API 來取得沒有「已處理」標籤且包含附件的電子郵件。

要檢索必要的存取令牌,我們將使用 Nango,它會在令牌過期時自動處理令牌刷新,因此您無需擔心自己管理令牌生命週期。

您需要的是:

  1. 來自 Nango 中 Gmail 設定的整合 ID
  2. 需要存取令牌的使用者的連線 ID
  3. 您的Nango 金鑰

您可以使用自己的 Gmail 帳戶直接透過 Nango UI 輕鬆新增連線。您可以在 Nango 儀表板的環境設定部分找到您的金鑰。

為了簡單起見,我們將一次將結果限制為五封電子郵件,並且我們將專門進行過濾以僅獲取帶有 PDF 附件的電子郵件。從這些中,我們將只檢索第一個附件進行處理。下載附件後,我們將透過套用標籤將電子郵件標記為已處理,確保在未來的輪詢週期中不會再次取得該電子郵件。

2.2 上傳至Supabase

接下來,我們需要將下載的 PDF 上傳到 Supabase。確保將程式碼中的儲存桶名稱替換為您的儲存桶名稱。

2.3 使用Documind擷取資料

將 PDF 儲存在 Supabase 後,我們將使用 Documind 提取相關資料。由於它利用 OpenAI 進行處理,因此請確保您的 API 金鑰已新增至 .env 檔案中。

Documind 使用您定義的模式來擷取您需要的結構化資料。我們將很快討論架構定義,但請隨時查看文件以獲取更多詳細資訊。

2.4 將擷取的資料傳送到Google表格

從 PDF 提取資料後,我們會將其發送到 Google 試算表。

繼續之前,請確保您的 Google 試算表已設置,並且您已透過 Nango 建立與您的帳戶的連接。如果您還沒有這樣做,這裡有一個您可以開始使用的模板。

第 3 步:將所有內容放在一起

現在我們已經寫好了各個函數,我們需要將所有內容組合在一起。

在此步驟中,我們將定義 Documind 將用於擷取所需資料的架構。此模式將指導 AI 識別和建立 PDF 中的相關資訊。

測試程式碼

完整的原始程式碼可在 GitHub 上取得,以及用於測試的範例 PDF。但是,我們也歡迎您建立和使用自己的文件。只需克隆儲存庫,修改程式碼以滿足您的要求,然後針對您自己的用例進行嘗試。

以上是將非結構化電子郵件轉換為可操作的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python vs. JavaScript:選擇合適的工具Python vs. JavaScript:選擇合適的工具May 08, 2025 am 12:10 AM

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript:了解每個的優勢Python和JavaScript:了解每個的優勢May 06, 2025 am 12:15 AM

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

JavaScript的核心:它是在C還是C上構建的?JavaScript的核心:它是在C還是C上構建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript應用程序:從前端到後端JavaScript應用程序:從前端到後端May 04, 2025 am 12:12 AM

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

Python vs. JavaScript:您應該學到哪種語言?Python vs. JavaScript:您應該學到哪種語言?May 03, 2025 am 12:10 AM

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架:為現代網絡開發提供動力JavaScript框架:為現代網絡開發提供動力May 02, 2025 am 12:04 AM

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

JavaScript,C和瀏覽器之間的關係JavaScript,C和瀏覽器之間的關係May 01, 2025 am 12:06 AM

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

node.js流帶打字稿node.js流帶打字稿Apr 30, 2025 am 08:22 AM

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器