Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Visualisasikan hasil AI/ML model menggunakan Flask dan AWS Elastic Beanstalk
Chris Caudill dan Durga Sury, Amazon Web Services
Ringkasan
Memvisualisasikan output dari layanan kecerdasan buatan dan pembelajaran mesin (AI/ML) seringkali membutuhkan panggilan API kompleks yang harus disesuaikan oleh pengembang dan teknisi Anda. Ini bisa menjadi kelemahan jika analis Anda ingin menjelajahi kumpulan data baru dengan cepat.
Anda dapat meningkatkan aksesibilitas layanan Anda dan memberikan bentuk analisis data yang lebih interaktif dengan menggunakan antarmuka pengguna berbasis web (UI) yang memungkinkan pengguna untuk mengunggah data mereka sendiri dan memvisualisasikan hasil model di dasbor.
Pola ini menggunakan Flask
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS.
AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi pada mesin lokal Anda. Untuk informasi selengkapnya tentang ini, lihat Dasar-dasar konfigurasi dalam AWS CLI dokumentasi. Anda juga dapat menggunakan lingkungan pengembangan AWS Cloud9 terintegrasi (IDE); untuk informasi lebih lanjut tentang ini, lihat tutorial Python untuk AWS Cloud9 dan Pratinjau aplikasi yang sedang berjalan di AWS Cloud9 IDE dalam dokumentasi. AWS Cloud9
Pemberitahuan: AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Pemahaman tentang kerangka aplikasi web Flask. Untuk informasi selengkapnya tentang Flask, lihat Quickstart dalam dokumentasi
Flask. Python versi 3.6 atau yang lebih baru, diinstal dan dikonfigurasi. Anda dapat menginstal Python dengan mengikuti petunjuk dari Menyiapkan lingkungan pengembangan Python Anda dalam dokumentasi. AWS Elastic Beanstalk
Elastic Beanstalk Command Line Interface (EB CLI), diinstal dan dikonfigurasi. Untuk informasi lebih lanjut tentang ini, lihat Menginstal CLI EB dan Mengonfigurasi CLI EB dari dokumentasi Elastic Beanstalk.
Batasan
Aplikasi Flask pola ini dirancang untuk bekerja dengan file.csv yang menggunakan kolom teks tunggal dan dibatasi hingga 200 baris. Kode aplikasi dapat disesuaikan untuk menangani jenis file dan volume data lainnya.
Aplikasi tidak mempertimbangkan retensi data dan terus mengumpulkan file pengguna yang diunggah hingga dihapus secara manual. Anda dapat mengintegrasikan aplikasi dengan Amazon Simple Storage Service (Amazon S3) Simple Storage S3) untuk penyimpanan objek persisten atau menggunakan database seperti Amazon DynamoDB untuk penyimpanan nilai kunci tanpa server.
Aplikasi hanya mempertimbangkan dokumen dalam bahasa Inggris. Namun, Anda dapat menggunakan Amazon Comprehend untuk mendeteksi bahasa utama dokumen. Untuk informasi selengkapnya tentang bahasa yang didukung untuk setiap tindakan, lihat referensi API di dokumentasi Amazon Comprehend.
Arsitektur
Arsitektur aplikasi labu
Flask adalah kerangka kerja ringan untuk mengembangkan aplikasi web dengan Python. Ini dirancang untuk menggabungkan pemrosesan data Python yang kuat dengan UI web yang kaya. Aplikasi Flask pola menunjukkan cara membuat aplikasi web yang memungkinkan pengguna mengunggah data, mengirim data ke Amazon Comprehend untuk inferensi, dan kemudian memvisualisasikan hasilnya. Aplikasi ini memiliki struktur sebagai berikut:
static— Berisi semua file statis yang mendukung UI web (misalnya JavaScript, CSS, dan gambar)templates- Berisi semua halaman HTML aplikasiuserData— Menyimpan data pengguna yang diunggahapplication.py— File aplikasi Flaskcomprehend_helper.py— Fungsi untuk melakukan panggilan API ke Amazon Comprehendconfig.py— File konfigurasi aplikasirequirements.txt- Dependensi Python yang dibutuhkan oleh aplikasi
application.pyScript berisi fungsionalitas inti aplikasi web, yang terdiri dari empat rute Flask. Diagram berikut menunjukkan rute Flask ini.

/adalah root aplikasi dan mengarahkan pengguna keupload.htmlhalaman (disimpan dalamtemplatesdirektori)./saveFileadalah rute yang dipanggil setelah pengguna mengunggah file. Rute ini menerimaPOSTpermintaan melalui formulir HTML, yang berisi file yang diunggah oleh pengguna. File disimpan diuserDatadirektori dan rute mengarahkan pengguna ke rute./dashboard/dashboardmengirim pengguna kedashboard.htmlhalaman. Dalam HTML halaman ini, ia menjalankan JavaScript kodestatic/js/core.jsyang membaca data dari/datarute dan kemudian membangun visualisasi untuk halaman tersebut./dataadalah JSON API yang menyajikan data untuk divisualisasikan di dasbor. Rute ini membaca data yang disediakan pengguna dan menggunakan fungsicomprehend_helper.pyuntuk mengirim data pengguna ke Amazon Comprehend untuk analisis sentimen dan pengenalan entitas bernama (NER). Respons Amazon Comprehend diformat dan dikembalikan sebagai objek JSON.
Arsitektur penyebaran

Untuk informasi lebih lanjut tentang pertimbangan desain untuk aplikasi yang digunakan menggunakan Elastic Beanstalk pada, lihat di dokumentasi. AWS Cloud AWS Elastic Beanstalk
Tumpukan teknologi
Amazon Comprehend
Elastic Beanstalk
Flask
Otomatisasi dan skala
Penerapan Elastic Beanstalk secara otomatis diatur dengan penyeimbang beban dan grup penskalaan otomatis. Untuk opsi konfigurasi lainnya, lihat Mengonfigurasi lingkungan Elastic Beanstalk dalam dokumentasi Elastic Beanstalk.
Alat
AWS Command Line Interface (AWS CLI) adalah alat terpadu yang menyediakan antarmuka yang konsisten untuk berinteraksi dengan semua bagian AWS.
Amazon Comprehend menggunakan natural language processing (NLP) untuk mengekstrak wawasan tentang isi dokumen tanpa memerlukan preprocessing khusus.
AWS Elastic Beanstalkmembantu Anda dengan cepat menyebarkan dan mengelola aplikasi di dalam AWS Cloud tanpa harus belajar tentang infrastruktur yang menjalankan aplikasi tersebut.
Elastic Beanstalk CLI (EB CLI) adalah AWS Elastic Beanstalk antarmuka baris perintah yang menyediakan perintah interaktif untuk menyederhanakan pembuatan, pembaruan, dan pemantauan lingkungan dari repositori lokal.
Framework Flask
melakukan pemrosesan data dan panggilan API menggunakan Python dan menawarkan visualisasi web interaktif dengan Plotly.
Repositori kode
Kode untuk pola ini tersedia dalam hasil AI/ML model GitHub Visualize menggunakan Flask dan AWS Elastic Beanstalk
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning GitHub repositori. | Tarik kode aplikasi dari hasil AI/ML model GitHub Visualize menggunakan Flask dan AWS Elastic Beanstalk
catatanPastikan Anda mengonfigurasi kunci SSH Anda dengan GitHub. | Developer |
Instal modul Python. | Setelah Anda mengkloning repositori,
| Pengembang Python |
Uji aplikasi secara lokal. | Mulai server Flask dengan menjalankan perintah berikut:
Ini mengembalikan informasi tentang server yang sedang berjalan. Anda harus dapat mengakses aplikasi dengan membuka browser dan mengunjungi http://localhost:5000 catatanJika Anda menjalankan aplikasi dalam AWS Cloud9 IDE, Anda perlu mengganti
Anda harus mengembalikan perubahan ini sebelum penerapan. | Pengembang Python |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Luncurkan aplikasi Elastic Beanstalk. | Untuk meluncurkan proyek Anda sebagai aplikasi Elastic Beanstalk, jalankan perintah berikut dari direktori root aplikasi Anda:
penting
Jalankan | Arsitek, Pengembang |
Menyebarkan lingkungan Elastic Beanstalk. | Jalankan perintah berikut dari direktori root aplikasi:
catatan
| Arsitek, Pengembang |
Otorisasi penerapan Anda untuk menggunakan Amazon Comprehend. | Meskipun aplikasi Anda mungkin berhasil di-deploy, Anda juga harus menyediakan penerapan Anda dengan akses ke Amazon Comprehend. Lampirkan
penting
| Pengembang, Arsitek keamanan |
Kunjungi aplikasi yang Anda gunakan. | Setelah aplikasi Anda berhasil menyebarkan, Anda dapat mengunjunginya dengan menjalankan Anda juga dapat menjalankan | Arsitek, Pengembang |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Otorisasi Elastic Beanstalk untuk mengakses model baru. | Pastikan Elastic Beanstalk memiliki izin akses yang diperlukan untuk titik akhir model baru Anda. Misalnya, jika Anda menggunakan titik akhir Amazon SageMaker AI, penerapan Anda harus memiliki izin untuk memanggil titik akhir. Untuk informasi lebih lanjut tentang ini, lihat InvokeEndpointdi dokumentasi Amazon SageMaker AI. | Pengembang, Arsitek keamanan |
Kirim data pengguna ke model baru. | Untuk mengubah model HTML yang mendasari dalam aplikasi ini, Anda harus mengubah file berikut:
| Ilmuwan data |
Perbarui visualisasi dasbor. | Biasanya, menggabungkan model ML baru berarti visualisasi harus diperbarui untuk mencerminkan hasil baru. Perubahan ini dibuat dalam file-file berikut:
| Pengembang web |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Perbarui file persyaratan aplikasi Anda. | Sebelum mengirim perubahan ke Elastic Beanstalk,
| Pengembang Python |
Pasang kembali lingkungan Elastic Beanstalk. | Untuk memastikan bahwa perubahan aplikasi Anda tercermin dalam penyebaran Elastic Beanstalk Anda, navigasikan ke direktori root aplikasi Anda dan jalankan perintah berikut:
Ini mengirimkan versi terbaru dari kode aplikasi ke penyebaran Elastic Beanstalk Anda yang ada. | Administrator sistem, Arsitek |
Pemecahan masalah
| Isu | Solusi |
|---|---|
| Jika kesalahan ini terjadi saat Anda menjalankan |
| Kesalahan ini terjadi di log penerapan karena Elastic Beanstalk mengharapkan kode Flask diberi nama.
Pastikan Anda mengganti Anda juga dapat memanfaatkan Gunicorn dan Procfile. Untuk informasi selengkapnya tentang pendekatan ini, lihat Mengkonfigurasi server WSGI dengan Procfile dalam dokumentasi. AWS Elastic Beanstalk |
| Elastic Beanstalk mengharapkan variabel yang mewakili aplikasi Flask Anda diberi nama.
|
| Gunakan EB CLI untuk menentukan key pair mana yang akan digunakan atau membuat key pair untuk instans Amazon EC2 deployment Anda. Untuk mengatasi kesalahan, jalankan
Tanggapi dengan |
Saya telah memperbarui kode saya dan menerapkan kembali, tetapi penerapan saya tidak mencerminkan perubahan saya. | Jika Anda menggunakan repositori Git dengan penerapan Anda, pastikan Anda menambahkan dan mengkomit perubahan Anda sebelum menerapkan ulang. |
Anda melihat pratinjau aplikasi Flask dari AWS Cloud9 IDE dan mengalami kesalahan. | Untuk informasi selengkapnya tentang ini, lihat Mempratinjau aplikasi yang sedang berjalan di AWS Cloud9 IDE dalam AWS Cloud9 dokumentasi. |
Sumber daya terkait
Informasi tambahan
Pemrosesan bahasa alami menggunakan Amazon Comprehend
Dengan memilih untuk menggunakan Amazon Comprehend, Anda dapat mendeteksi entitas kustom dalam dokumen teks individual dengan menjalankan analisis real-time atau pekerjaan batch asinkron. Amazon Comprehend juga memungkinkan Anda untuk melatih pengenalan entitas kustom dan model klasifikasi teks yang dapat digunakan secara real time dengan membuat titik akhir.
Pola ini menggunakan pekerjaan batch asinkron untuk mendeteksi sentimen dan entitas dari file input yang berisi beberapa dokumen. Contoh aplikasi yang disediakan oleh pola ini dirancang bagi pengguna untuk mengunggah file.csv yang berisi satu kolom dengan satu dokumen teks per baris. comprehend_helper.pyFile dalam hasil AI/ML model GitHub Visualize menggunakan Flask dan AWS Elastic Beanstalk
BatchDetectEntities
Amazon Comprehend memeriksa teks kumpulan dokumen untuk entitas bernama dan mengembalikan entitas yang terdeteksi, lokasi, jenis entitas, dan skor yang menunjukkan tingkat kepercayaan Amazon Comprehend. Maksimal 25 dokumen dapat dikirim dalam satu panggilan API, dengan setiap dokumen berukuran lebih kecil dari 5.000 byte. Anda dapat memfilter hasil untuk hanya menampilkan entitas tertentu berdasarkan kasus penggunaan. Misalnya, Anda dapat melewati tipe ‘quantity’ entitas dan menetapkan skor ambang batas untuk entitas yang terdeteksi (misalnya, 0,75). Kami menyarankan Anda menjelajahi hasil untuk kasus penggunaan spesifik Anda sebelum memilih nilai ambang batas. Untuk informasi selengkapnya tentang ini, lihat BatchDetectEntitiesdi dokumentasi Amazon Comprehend.
BatchDetectSentiment
Amazon Comprehend memeriksa sekumpulan dokumen yang masuk dan mengembalikan sentimen yang berlaku untuk setiap dokumen (,,, atau). POSITIVE NEUTRAL MIXED NEGATIVE Maksimal 25 dokumen dapat dikirim dalam satu panggilan API, dengan setiap dokumen berukuran lebih kecil dari 5.000 byte. Menganalisis sentimen sangat mudah dan Anda memilih sentimen dengan skor tertinggi untuk ditampilkan dalam hasil akhir. Untuk informasi selengkapnya tentang ini, lihat BatchDetectSentimentdi dokumentasi Amazon Comprehend.
Penanganan konfigurasi labu
Server Flask menggunakan serangkaian variabel konfigurasi
Dalam pola ini, konfigurasi didefinisikan config.py dan diwariskan di dalamapplication.py.
config.pyberisi variabel konfigurasi yang diatur pada startup aplikasi. Dalam aplikasi ini,DEBUGvariabel didefinisikan untuk memberitahu aplikasi untuk menjalankan server dalam modus debug. catatan
Mode debug tidak boleh digunakan saat menjalankan aplikasi di lingkungan produksi.
UPLOAD_FOLDERadalah variabel kustom yang didefinisikan untuk direferensikan nanti dalam aplikasi dan menginformasikannya di mana data pengguna yang diunggah harus disimpan.application.pymemulai aplikasi Flask dan mewarisi pengaturan konfigurasi didefinisikan dalam.config.pyIni dilakukan oleh kode berikut:
application = Flask(__name__) application.config.from_pyfile('config.py')