在此版本中,我們正在建立一個專為物流行業設計的工具。該工具將自動從電子郵件中的 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中文網其他相關文章!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

10款趣味橫生的jQuery遊戲插件,讓您的網站更具吸引力,提升用戶粘性!雖然Flash仍然是開發休閒網頁遊戲的最佳軟件,但jQuery也能創造出令人驚喜的效果,雖然無法與純動作Flash遊戲媲美,但在某些情況下,您也能在瀏覽器中獲得意想不到的樂趣。 jQuery井字棋遊戲 遊戲編程的“Hello world”,現在有了jQuery版本。 源碼 jQuery瘋狂填詞遊戲 這是一個填空遊戲,由於不知道單詞的上下文,可能會產生一些古怪的結果。 源碼 jQuery掃雷遊戲

本教程演示瞭如何使用jQuery創建迷人的視差背景效果。 我們將構建一個帶有分層圖像的標題橫幅,從而創造出令人驚嘆的視覺深度。 更新的插件可與JQuery 1.6.4及更高版本一起使用。 下載

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

Matter.js是一個用JavaScript編寫的2D剛體物理引擎。此庫可以幫助您輕鬆地在瀏覽器中模擬2D物理。它提供了許多功能,例如創建剛體並為其分配質量、面積或密度等物理屬性的能力。您還可以模擬不同類型的碰撞和力,例如重力摩擦力。 Matter.js支持所有主流瀏覽器。此外,它也適用於移動設備,因為它可以檢測觸摸並具有響應能力。所有這些功能都使其值得您投入時間學習如何使用該引擎,因為這樣您就可以輕鬆創建基於物理的2D遊戲或模擬。在本教程中,我將介紹此庫的基礎知識,包括其安裝和用法,並提供一

本文演示瞭如何使用jQuery和ajax自動每5秒自動刷新DIV的內容。 該示例從RSS提要中獲取並顯示了最新的博客文章以及最後的刷新時間戳。 加載圖像是選擇


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

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

Dreamweaver Mac版
視覺化網頁開發工具