Rumah > hujung hadapan web > tutorial js > Tukar E-mel Tidak Berstruktur kepada Data Boleh Tindakan

Tukar E-mel Tidak Berstruktur kepada Data Boleh Tindakan

DDD
Lepaskan: 2024-12-07 10:47:14
asal
1009 orang telah melayarinya

Turn Unstructured Emails to Actionable Data

Dalam binaan ini, kami sedang membina alat yang direka untuk industri logistik. Alat ini akan mengautomasikan pengekstrakan data berstruktur daripada lampiran PDF (seperti permintaan untuk petikan atau helaian maklumat penghantaran) dalam e-mel, membolehkan data ini digunakan di tempat lain dalam aliran kerja.

Untuk menjadikan perkara lebih mudah difahami, mari gunakan Nova Logistics sebagai contoh—sebuah syarikat fiksyen yang pakar dalam mengangkut barang elektronik yang rapuh merentasi pelbagai bandar.

Di Nova Logistics, pelanggan menghubungi melalui e-mel untuk meminta sebut harga bagi item penghantaran antara bandar dan mereka biasanya melampirkan PDF yang mengandungi semua butiran penghantaran yang diperlukan. Pada masa ini, prosesnya adalah manual: seseorang di Nova perlu membuka setiap e-mel, memuat turun PDF yang dilampirkan, membacanya dan mengeluarkan maklumat penting seperti nama dan kuantiti item sebelum mengira kos penghantaran.

Ini boleh mengambil masa berjam-jam, terutamanya apabila terdapat berbilang e-mel setiap hari, setiap satu dengan dokumen PDF yang panjang.

Dalam artikel ini, kami akan meneruskan pembinaan alat untuk mengautomatikkan keseluruhan proses ini—daripada mengambil e-mel dan mengekstrak data PDF kepada menghantar maklumat yang diekstrak ke Helaian Google.

Bagaimana Ia Berfungsi

  1. E-mel Tinjauan: Pertama, kami akan menyediakan sistem untuk menyemak e-mel baharu dari peti masuk secara kerap. Sebaik sahaja e-mel ditemui, kami akan memuat turun lampiran PDF dan menggunakan label pada e-mel supaya ia tidak ditinjau lagi pada masa hadapan.
  2. Ekstrak Data dengan Documind: Kami akan menyerahkan PDF sebagai URL kepada Documind, pakej sumber terbuka yang menggunakan AI untuk mengekstrak data berstruktur daripada dokumen. Ini akan memberi kami maklumat seperti nama item, kuantiti, butiran penghantaran, berat dan banyak lagi.
  3. Simpan dan Gunakan Data: Akhir sekali, kami akan menghantar data yang diekstrak ke Helaian Google, menjadikannya mudah untuk dilihat, dijejaki dan digunakan untuk pengiraan selanjutnya.

Apa yang Kami Perlukan

Untuk membina alat ini, kami memerlukan pakej berikut:

  • API Gmail: Untuk mengambil e-mel daripada peti masuk.
  • Supabase: Untuk memuat naik dan menyimpan PDF.
  • Documind: Untuk mengekstrak data berstruktur daripada PDF.
  • API Helaian Google: Untuk menyimpan data yang diekstrak dan mengira petikan.
  • Nango: Untuk mengurus pengesahan pengguna

Langkah 1: Persediaan awal

Sebelum kita mula menulis kod, kita perlu menyediakan beberapa perkara. Jangan risau; Saya akan membimbing anda melalui setiap langkah.

1.1 Pasang Node.js

Kami akan menggunakan Node.js untuk menjalankan kod kami. Jika anda belum memasang Node.js, pergi ke tapak web Node.js dan muat turun versi terkini.

1.2 Pasang Perpustakaan Diperlukan

Setelah Node.js dipasang, kami perlu memasang pakej yang akan membantu kami berinteraksi dengan Gmail, Helaian Google, Supabase dan Documind.

  1. Buka terminal atau gesaan arahan.
  2. Buat folder baharu untuk projek anda dengan menjalankan:

    mkdir nova
    cd nova
    
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
  3. Mulakan projek:

    npm init -y
    
    Salin selepas log masuk
    Salin selepas log masuk
    Salin selepas log masuk
  4. Pasang pakej yang diperlukan:

    npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
    
    Salin selepas log masuk
    Salin selepas log masuk

1.3 Dapatkan Bukti Kelayakan API

Sebelum kami boleh mula menulis kod, anda perlu menyediakan dan mendapatkan semua bukti kelayakan untuk menggunakan API Google (Gmail dan Helaian Google), Supabase dan Documind. Berikut ialah panduan ringkas untuk setiap:

API Google

  1. Pergi ke Google Cloud Console.
  2. Daripada senarai projek, pilih projek atau buat projek baharu
  3. Dayakan API Gmail dan API Helaian Google untuk projek anda:
    • Pergi ke Pustaka API dalam Cloud Console dan cari "API Gmail" dan "API Helaian Google". Klik pada setiap satu dan dayakannya.
  4. Konfigurasikan skrin persetujuan anda:
    • Pergi ke API & Perkhidmatan > Skrin persetujuan OAuth.
    • Beri nama apl anda.
    • Pilih "Luaran" sebagai jenis khalayak anda.
    • Isi mana-mana medan lain yang diperlukan.
  5. Buat bukti kelayakan OAuth 2.0:
    • Pergi ke API & Perkhidmatan > Bukti kelayakan.
    • Klik pada Cipta Bukti Kelayakan dan pilih ID Klien OAuth.
    • Pilih “Aplikasi web” sebagai jenis aplikasi.
    • Salin ID dan Rahsia Pelanggan anda.
  6. Untuk mengurus OAuth pengguna dengan mudah merentas berbilang platform, saya menggunakan Nango. Anda boleh menyemak dokumentasi mereka tentang cara untuk bermula:
    • Log masuk ke Nango dan klik pada Konfigurasi Integrasi Baharu.
    • Cari Google Mail dalam senarai penyepaduan.
    • Tambahkan ID Pelanggan dan Rahsia yang anda salin.
    • Dalam medan untuk skop, tambahkan https://www.googleapis.com/auth/gmail.readonly , https://www.googleapis.com/auth/gmail.modify dan https://www.googleapis. com/auth/gmail.labels
    • Salin URL panggil balik untuk penyepaduan dan simpan.
    • Kembali ke Bukti kelayakan pada konsol Google anda dan tambahkan URL panggil balik sebagai URI ubah hala yang dibenarkan.

Memandangkan kami juga menggunakan API Helaian Google, anda hanya boleh melalui langkah 6 untuk membuat penyepaduan lain di Nango. Cari integrasi Helaian Google dan gunakan ID Pelanggan dan Rahsia yang sama yang anda salin. Dalam ruang untuk skop, tambahkan https://www.googleapis.com/auth/spreadsheets

Untuk menerbitkan apl anda, pergi ke skrin persetujuan OAuth dalam konsol Google dan klik pada butang Terbitkan.

Supabase

  1. Daftar untuk mendapatkan akaun percuma di Supabase.
  2. Buat projek dan baldi baharu untuk menyimpan PDF.
  3. Dapatkan URL API dan Kunci API daripada tetapan projek anda.

Langkah 2: Tulis kod

Sekarang mari tulis kod dalam langkah kecil.

2.1 Tambah pembolehubah persekitaran

Buat fail .env untuk menyimpan semua pembolehubah penting yang akan digunakan sepanjang kod. Berikut ialah contoh:

mkdir nova
cd nova
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kami akan membincangkan cara mendapatkan dan menggunakan pembolehubah ini dengan lebih lanjut dalam kod.

2.2 Sediakan API Gmail dan ambil e-mel

Kami akan bermula dengan menggunakan API Gmail untuk mengambil e-mel yang tidak mempunyai label Diproses dan mengandungi lampiran.

Untuk mendapatkan semula token akses yang diperlukan, kami akan menggunakan Nango, yang akan mengendalikan muat semula token secara automatik jika ia tamat tempoh, jadi anda tidak perlu risau tentang mengurus sendiri kitaran hayat token.

Apa yang anda perlukan ialah:

  1. ID Penyepaduan daripada persediaan Gmail di Nango.
  2. ID Sambungan untuk pengguna yang token aksesnya diperlukan.
  3. Kunci rahsia Nango anda.

Anda boleh menambah sambungan baharu dengan mudah melalui UI Nango menggunakan akaun Gmail anda sendiri. Kunci rahsia anda boleh didapati di bahagian tetapan persekitaran papan pemuka Nango.

npm init -y
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Untuk memudahkan, kami akan mengehadkan keputusan kepada hanya lima e-mel pada satu masa dan kami akan menapis secara khusus untuk hanya mengambil e-mel yang mempunyai lampiran PDF. Daripada itu, kami hanya akan mendapatkan lampiran pertama untuk diproses. Selepas memuat turun lampiran, kami akan menandakan e-mel sebagai diproses dengan menggunakan label, memastikan bahawa ia tidak akan diambil lagi dalam kitaran pengundian akan datang.

2.2 Muat naik ke Supabase

Seterusnya, kami perlu memuat naik PDF yang dimuat turun ke Supabase. Pastikan anda menggantikan nama baldi dalam kod dengan nama anda.

npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
Salin selepas log masuk
Salin selepas log masuk

2.3 Ekstrak data menggunakan Documind

Setelah PDF disimpan dalam Supabase, kami akan menggunakan Documind untuk mengekstrak data yang berkaitan. Memandangkan ia memanfaatkan OpenAI untuk pemprosesan, pastikan Kunci API anda ditambahkan pada fail .env.

Documind berfungsi dengan skema yang anda tentukan untuk mengekstrak data berstruktur yang anda perlukan. Kami akan membincangkan definisi skema sebentar lagi, tetapi jangan ragu untuk menyemak dokumentasi untuk mendapatkan butiran lanjut.

SUPABASE_API_KEY=<Supabase API Key>
SUPABASE_URL=<Supabase URL>
OPENAI_API_KEY=<Open AI API Key>
NANGO_KEY=<Nango secret key>
Salin selepas log masuk

2.4 Hantar data yang diekstrak ke Helaian Google

Selepas mengekstrak data daripada PDF, kami akan menghantarnya ke Helaian Google.

Sebelum meneruskan, pastikan Helaian Google anda disediakan dan anda telah membuat sambungan dengan akaun anda melalui Nango. Jika anda belum melakukannya, berikut ialah templat yang boleh anda gunakan untuk bermula.

mkdir nova
cd nova
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Langkah 3: Menggabungkan segala-galanya

Sekarang kita telah menulis fungsi individu, kita perlu menyatukan segala-galanya.

Dalam langkah ini, kami akan mentakrifkan skema yang akan digunakan oleh Documind untuk mengekstrak data yang diperlukan. Skema ini akan membimbing AI dalam mengenal pasti dan menstruktur maklumat yang berkaitan daripada PDF.

npm init -y
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Uji Kod

Kod sumber penuh tersedia di GitHub, bersama-sama dengan sampel PDF untuk ujian. Walau bagaimanapun, anda dialu-alukan untuk membuat dan menggunakan dokumen anda sendiri juga. Hanya mengklon repositori, ubah suai kod agar sesuai dengan keperluan anda dan cuba untuk kes penggunaan anda sendiri.

Atas ialah kandungan terperinci Tukar E-mel Tidak Berstruktur kepada Data Boleh Tindakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan