In diesem Build erstellen wir ein Tool, das für die Logistikbranche entwickelt wurde. Dieses Tool automatisiert die Extraktion strukturierter Daten aus PDF-Anhängen (z. B. Angebotsanfragen oder Versandinformationsblättern) in E-Mails, sodass diese Daten an anderer Stelle im Workflow verwendet werden können.
Zum besseren Verständnis nehmen wir Nova Logistics als Beispiel – ein fiktives Unternehmen, das sich auf den Transport zerbrechlicher Elektronik durch verschiedene Städte spezialisiert hat.
Bei Nova Logistics wenden sich Kunden per E-Mail an uns, um Angebote für den Versand von Artikeln zwischen Städten anzufordern. Normalerweise fügen sie ein PDF mit allen erforderlichen Versanddetails bei. Derzeit ist der Prozess manuell: Jemand bei Nova muss jede E-Mail öffnen, das angehängte PDF herunterladen, es durchlesen und wichtige Informationen wie Artikelnamen und Mengen extrahieren, bevor die Versandkosten berechnet werden.
Dies kann Stunden dauern, insbesondere wenn mehrere E-Mails pro Tag mit jeweils langen PDF-Dokumenten eingehen.
In diesem Artikel gehen wir Schritt für Schritt durch die Entwicklung eines Tools zur Automatisierung dieses gesamten Prozesses – vom Abrufen der E-Mails und Extrahieren der PDF-Daten bis zum Senden der extrahierten Informationen an Google Sheets.
Um dieses Tool zu erstellen, benötigen wir die folgenden Pakete:
Bevor wir mit dem Schreiben des Codes beginnen, müssen wir ein paar Dinge einrichten. Mach dir keine Sorge; Ich werde Sie durch jeden Schritt führen.
Wir werden Node.js verwenden, um unseren Code auszuführen. Wenn Sie Node.js nicht installiert haben, gehen Sie zur Node.js-Website und laden Sie die neueste Version herunter.
Sobald Node.js installiert ist, müssen wir die Pakete installieren, die uns bei der Interaktion mit Gmail, Google Sheets, Supabase und Documind helfen.
Erstellen Sie einen neuen Ordner für Ihr Projekt, indem Sie Folgendes ausführen:
mkdir nova cd nova
Initialisieren Sie das Projekt:
npm init -y
Installieren Sie die erforderlichen Pakete:
npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
Bevor wir mit dem Schreiben des Codes beginnen können, müssen Sie alle Anmeldeinformationen einrichten und erhalten, um die Google APIs (Gmail und Google Sheets), Supabase und Documind zu verwenden. Hier ist jeweils eine Kurzanleitung:
Google APIs
Da wir auch die Google Sheets API verwenden, können Sie einfach Schritt 6 ausführen, um eine weitere Integration auf Nango zu erstellen. Suchen Sie nach der Google Sheets-Integration und verwenden Sie dieselbe Client-ID und dasselbe Geheimnis, die Sie kopiert haben. Fügen Sie im Bereich für Bereiche https://www.googleapis.com/auth/spreadsheets
hinzuUm Ihre App zu veröffentlichen, gehen Sie zum OAuth-Zustimmungsbildschirm in der Google-Konsole und klicken Sie auf die Schaltfläche „Veröffentlichen“.
Supabase
Jetzt schreiben wir den Code in kleinen Schritten.
Erstellen Sie eine .env-Datei, um alle wichtigen Variablen zu speichern, die im gesamten Code verwendet werden. Hier ist ein Beispiel:
mkdir nova cd nova
Wir werden im weiteren Verlauf des Codes erläutern, wie diese Variablen abgerufen und verwendet werden.
Wir beginnen mit der Verwendung der Gmail-API, um E-Mails abzurufen, die nicht das Label „Verarbeitet“ haben und Anhänge enthalten.
Um das erforderliche Zugriffstoken abzurufen, verwenden wir Nango, das automatisch Token-Aktualisierungen durchführt, wenn diese ablaufen, sodass Sie sich nicht selbst um die Verwaltung der Token-Lebenszyklen kümmern müssen.
Alles was Sie brauchen sind:
Mit Ihrem eigenen Gmail-Konto können Sie ganz einfach eine neue Verbindung direkt über die Nango-Benutzeroberfläche hinzufügen. Ihren geheimen Schlüssel finden Sie im Abschnitt „Umgebungseinstellungen“ des Nango-Dashboards.
npm init -y
Der Einfachheit halber beschränken wir die Ergebnisse auf jeweils nur fünf E-Mails und filtern speziell, um nur E-Mails mit PDF-Anhängen abzurufen. Von diesen rufen wir nur den ersten Anhang zur Verarbeitung ab. Nachdem wir den Anhang heruntergeladen haben, kennzeichnen wir die E-Mail mit einem Etikett als verarbeitet und stellen so sicher, dass sie in zukünftigen Abfragezyklen nicht erneut abgerufen wird.
Als nächstes müssen wir die heruntergeladenen PDFs auf Supabase hochladen. Stellen Sie sicher, dass Sie den Bucket-Namen im Code durch Ihren ersetzen.
npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
Sobald das PDF in Supabase gespeichert ist, verwenden wir Documind, um die relevanten Daten zu extrahieren. Da es OpenAI für die Verarbeitung nutzt, stellen Sie sicher, dass Ihr API-Schlüssel zur .env-Datei hinzugefügt wird.
Documind arbeitet mit Schemata, die Sie definieren, um die benötigten strukturierten Daten zu extrahieren. Wir werden uns in Kürze mit der Schemadefinition befassen, aber Sie können auch gerne die Dokumentation für weitere Details durchsehen.
SUPABASE_API_KEY=<Supabase API Key> SUPABASE_URL=<Supabase URL> OPENAI_API_KEY=<Open AI API Key> NANGO_KEY=<Nango secret key>
Nachdem wir die Daten aus dem PDF extrahiert haben, senden wir sie an Google Sheets.
Bevor Sie fortfahren, stellen Sie sicher, dass Ihre Google Sheets eingerichtet sind und Sie über Nango eine Verbindung mit Ihrem Konto hergestellt haben. Falls Sie es noch nicht getan haben, finden Sie hier eine Vorlage, mit der Sie loslegen können.
mkdir nova cd nova
Nachdem wir die einzelnen Funktionen geschrieben haben, müssen wir alles zusammenbringen.
In diesem Schritt definieren wir das Schema, das Documind zum Extrahieren der erforderlichen Daten verwendet. Dieses Schema unterstützt die KI bei der Identifizierung und Strukturierung der relevanten Informationen aus den PDFs.
npm init -y
Der vollständige Quellcode ist auf GitHub verfügbar, zusammen mit einer Beispiel-PDF zum Testen. Sie können aber auch gerne eigene Dokumente erstellen und verwenden. Klonen Sie einfach das Repository, ändern Sie den Code entsprechend Ihren Anforderungen und probieren Sie ihn für Ihren eigenen Anwendungsfall aus.
Das obige ist der detaillierte Inhalt vonVerwandeln Sie unstrukturierte E-Mails in umsetzbare Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!