Heim >Web-Frontend >js-Tutorial >Verwandeln Sie unstrukturierte E-Mails in umsetzbare Daten

Verwandeln Sie unstrukturierte E-Mails in umsetzbare Daten

DDD
DDDOriginal
2024-12-07 10:47:14988Durchsuche

Turn Unstructured Emails to Actionable Data

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.

Wie es funktioniert

  1. Umfrage-E-Mails: Zunächst richten wir ein System ein, um regelmäßig nach neuen E-Mails im Posteingang zu suchen. Sobald eine E-Mail gefunden wird, laden wir den PDF-Anhang herunter und versehen die E-Mail mit einem Etikett, damit sie in Zukunft nicht erneut abgefragt wird.
  2. Daten mit Documind extrahieren: Wir übergeben das PDF als URL an Documind, ein Open-Source-Paket, das KI nutzt, um strukturierte Daten aus Dokumenten zu extrahieren. Dadurch erhalten wir Informationen wie Artikelnamen, Mengen, Versanddetails, Gewicht und mehr.
  3. Speichern und verwenden Sie die Daten: Abschließend senden wir die extrahierten Daten an Google Sheets, sodass sie einfach angezeigt, verfolgt und für weitere Berechnungen verwendet werden können.

Was wir brauchen werden

Um dieses Tool zu erstellen, benötigen wir die folgenden Pakete:

  • Gmail-API: Zum Abrufen von E-Mails aus dem Posteingang.
  • Supabase: Zum Hochladen und Speichern der PDFs.
  • Documind: Zum Extrahieren strukturierter Daten aus den PDFs.
  • Google Sheets API: Zum Speichern der extrahierten Daten und zum Berechnen von Angeboten.
  • Nango: Zur Verwaltung der Benutzerauthentifizierung

Schritt 1: Ersteinrichtung

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.

1.1 Node.js installieren

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.

1.2 Erforderliche Bibliotheken installieren

Sobald Node.js installiert ist, müssen wir die Pakete installieren, die uns bei der Interaktion mit Gmail, Google Sheets, Supabase und Documind helfen.

  1. Öffnen Sie ein Terminal oder eine Eingabeaufforderung.
  2. Erstellen Sie einen neuen Ordner für Ihr Projekt, indem Sie Folgendes ausführen:

    mkdir nova
    cd nova
    
  3. Initialisieren Sie das Projekt:

    npm init -y
    
  4. Installieren Sie die erforderlichen Pakete:

    npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
    

1.3 API-Anmeldeinformationen abrufen

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

  1. Gehen Sie zur Google Cloud Console.
  2. Wählen Sie in der Projektliste ein Projekt aus oder erstellen Sie ein neues
  3. Aktivieren Sie die Gmail-API und die Google Sheets-API für Ihr Projekt:
    • Gehen Sie zur API-Bibliothek in der Cloud Console und suchen Sie nach „Gmail API“ und „Google Sheets API“. Klicken Sie auf die einzelnen Elemente und aktivieren Sie sie.
  4. Konfigurieren Sie Ihren Einwilligungsbildschirm:
    • Gehen Sie zu APIs & Dienste > OAuth-Zustimmungsbildschirm.
    • Geben Sie Ihrer App einen Namen.
    • Wählen Sie „Extern“ als Zielgruppentyp.
    • Füllen Sie alle weiteren erforderlichen Felder aus.
  5. Erstellen Sie OAuth 2.0-Anmeldeinformationen:
    • Gehen Sie zu APIs & Dienste > Anmeldeinformationen.
    • Klicken Sie auf Anmeldeinformationen erstellen und wählen Sie OAuth-Client-ID.
    • Wählen Sie „Webanwendung“ als Anwendungstyp.
    • Kopieren Sie Ihre Kunden-ID und Ihr Geheimnis.
  6. Um Benutzer-OAuth auf mehreren Plattformen einfach zu verwalten, verwende ich Nango. Sie können sich die Dokumentation zu den ersten Schritten ansehen:
    • Melden Sie sich bei Nango an und klicken Sie auf Neue Integration konfigurieren.
    • Suchen Sie in der Liste der Integrationen nach Google Mail.
    • Fügen Sie die Client-ID und das Geheimnis hinzu, die Sie kopiert haben.
    • Fügen Sie im Feld für Bereiche https://www.googleapis.com/auth/gmail.readonly, https://www.googleapis.com/auth/gmail.modify und https://www.googleapis hinzu. com/auth/gmail.labels
    • Kopieren Sie die Rückruf-URL für die Integration und speichern Sie.
    • Gehen Sie zurück zu „Anmeldeinformationen“ in Ihrer Google-Konsole und fügen Sie die Rückruf-URL als autorisierten Weiterleitungs-URI hinzu.

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

hinzu

Um Ihre App zu veröffentlichen, gehen Sie zum OAuth-Zustimmungsbildschirm in der Google-Konsole und klicken Sie auf die Schaltfläche „Veröffentlichen“.

Supabase

  1. Eröffnen Sie ein kostenloses Konto bei Supabase.
  2. Erstellen Sie ein neues Projekt und einen Bucket zum Speichern von PDFs.
  3. Rufen Sie die API-URL und den API-Schlüssel aus Ihren Projekteinstellungen ab.

Schritt 2: Schreiben Sie den Code

Jetzt schreiben wir den Code in kleinen Schritten.

2.1 Umgebungsvariablen hinzufügen

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.

2.2 Gmail-API einrichten und E-Mails abrufen

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:

  1. Die Integrations-ID aus dem Gmail-Setup in Nango.
  2. Die Verbindungs-ID für den Benutzer, dessen Zugriffstoken benötigt wird.
  3. Ihr Nango-Geheimschlüssel.

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.

2.2 Auf Supabase hochladen

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

2.3 Daten mit Documind extrahieren

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>

2.4 Senden Sie die extrahierten Daten an Google Sheets

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

Schritt 3: Alles zusammenfügen

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

Testen Sie den Code

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn