將非結構化電子郵件轉換為可操作的數據
在此版本中,我們正在建立一個專為物流行業設計的工具。該工具將自動從電子郵件中的 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 互動的軟體包。
- 開啟終端機或指令提示字元。
-
透過執行以下命令為您的專案建立一個新資料夾:
-
初始化項目:
-
安裝所需的軟體包:
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 檔案來儲存程式碼中將使用的所有重要變數。這是一個例子:
我們將在程式碼中進一步介紹如何取得和使用這些變數。
2.2 設定 Gmail API 並取得電子郵件
我們將首先使用 Gmail API 來取得沒有「已處理」標籤且包含附件的電子郵件。
要檢索必要的存取令牌,我們將使用 Nango,它會在令牌過期時自動處理令牌刷新,因此您無需擔心自己管理令牌生命週期。
您需要的是:
- 來自 Nango 中 Gmail 設定的整合 ID。
- 需要存取令牌的使用者的連線 ID。
- 您的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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

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