berbicara di depan umum-mentor-ai-asisten
Anda dapat menemukan postingan blog terkait dengan repositori ini di sini: Tingkatkan keterampilan berbicara di depan umum menggunakan asisten virtual berbasis AI generatif dengan Amazon Bedrock
Peringatan
Contoh ini hanya untuk tujuan percobaan dan belum siap produksi. Penyebaran sampel ini dapat menimbulkan biaya . Harap pastikan untuk menghapus infrastruktur melalui instruksi yang diberikan di bagian akhir jika tidak diperlukan lagi.
Tingkatkan Keterampilan Berbicara di Depan Umum Menggunakan Asisten Virtual Berbasis GenAI Dengan Amazon Bedrock
Berbicara di depan umum adalah keterampilan yang penting di dunia saat ini, baik untuk presentasi profesional, lingkungan akademis, atau pertumbuhan pribadi. Namun, banyak orang bergelut dengan rasa cemas, kurang percaya diri, dan komunikasi yang tidak efektif saat berbicara di depan umum. Menyewa pelatih berbicara di depan umum mahal dan ketersediaannya terbatas. Kini, dengan munculnya Large Language Models (LLMs), asisten virtual yang didukung AI Generatif dapat digunakan oleh individu dari berbagai latar belakang dan lokasi serta organisasi dengan ukuran berapa pun untuk mendapatkan manfaat dari analisis ucapan secara real-time, identifikasi area. untuk perbaikan, dan saran untuk menyempurnakan penyampaian pidato.
Dalam repo ini, kami menghadirkan asisten virtual bertenaga Amazon Bedrock yang dapat mentranskripsikan audio seseorang dalam pidato presentasi, memeriksa penggunaan bahasa, kesalahan tata bahasa, kata pengisi, pengulangan kata dan kalimat, dll. dan memberikan rekomendasi serta menyarankan versi yang dikurasi pidato pengguna untuk meningkatkan presentasi. Solusi ini membantu menyempurnakan keterampilan komunikasi, meningkatkan kepercayaan diri, dan pada akhirnya memberdayakan individu untuk menjadi pembicara publik yang lebih efektif dan berdampak. Organisasi di berbagai sektor, termasuk perusahaan, lembaga pendidikan, entitas pemerintah, dan tokoh media sosial, dapat memanfaatkan solusi ini untuk memberikan pelatihan otomatis bagi karyawan, pelajar, dan keterlibatan mereka dalam berbicara di depan umum.
Solusi ini hanya ditulis dalam python, dan menggunakan templat CDK untuk menerapkan infrastruktur yang diperlukan di AWS.
Ikhtisar Solusi
Solusinya terdiri dari 4 komponen utama:
- Kolam Pengguna Amazon Cognito untuk autentikasi pengguna - pengguna yang diautentikasi diberikan akses ke portal web Asisten AI Mentor Berbicara di Depan Umum untuk mengunggah rekaman audio/video
- Portal web sederhana yang dibuat menggunakan Streamlit untuk mengunggah rekaman audio/video - file yang diunggah disimpan dalam bucket Amazon Simple Storage Service (Amazon S3) untuk pemrosesan, pengambilan, dan analisis nanti.
- Alur kerja AWS Step Functions untuk mengatur konversi audio menjadi teks menggunakan Amazon Transcribe dan kemudian memanggil Amazon Bedrock dengan rangkaian perintah AI untuk menghasilkan rekomendasi ucapan dan menulis ulang saran.
- Amazon Simple Notification Service (Amazon SNS) untuk mengirimkan pemberitahuan email kepada pengguna dengan rekomendasi yang dihasilkan Amazon Bedrock.
Solusi ini memanfaatkan Amazon Transcribe untuk konversi ucapan ke teks melalui pengenalan ucapan otomatis. Saat pengguna mengunggah file audio atau video, Amazon Transcribe mentranskripsikan ucapan tersebut menjadi teks, yang kemudian diteruskan sebagai data masukan ke model Anthropic Claude 3.5 Sonnet yang dihosting di Amazon Bedrock. Solusinya mengirimkan dua perintah ke Amazon Bedrock bersama dengan teks yang ditranskripsi. Perintah pertama adalah untuk menghasilkan umpan balik dan rekomendasi mengenai penggunaan bahasa, kesalahan tata bahasa, kata pengisi, pengulangan kata dan kalimat, dan aspek pidato lainnya. Perintah kedua adalah untuk mendapatkan versi pidato asli pengguna yang dikurasi. Rangkaian perintah AI dilakukan dengan Amazon Bedrock untuk kedua perintah ini guna memberikan respons yang sangat terkurasi. Pada akhirnya, solusi ini menggabungkan output dari kedua perintah tersebut, menampilkan rekomendasi komprehensif yang diperoleh menggunakan Amazon Bedrock di halaman web pengguna serta mengirimkan hasilnya melalui email kepada pengguna. Saat ini, solusi ini hanya mendukung ucapan pengguna dalam bahasa Inggris.
Arsitektur
Diagram berikut menunjukkan arsitektur solusi kami.
Mari jelajahi arsitektur langkah demi langkah:
- Pengguna mengautentikasi ke portal web Public Speaking Mentor AI Assistant (aplikasi Streamlit yang dihosting di desktop lokal pengguna) menggunakan mekanisme autentikasi Amazon Cognito User Pool.
- Pengguna mengunggah file audio/video ke portal web, yang disimpan dalam bucket Amazon S3 terenkripsi.
- Layanan S3 memicu peristiwa s3:ObjectCreated untuk setiap file yang disimpan ke bucket.
- Amazon EventBridge memanggil alur kerja AWS Step Functions berdasarkan peristiwa ini.
- Alur kerja AWS Step Functions menggunakan integrasi AWS SDK untuk memanggil Amazon Transcribe dan memulai StartTranscriptionJob, meneruskan bucket S3, jalur awalan, dan nama objek di parameter MediaFileUri. Alur kerja menunggu pekerjaan transkripsi selesai dan menyimpan transkrip di jalur awalan bucket S3 lainnya.
- Alur kerja AWS Step Functions kemudian menggunakan integrasi yang dioptimalkan untuk memanggil API InvokeModel Amazon Bedrock, yang menentukan model Anthropic Claude 3.5 Sonnet, prompt sistem, token maks, dan teks ucapan yang ditranskripsikan sebagai input ke API. Perintah sistem menginstruksikan Claude untuk memberikan saran tentang cara meningkatkan kemampuan bicara dengan mengidentifikasi tata bahasa yang salah, pengulangan kata atau konten, penggunaan kata pengisi, dan rekomendasi lainnya.
Penting
Untuk menghindari batasan ukuran muatan StepFunctions sebesar 256KB, kami menggunakan integrasi yang dioptimalkan AWS Lambda di Step Functions untuk menyimpan muatan untuk parameter inferensi Batuan Dasar dalam bucket S3. Fungsi AWS Lambda membuat payload yang diperlukan dan menyimpannya ke bucket S3 tertentu. Step Functions kemudian menggunakan jalur bucket S3 di parameter input
API Bedrock InvokeModel - bidang opsional ini khusus untuk integrasi Amazon Bedrock yang dioptimalkan dengan Step Functions. Hal ini memungkinkan kami meneruskan muatan yang lebih besar dari 256 KB.
- Setelah menerima respons dari Amazon Bedrock, alur kerja AWS Step Functions menggunakan rangkaian cepat untuk membuat masukan lain untuk Amazon Bedrock, menggabungkan ucapan yang ditranskripsi sebelumnya, respons model sebelumnya, dan meminta model untuk memberikan saran untuk menulis ulang pidato tersebut.
- Terakhir, alur kerja menggabungkan keluaran dari Amazon Bedrock ini, membuat pesan yang ditampilkan di halaman web pengguna yang masuk.
- Pada akhirnya, alur kerja Step Functions memanggil integrasi SNS Publish yang dioptimalkan untuk mengirim email ke pengguna dengan pesan yang dihasilkan Batuan Dasar.
- Menyederhanakan kueri aplikasi Langkah Berfungsi untuk menampilkan hasil keluaran pada halaman web Pengguna Cognito.
Fungsi Langkah Mesin Negara
Diagram berikut menunjukkan alur kerja Step Functions State Machine. Anda juga dapat mengakses Amazon States Language (ASL) yang setara dengan definisi mesin negara di sini - PublicSpeakingMentorAIAssistantStateMachine ASL
Instalasi
Prasyarat
Untuk menerapkan solusi Asisten AI Mentor Berbicara di Depan Umum, Anda harus memiliki prasyarat berikut:
Akun AWS dengan izin AWS Identity and Access Management (IAM) yang memadai untuk layanan AWS di bawah ini untuk menerapkan solusi dan menjalankan Portal Web Aplikasi Streamlit.
- Batuan Dasar Amazon
- Transkrip Amazon
- Fungsi Langkah AWS
- AWS Lambda
- Amazon EventBridge
- Kognisi Amazon
- Amazon SNS
- Amazon S3
- Amazon CloudWatch
- AWS CloudFormation
Akses model diaktifkan untuk Claude 3.5 Sonnet Anthropic di Amazon Bedrock di wilayah AWS yang Anda inginkan
Lingkungan desktop lokal dengan AWS CLI (Command Line Interface), versi terbaru AWS CDK (2.159.0 atau lebih tinggi), Python 3.8 atau lebih tinggi, dan Git terinstal.
Penyiapan AWS CLI dengan kredensial AWS yang diperlukan dan wilayah AWS yang diinginkan.
Penting
Harap pastikan Anda telah menginstal CDK terbaru (v2.159.0 atau lebih tinggi) karena dukungan untuk konstruksi Anthropic Claude 3.5 Sonnet CDK tidak tersedia di versi sebelumnya.
Terapkan solusi Asisten AI Mentor Berbicara di Depan Umum
Selesaikan langkah-langkah berikut untuk menerapkan infrastruktur AWS Public Speaking Mentor AI Assistant:
- Kloning repositori ke lingkungan disk lokal Anda dengan perintah berikut:
git clone https://github.com/aws-samples/improve_public_speaking_skills_using_a_genai_based_virtual_assistant_with_amazon_bedrock.git
- Ubah direktori ke repositori kloning dan direktori
app
di dalamnya.
cd improve_public_speaking_skills_using_a_genai_based_virtual_assistant_with_amazon_bedrock/app
- Buat lingkungan virtual python untuk infra:
- Aktifkan lingkungan virtual Anda:
source .venv/bin/activate
- Instal dependensi yang diperlukan
pip install -r requirements.txt
- (Opsional) Sintesis templat AWS CloudFormation menggunakan AWS CDK (Cloud Development Kit) untuk Python.
Tip
Anda mungkin perlu melakukan bootstraping cdk satu kali menggunakan perintah berikut. Lihat Bootstrapping CDK untuk lebih jelasnya.
cdk bootstrap aws:// < ACCOUNT-NUMBER- 1> / < REGION- 1>
- Terapkan templat AWS CloudFormation di akun AWS Anda dan wilayah yang dipilih
Setelah CDK berhasil diterapkan, ikuti langkah-langkah di bawah ini untuk membuat pengguna Cognito.
Buat pengguna Amazon Cognito untuk autentikasi
Selesaikan langkah-langkah berikut untuk membuat pengguna di Kolam Pengguna Amazon Cognito untuk mengakses portal web. Pengguna yang dibuat tidak memerlukan izin AWS apa pun:
- Masuk ke konsol AWS akun Anda dan pilih wilayah AWS penerapan Anda.
- Di Amazon Cognito di bawah Kolam pengguna, klik pada kolam pengguna yang dibuat oleh templat CloudFormation. Nama kumpulan pengguna akan memiliki awalan PSMBUserPool diikuti dengan serangkaian karakter acak sebagai satu kata.
- Klik tombol Buat pengguna dan masukkan nama pengguna dan kata sandi.
- Terakhir klik tombol buat pengguna di kanan bawah.
Berlangganan Topik SNS untuk pemberitahuan email
Selesaikan langkah-langkah berikut untuk berlangganan topik SNS untuk menerima pemberitahuan email rekomendasi ucapan:
- Masuk ke konsol AWS akun Anda dan pilih wilayah AWS penerapan Anda.
- Di Amazon SNS di bawah Topik, klik topik yang dibuat oleh templat CloudFormation. Nama topik akan terlihat seperti InfraStack-PublicSpeakingMentorAIAssistantTopic diikuti dengan serangkaian karakter acak sebagai satu kata.
- Klik tombol Buat berlangganan, pilih Protokol sebagai Email dari drop down dan masukkan alamat email Anda di kotak Titik Akhir.
- Terakhir klik tombol buat berlangganan di kanan bawah.
Jalankan aplikasi Streamlit untuk mengakses Portal Web
Selesaikan langkah-langkah berikut untuk menjalankan aplikasi Streamlit untuk mengakses portal web Public Speaking Mentor AI Assistant:
- Ubah direktori menjadi
webapp
di dalam direktori app
.
- Luncurkan server streamlit pada port 8080.
streamlit run webapp.py --server.port 8080
- Catat URL aplikasi Streamlit untuk penggunaan lebih lanjut. Bergantung pada pengaturan lingkungan Anda, Anda dapat memilih salah satu dari tiga URL (Lokal, Jaringan, atau Eksternal) yang disediakan oleh proses yang berjalan di server Streamlit.
Note: Allow inbound traffic on port 8080
Pastikan lalu lintas masuk pada port 8080 diizinkan di mesin lokal Anda.
Penggunaan
Ikuti langkah-langkah di bawah ini untuk menggunakan Asisten AI Mentor Berbicara di Depan Umum untuk meningkatkan kemampuan bicara Anda:
- Buka URL aplikasi Streamlit di browser Anda (lebih disukai Google Chrome) yang Anda catat pada langkah sebelumnya.
- Masuk ke portal web menggunakan nama pengguna dan kata sandi Amazon Cognito yang dibuat sebelumnya untuk otentikasi.
- Unggah rekaman audio/video Anda untuk mendapatkan rekomendasi ucapan dan hasil penulisan ulang ucapan.
- Klik Telusuri file untuk mencari dan memilih rekaman Anda.
- Klik tombol Unggah File untuk mengunggah file Anda ke bucket Amazon S3.
- Segera setelah pengunggahan file selesai, Asisten AI Mentor Berbicara di Depan Umum memproses transkripsi audio dan langkah-langkah teknis yang cepat untuk menghasilkan rekomendasi ucapan dan hasil penulisan ulang.
- Setelah pemrosesan selesai, Anda akan dapat melihat hasil Rekomendasi Pidato dan Penulisan Ulang Pidato di halaman web serta menerima email Anda melalui notifikasi Amazon SNS.
- Di sisi kanan halaman web, Anda dapat meninjau semua langkah pemrosesan yang dilakukan oleh solusi Asisten AI Mentor Public Speaking untuk mendapatkan hasil pidato Anda.
Membersihkan
Selesaikan langkah-langkah berikut untuk membersihkan sumber daya Anda:
- Hentikan proses server aplikasi Streamlit yang berjalan di lingkungan Anda menggunakan operasi Ctrl+C.
- Ubah ke direktori
app
di repositori Anda. - Hancurkan AWS CloudFormation menggunakan AWS CDK for Python.
Beberapa batasan
- Kode yang diberikan dimaksudkan sebagai demo dan titik awal, bukan siap produksi. Aplikasi Python bergantung pada perpustakaan pihak ketiga seperti Streamlit dan streamlit-cognito-auth. Sebagai pengembang, Anda bertanggung jawab untuk memeriksa, memelihara, dan menguji semua dependensi pihak ketiga dengan benar. Mekanisme otentikasi dan otorisasi khususnya harus dievaluasi secara menyeluruh. Secara umum, Anda harus melakukan tinjauan dan pengujian keamanan sebelum memasukkan kode demo ini ke dalam aplikasi produksi atau dengan data sensitif.
- Dalam demo ini, Amazon Cognito berada dalam konfigurasi sederhana. Perhatikan bahwa kumpulan pengguna Amazon Cognito dapat dikonfigurasi untuk menerapkan kebijakan kata sandi yang kuat, mengaktifkan autentikasi multi-faktor, dan mengatur AdvancedSecurityMode ke ENFORCED untuk memungkinkan sistem mendeteksi dan bertindak atas upaya masuk yang berbahaya.
- AWS menyediakan berbagai layanan, yang tidak diterapkan dalam demo ini, yang dapat meningkatkan keamanan aplikasi ini. Layanan keamanan jaringan seperti ACL jaringan dan AWS WAF dapat mengontrol akses ke sumber daya. Anda juga dapat menggunakan AWS Shield untuk perlindungan DDoS dan Amazon GuardDuty untuk deteksi ancaman. Amazon Inspector melakukan penilaian keamanan. Masih banyak lagi layanan AWS dan praktik terbaik yang dapat meningkatkan keamanan - lihat Model Tanggung Jawab Bersama AWS dan panduan praktik terbaik keamanan untuk rekomendasi tambahan. Pengembang bertanggung jawab untuk menerapkan dan mengonfigurasi layanan ini dengan benar untuk memenuhi persyaratan keamanan spesifiknya.
- Rotasi rahasia secara teratur disarankan, tidak diterapkan dalam demo ini.
Pengakuan
Sebagian besar kode untuk aplikasi web streamlit AWS Step Functions terinspirasi dari repo github Sampel AWS berikut: deploy-streamlit-app
Keamanan
Lihat KONTRIBUSI untuk informasi lebih lanjut.
Lisensi
Perpustakaan ini dilisensikan di bawah Lisensi MIT-0. Lihat file LISENSI.