RagHack - Aplikasi Penasihat Kebugaran GenAI
Definisi Masalah:
Panduan Kebugaran yang Dipersonalisasi : MyFitnessBuddy adalah Aplikasi Penasihat Kebugaran GenAI yang menyediakan rutinitas latihan khusus, rencana diet, dan kalkulator kalori makanan, mengatasi keterbatasan aplikasi kebugaran umum.
Advanced Retrieval-Augmented Generation : Ini memanfaatkan pendekatan hibrid yang menggabungkan Retrieval-Augmented Generation (RAG) dan Graph Retrieval-Augmented Generation (GRAG) untuk memberikan respons yang akurat dan sadar konteks terhadap pertanyaan pengguna.
Menampilkan Inovasi di RAGHack : Dikembangkan untuk hackathon RAGHack, MyFitnessBuddy menunjukkan kekuatan teknologi RAG dalam menciptakan solusi kebugaran berbasis AI yang menarik dan efektif menggunakan Azure AI dan kerangka kerja populer.
Arsitektur dan Implementasi:
Ikhtisar Arsitektur:
Gambar.1 Arsitektur
MyFitnessBuddy menggunakan arsitektur hybrid yang menggabungkan Retrieval-Augmented Generation (RAG) dan Graph Retrieval-Augmented Generation (GRAG). Data diekstraksi menggunakan skrip Python dan dimasukkan ke dalam Azure Blob Storage untuk data terstruktur dan Azure Cosmos DB (Gremlin API) untuk data tidak terstruktur. Azure AI Search mengindeks data terstruktur, sedangkan database grafik mengelola hubungan kompleks dalam data tidak terstruktur. Aplikasi ini menggunakan Azure AI Studio dan Prompt Flow untuk menentukan logika obrolan dan menghubungkan sumber data. Kueri pengguna diproses oleh server aplikasi, mengambil informasi yang relevan dari Azure AI Search dan Cosmos DB, yang kemudian dikirim ke Azure OpenAI Services (ChatGPT) untuk menghasilkan respons yang dipersonalisasi. Pendekatan hibrid ini memastikan panduan kebugaran yang akurat, peka konteks, dan dipersonalisasi bagi pengguna.
Ikhtisar Implementasi:
Ekstraksi dan Penyerapan Data:
Gambar 2. Arsitektur Ekstraksi Data
- Prosesnya dimulai dengan skrip Python yang mengekstrak data terstruktur dan tidak terstruktur dari berbagai sumber. Data ini kemudian dimasukkan ke dalam dua sistem penyimpanan berbeda:
- Azure Blob Storage: Digunakan untuk data terstruktur, yang dikelompokkan dan diindeks.
- Azure Cosmos DB (Gremlin API): Digunakan untuk data tidak terstruktur, diserap sebagai GraphDoc untuk mengaktifkan pengambilan berbasis grafik.
Pendekatan RAG Hibrid:
Gambar 3. Arsitektur Hybrid RAG
- RAG (Generasi Pengambilan-Augmented):
- Data terstruktur yang diserap ke dalam Azure Blob Storage terhubung ke Azure AI Search untuk pengindeksan dan pengambilan.
- Azure AI Studio memfasilitasi pengelompokan dan pengindeksan data, menentukan logika obrolan, dan menghasilkan titik akhir menggunakan Azure Prompt Flow.
- Saat kueri pengguna diterima, Azure AI Search mengambil informasi yang relevan dari data yang diindeks.
- Grafik RAG (Generasi Augmented Pengambilan Grafik):
- Azure Cosmos DB menyimpan data tidak terstruktur dalam format grafik menggunakan API Gremlin. Pendekatan ini memungkinkan aplikasi untuk memahami hubungan kompleks antar entitas seperti item makanan, olahraga, dan metrik kesehatan pengguna.
- Graph RAG mengambil pengetahuan yang relevan secara kontekstual dari Azure Cosmos DB, yang kemudian digabungkan dengan data terstruktur untuk menghasilkan respons yang lebih baik.
Gambar 4. Contoh bagaimana Data Tidak Terstruktur disimpan sebagai Grafik di Azure CosmoDB (Gremlin API)
Azure AI Studio:
Gambar 5. Arsitektur Azure AI Studio
Aliran Cepat
Kami menyebarkan dua titik akhir menggunakan Azure Prompt Flow . Salah satunya adalah titik akhir niat penulisan ulang , dan yang lainnya adalah My Fitness Buddy . Titik akhir ini dirancang untuk menyelesaikan dua kasus penggunaan yang berbeda: satu berfokus pada optimalisasi pengambilan dokumen melalui pembuatan kueri, sementara yang lain menawarkan saran kebugaran yang dipersonalisasi dalam batas aman yang telah ditentukan sebelumnya dengan basis pengetahuan RAG.
1. Tulis Ulang Titik Akhir Maksud
Tujuan : Titik akhir ini dirancang untuk menangani tugas tertentu: menghasilkan kueri penelusuran berdasarkan pertanyaan pengguna dan riwayat percakapan sebelumnya. Dengan menggabungkan "pertanyaan pengguna saat ini" dan konteks sebelumnya, titik akhir menghasilkan kueri kanonik tunggal yang mencakup semua detail yang diperlukan, tanpa varian. Ini digunakan untuk sistem pengambilan dokumen, di mana menghasilkan kueri dan maksud yang tepat akan menghasilkan hasil yang lebih akurat.
Gambar 6. Alur titik akhir Rewrite Intent
2. Titik akhir Teman Kebugaran Saya
Tujuan : Titik akhir kedua adalah My Fitness Buddy yang menawarkan saran kebugaran yang dipersonalisasi, rencana latihan, dan tips nutrisi berdasarkan masukan pengguna. Asisten diprogram untuk menghindari nasihat medis dan hanya berpegang pada kumpulan data yang disediakan untuk memastikan bahwa semua rekomendasi aman, memotivasi, dan berbasis bukti, serta basis pengetahuan diambil untuk potongan dokumen yang dikonfigurasi sebagai indeks pencarian.
Gambar 7. Aliran titik akhir My Fitness Buddy
Alur Aplikasi:
- Pengguna berinteraksi dengan aplikasi MyFitnessBuddy melalui antarmuka chatbot berbasis Python Streamlit.
- Server aplikasi memproses kueri pengguna dan mengarahkannya ke sistem pengambilan yang sesuai (Azure AI Search untuk data terstruktur atau Azure Cosmos DB untuk data tidak terstruktur) berdasarkan jenis kueri.
- Informasi yang relevan diambil dari sumber data yang dipilih dan dikirim ke Azure OpenAI Services (ChatGPT) bersama dengan perintah yang dibuat untuk menghasilkan respons yang dipersonalisasi.
- Respons akhir, yang diperkaya dengan informasi relevan secara kontekstual, dikembalikan kepada pengguna melalui aplikasi Streamlit, memberikan saran dan rekomendasi kebugaran yang disesuaikan.
Gambar 8. Aplikasi
Gambar 9. Alat pengujian untuk titik akhir
Teknologi yang Digunakan:
- Penyimpanan dan Pengambilan Data: Penyimpanan Azure Blob, Azure Cosmos DB (Gremlin API), Pencarian Azure AI.
- Model AI dan Bahasa: Layanan Azure OpenAI (ChatGPT).
- Pemrosesan Data dan Aliran Logika: Azure AI Studio, Azure Prompt Flow.
- Backend dan Server Aplikasi: Python untuk ekstraksi dan prapemrosesan data, dengan beberapa titik integrasi untuk penyerapan dan pengambilan data.
Target Pemirsa:
- Penggemar Kebugaran: Individu yang menyukai kebugaran dan mencari rutinitas olahraga dan rencana diet yang dipersonalisasi untuk mengoptimalkan perjalanan kebugaran mereka.
- Individu yang Sadar Kesehatan: Orang yang memprioritaskan gaya hidup sehat dan menginginkan akses mudah ke informasi nutrisi yang akurat, pelacakan kalori, dan saran diet yang disesuaikan.
- Pemula dalam Kebugaran: Pendatang baru yang membutuhkan panduan untuk memulai perjalanan kebugaran mereka, termasuk rutinitas latihan dasar, rekomendasi diet, dan jawaban atas pertanyaan umum terkait kebugaran.
- Profesional yang Sibuk: Pengguna dengan waktu terbatas untuk perencanaan kebugaran yang mencari akses mudah dan sesuai permintaan ke panduan kebugaran yang disesuaikan dan jawaban cepat atas pertanyaan terkait kesehatan.
- Individu dengan Tujuan Kesehatan Tertentu: Mereka yang memiliki tujuan kebugaran atau kondisi kesehatan unik yang memerlukan rencana dan saran yang dipersonalisasi yang mempertimbangkan kebutuhan dan preferensi spesifik mereka.
Kesimpulan dan Pekerjaan Masa Depan:
Kesimpulan
MyFitnessBuddy menunjukkan potensi menggabungkan teknik AI tingkat lanjut seperti Retrieval-Augmented Generation (RAG) dan Graph Retrieval-Augmented Generation (GRAG) untuk menciptakan penasihat kebugaran yang sangat personal dan sadar konteks. Dengan memanfaatkan kemampuan Azure AI dan mengintegrasikan berbagai sumber data, aplikasi ini menyediakan rutinitas olahraga yang disesuaikan, rencana diet, dan respons akurat terhadap pertanyaan pengguna. Pendekatan ini meningkatkan keterlibatan dan kepuasan pengguna dengan memberikan panduan kebugaran yang disesuaikan dan relevan.
Pekerjaan Masa Depan
- Personalisasi yang Ditingkatkan: Sempurnakan model lebih lanjut untuk memberikan penyesuaian yang lebih terperinci berdasarkan umpan balik, perilaku, dan preferensi pengguna.
- Dukungan Multibahasa: Menerapkan kemampuan multibahasa untuk menjangkau khalayak yang lebih luas secara global.
- Analisis Tingkat Lanjut: Kembangkan fitur analisis tingkat lanjut untuk memberikan pengguna wawasan yang lebih mendalam tentang kemajuan kebugaran, kebiasaan, dan tren mereka.
- Sumber Data yang Diperluas: Menggabungkan sumber data tambahan seperti database medis dan konten buatan pengguna untuk meningkatkan basis pengetahuan aplikasi dan meningkatkan akurasi rekomendasi.