首頁 web前端 js教程 將非結構化電子郵件轉換為可操作的數據

將非結構化電子郵件轉換為可操作的數據

Dec 07, 2024 am 10:47 AM

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

熱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

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1255
29
C# 教程
1228
24
神秘的JavaScript:它的作用以及為什麼重要 神秘的JavaScript:它的作用以及為什麼重要 Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

JavaScript的演變:當前的趨勢和未來前景 JavaScript的演變:當前的趨勢和未來前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript引擎:比較實施 JavaScript引擎:比較實施 Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript:探索網絡語言的多功能性 JavaScript:探索網絡語言的多功能性 Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

如何使用Next.js(前端集成)構建多租戶SaaS應用程序 如何使用Next.js(前端集成)構建多租戶SaaS應用程序 Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

從C/C到JavaScript:所有工作方式 從C/C到JavaScript:所有工作方式 Apr 14, 2025 am 12:05 AM

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

如何安裝JavaScript? 如何安裝JavaScript? Apr 05, 2025 am 12:16 AM

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

See all articles