このビルドでは、物流業界向けに設計されたツールを構築しています。このツールは、電子メールの PDF 添付ファイル (見積依頼や配送情報シートなど) からの構造化データの抽出を自動化し、このデータをワークフローの他の場所で使用できるようにします。
理解を容易にするために、さまざまな都市間で壊れやすい電子機器を輸送することを専門とする架空の会社である Nova Logistics を例として使用してみましょう。
Nova Logistics では、顧客は電子メールで都市間での商品の配送の見積もりを依頼します。通常、必要な配送の詳細がすべて含まれた PDF が添付されます。現在、このプロセスは手動です。Nova の担当者は各メールを開き、添付の PDF をダウンロードして読み、商品名や数量などの重要な情報を抽出してから送料を計算する必要があります。
特に 1 日に複数の電子メールが送信され、それぞれに長い PDF ドキュメントが含まれている場合、これには数時間かかることがあります。
この記事では、メールの取得と PDF データの抽出から、抽出された情報の Google スプレッドシートへの送信まで、このプロセス全体を自動化するツールの構築について説明します。
このツールを構築するには、次のパッケージが必要です:
コードを書き始める前に、いくつかのことを設定する必要があります。心配しないで;各ステップについてご案内します。
コードを実行するには Node.js を使用します。 Node.js がインストールされていない場合は、Node.js Web サイトにアクセスして最新バージョンをダウンロードしてください。
Node.js がインストールされたら、Gmail、Google Sheets、Supabase、Documind とのやり取りに役立つパッケージをインストールする必要があります。
次のコマンドを実行して、プロジェクト用の新しいフォルダーを作成します。
mkdir nova cd nova
プロジェクトを初期化します:
npm init -y
必要なパッケージをインストールします:
npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
コードの記述を開始する前に、Google API (Gmail と Google Sheets)、Supabase、および Documind を使用するためのすべての認証情報を設定して取得する必要があります。それぞれのクイックガイドは次のとおりです:
Google API
Google Sheets API も使用しているため、ステップ 6 を実行するだけで Nango で別の統合を作成できます。 Google スプレッドシート統合を検索し、コピーしたものと同じクライアント ID とシークレットを使用します。スコープのスペースに、https://www.googleapis.com/auth/spreadsheets
を追加します。アプリを公開するには、Google コンソールの OAuth 同意画面に移動し、[公開] ボタンをクリックします。
スーパーベース
次に、コードを少しずつ書いてみましょう。
コード全体で使用されるすべての重要な変数を保存する .env ファイルを作成します。以下に例を示します:
mkdir nova cd nova
コード内でこれらの変数を取得して使用する方法を詳しく説明します。
まず、Gmail API を使用して、「処理済み」ラベルのない添付ファイルを含むメールを取得します。
必要なアクセス トークンを取得するには、Nango を使用します。トークンの有効期限が切れた場合、トークンの更新が自動的に処理されるため、トークンのライフサイクルを自分で管理することを心配する必要はありません。
必要なのは次のとおりです:
自分の Gmail アカウントを使用して、Nango UI から直接新しい接続を簡単に追加できます。秘密キーは、Nango ダッシュボードの環境設定セクションにあります。
npm init -y
わかりやすくするために、一度に結果を 5 件のメールに制限し、PDF が添付されたメールのみを取得するように具体的にフィルタリングします。これらから、処理のために最初の添付ファイルだけを取得します。添付ファイルをダウンロードした後、ラベルを適用してメールに処理済みのマークを付け、今後のポーリング サイクルで再度取得されないようにします。
次に、ダウンロードした PDF を Supabase にアップロードする必要があります。コード内のバケット名を必ず自分のものに置き換えてください。
npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
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>
PDF からデータを抽出した後、Google スプレッドシートに送信します。
続行する前に、Google スプレッドシートが設定されていること、および Nango を介してアカウントとの接続が作成されていることを確認してください。まだお持ちでない場合は、こちらのテンプレートを使って始めてください。
mkdir nova cd nova
個別の関数を記述したので、次はすべてをまとめる必要があります。
このステップでは、Documind が必要なデータを抽出するために使用するスキーマを定義します。このスキーマは、AI が PDF から関連情報を特定して構造化するのに役立ちます。
npm init -y
完全なソース コードは、テスト用のサンプル PDF とともに GitHub で入手できます。ただし、独自のドキュメントを作成して使用することもできます。リポジトリのクローンを作成し、要件に合わせてコードを変更し、独自のユースケースで試してみるだけです。
以上が非構造化メールを実用的なデータに変えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。