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.
Untuk membina alat ini, kami memerlukan pakej berikut:
Sebelum kita mula menulis kod, kita perlu menyediakan beberapa perkara. Jangan risau; Saya akan membimbing anda melalui setiap langkah.
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.
Setelah Node.js dipasang, kami perlu memasang pakej yang akan membantu kami berinteraksi dengan Gmail, Helaian Google, Supabase dan Documind.
Buat folder baharu untuk projek anda dengan menjalankan:
mkdir nova cd nova
Mulakan projek:
npm init -y
Pasang pakej yang diperlukan:
npm install googleapis @supabase/supabase-js documind dotenv @nangohq/node
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
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
Sekarang mari tulis kod dalam langkah kecil.
Buat fail .env untuk menyimpan semua pembolehubah penting yang akan digunakan sepanjang kod. Berikut ialah contoh:
mkdir nova cd nova
Kami akan membincangkan cara mendapatkan dan menggunakan pembolehubah ini dengan lebih lanjut dalam kod.
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:
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
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.
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
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>
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
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
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!