RagHack - แอพที่ปรึกษาฟิตเนส GenAI
คำจำกัดความของปัญหา:
คำแนะนำการออกกำลังกายส่วนบุคคล : MyFitnessBuddy เป็นแอพ GenAI Fitness Advisor ที่ให้กิจวัตรการออกกำลังกายที่ปรับแต่งเอง แผนการควบคุมอาหาร และเครื่องคำนวณแคลอรี่อาหาร โดยระบุข้อจำกัดของแอปฟิตเนสทั่วไป
การดึงข้อมูล-Augmented Generation ขั้นสูง : ใช้ประโยชน์จากแนวทางไฮบริดที่ผสมผสานการดึงข้อมูล-Augmented Generation (RAG) และการสร้างการดึงข้อมูลแบบกราฟ (GRAG) เพื่อให้การตอบสนองที่แม่นยำและคำนึงถึงบริบทต่อคำค้นหาของผู้ใช้
จัดแสดงนวัตกรรมที่ RAGhack : พัฒนาขึ้นสำหรับแฮ็กกาธอนของ RAGhack โดย MyFitnessBuddy แสดงให้เห็นถึงพลังของเทคโนโลยี RAG ในการสร้างโซลูชันการออกกำลังกายที่ขับเคลื่อนด้วย AI ที่น่าสนใจและมีประสิทธิภาพ โดยใช้ Azure AI และเฟรมเวิร์กยอดนิยม
สถาปัตยกรรมและการนำไปใช้:
ภาพรวมสถาปัตยกรรม:
รูปที่ 1 สถาปัตยกรรม
MyFitnessBuddy ใช้สถาปัตยกรรมไฮบริดที่ผสมผสานการดึงข้อมูล-Augmented Generation (RAG) และการสร้างการดึงข้อมูลกราฟ (GRAG) ข้อมูลจะถูกแยกโดยใช้สคริปต์ Python และนำเข้าไปยัง Azure Blob Storage สำหรับข้อมูลที่มีโครงสร้างและ Azure Cosmos DB (Gremlin API) สำหรับข้อมูลที่ไม่มีโครงสร้าง Azure AI Search จะจัดทำดัชนีข้อมูลที่มีโครงสร้าง ในขณะที่ฐานข้อมูลกราฟจะจัดการความสัมพันธ์ที่ซับซ้อนในข้อมูลที่ไม่มีโครงสร้าง แอปพลิเคชันใช้ Azure AI Studio และ Prompt Flow เพื่อกำหนดตรรกะการแชทและเชื่อมต่อแหล่งข้อมูล เซิร์ฟเวอร์แอปประมวลผลคำค้นหาของผู้ใช้ โดยดึงข้อมูลที่เกี่ยวข้องจาก Azure AI Search และ Cosmos DB ซึ่งจะถูกส่งไปยัง Azure OpenAI Services (ChatGPT) เพื่อสร้างคำตอบเฉพาะบุคคล วิธีการแบบผสมผสานนี้รับประกันคำแนะนำการออกกำลังกายที่แม่นยำ คำนึงถึงบริบท และเป็นส่วนตัวสำหรับผู้ใช้
ภาพรวมการนำไปปฏิบัติ:
การสกัดและการนำเข้าข้อมูล:
รูปที่ 2 สถาปัตยกรรมการแยกข้อมูล
- กระบวนการเริ่มต้นด้วยสคริปต์ Python ที่แยกข้อมูลที่มีโครงสร้างและไม่มีโครงสร้างจากแหล่งต่างๆ จากนั้นข้อมูลนี้จะถูกนำเข้าไปยังระบบจัดเก็บข้อมูลที่แตกต่างกันสองระบบ:
- Azure Blob Storage: ใช้สำหรับข้อมูลที่มีโครงสร้างซึ่งแบ่งเป็นกลุ่มและจัดทำดัชนี
- Azure Cosmos DB (Gremlin API): ใช้สำหรับข้อมูลที่ไม่มีโครงสร้าง ซึ่งนำเข้าเป็น GraphDoc เพื่อเปิดใช้งานการดึงข้อมูลตามกราฟ
แนวทาง RAG แบบไฮบริด:
รูปที่ 3 สถาปัตยกรรม RAG แบบไฮบริด
- RAG (การสร้างแบบดึงข้อมูลเสริม):
- ข้อมูลที่มีโครงสร้างที่นำเข้าใน Azure Blob Storage เชื่อมต่อกับ Azure AI Search สำหรับการจัดทำดัชนีและการเรียกค้น
- Azure AI Studio อำนวยความสะดวกในการรวมกลุ่มและจัดทำดัชนีข้อมูล กำหนดตรรกะการแชท และสร้างจุดสิ้นสุดโดยใช้ Azure Prompt Flow
- เมื่อได้รับคำถามจากผู้ใช้ Azure AI Search จะดึงข้อมูลที่เกี่ยวข้องจากข้อมูลที่จัดทำดัชนี
- กราฟ RAG (การสร้างกราฟการดึงข้อมูลเสริม):
- Azure Cosmos DB จัดเก็บข้อมูลที่ไม่มีโครงสร้างในรูปแบบกราฟโดยใช้ Gremlin API แนวทางนี้ช่วยให้แอปพลิเคชันเข้าใจความสัมพันธ์ที่ซับซ้อนระหว่างเอนทิตี เช่น รายการอาหาร การออกกำลังกาย และการวัดผลด้านสุขภาพของผู้ใช้
- Graph RAG ดึงความรู้ที่เกี่ยวข้องตามบริบทจาก Azure Cosmos DB ซึ่งจากนั้นจะรวมกับข้อมูลที่มีโครงสร้างสำหรับการสร้างการตอบสนองที่ได้รับการปรับปรุง
รูปที่ 4 ตัวอย่างวิธีการจัดเก็บข้อมูลที่ไม่มีโครงสร้างเป็นกราฟใน Azure CosmoDB (Gremlin API)
สตูดิโอ Azure AI:
รูปที่ 5 สถาปัตยกรรม Azure AI Studio
การไหลแบบพร้อมท์
เราปรับใช้จุดสิ้นสุดสองจุดโดยใช้ Azure Prompt Flow รายการหนึ่งคือจุดสิ้นสุด ความตั้งใจในการเขียนใหม่ และอีกรายการคือ My Fitness Buddy ตำแหน่งข้อมูลเหล่านี้ได้รับการออกแบบมาเพื่อแก้ไขกรณีการใช้งานที่แตกต่างกันสองกรณี กรณีหนึ่งมุ่งเน้นไปที่การปรับการดึงเอกสารให้เหมาะสมผ่านการสร้างแบบสอบถาม ในขณะที่อีกกรณีหนึ่งให้คำแนะนำด้านการออกกำลังกายส่วนบุคคลภายในขอบเขตความปลอดภัยที่กำหนดไว้ล่วงหน้าด้วยฐานความรู้ของ RAG
1. เขียนจุดสิ้นสุดเจตนาใหม่
วัตถุประสงค์ : ตำแหน่งข้อมูลนี้ออกแบบมาเพื่อจัดการงานเฉพาะ: สร้างคำค้นหาตามคำถามของผู้ใช้และประวัติการสนทนาก่อนหน้า ด้วยการรวม "คำถามของผู้ใช้ปัจจุบัน" และบริบทก่อนหน้า จุดสิ้นสุดจะสร้าง แบบสอบถามตามรูปแบบบัญญัติเดียว ที่มีรายละเอียดที่จำเป็นทั้งหมด โดยไม่มีตัวแปร สิ่งนี้ใช้สำหรับระบบเรียกค้นเอกสาร ซึ่งสร้างการสืบค้นและความตั้งใจที่แม่นยำซึ่งนำไปสู่ผลลัพธ์ที่แม่นยำยิ่งขึ้น
รูปที่ 6 โฟลว์ของจุดสิ้นสุดเจตนาการเขียนซ้ำ
2. จุดสิ้นสุด My Fitness Buddy
วัตถุประสงค์ : จุดสิ้นสุดที่สองคือ My Fitness Buddy ที่ให้คำแนะนำด้านการออกกำลังกายส่วนบุคคล แผนการออกกำลังกาย และเคล็ดลับด้านโภชนาการตามข้อมูลของผู้ใช้ ผู้ช่วยได้รับการตั้งโปรแกรมให้หลีกเลี่ยงคำแนะนำทางการแพทย์และยึดตามชุดข้อมูลที่ให้มาเท่านั้นเพื่อให้แน่ใจว่าคำแนะนำทั้งหมดปลอดภัย สร้างแรงบันดาลใจ และอิงตามหลักฐานเชิงประจักษ์ และฐานความรู้จะได้รับคืนสำหรับเอกสารชิ้นเล็กๆ ที่กำหนดค่าเป็นดัชนีการค้นหา
รูปที่ 7 ขั้นตอนของจุดสิ้นสุด My Fitness Buddy
ขั้นตอนการสมัคร:
- ผู้ใช้โต้ตอบกับแอป MyFitnessBuddy ผ่านอินเทอร์เฟซแชทบอทที่ใช้ Python Streamlit
- แอปพลิเคชันเซิร์ฟเวอร์จะประมวลผลคำค้นหาของผู้ใช้และนำไปยังระบบดึงข้อมูลที่เหมาะสม (การค้นหา Azure AI สำหรับข้อมูลที่มีโครงสร้างหรือ Azure Cosmos DB สำหรับข้อมูลที่ไม่มีโครงสร้าง) ตามประเภทการสืบค้น
- ข้อมูลที่เกี่ยวข้องจะถูกดึงมาจากแหล่งข้อมูลที่เลือกและส่งไปยัง Azure OpenAI Services (ChatGPT) พร้อมด้วยพรอมต์ที่สร้างขึ้นเพื่อสร้างการตอบกลับส่วนบุคคล
- การตอบสนองขั้นสุดท้ายซึ่งเต็มไปด้วยข้อมูลที่เกี่ยวข้องตามบริบทจะถูกส่งกลับไปยังผู้ใช้ผ่านแอป Streamlit โดยให้คำแนะนำและคำแนะนำด้านฟิตเนสที่ปรับให้เหมาะสม
รูปที่ 8 การสมัคร
รูปที่ 9 เครื่องมือทดสอบปลายทาง
เทคโนโลยีที่ใช้:
- การจัดเก็บและการเรียกค้นข้อมูล: Azure Blob Storage, Azure Cosmos DB (Gremlin API), Azure AI Search
- โมเดล AI และภาษา: บริการ Azure OpenAI (ChatGPT)
- การประมวลผลข้อมูลและโฟลว์ลอจิก: Azure AI Studio, Azure Prompt Flow
- แบ็กเอนด์และเซิร์ฟเวอร์แอปพลิเคชัน: Python สำหรับการดึงข้อมูลและการประมวลผลล่วงหน้า พร้อมจุดรวมหลายจุดสำหรับการนำเข้าและเรียกข้อมูล
กลุ่มเป้าหมาย:
- ผู้ชื่นชอบการออกกำลังกาย: บุคคลที่หลงใหลในการออกกำลังกาย และกำลังมองหากิจวัตรการออกกำลังกายส่วนบุคคลและแผนการควบคุมอาหารเพื่อเพิ่มประสิทธิภาพการออกกำลังกาย
- บุคคลที่ใส่ใจสุขภาพ: ผู้ที่ให้ความสำคัญกับวิถีชีวิตที่มีสุขภาพดีและต้องการเข้าถึงข้อมูลโภชนาการที่ถูกต้อง การติดตามแคลอรี่ และคำแนะนำด้านอาหารที่ออกแบบมาโดยเฉพาะ
- ผู้เริ่มต้นในฟิตเนส: ผู้มาใหม่ที่ต้องการคำแนะนำในการเริ่มต้นเส้นทางการออกกำลังกาย รวมถึงกิจวัตรการออกกำลังกายขั้นพื้นฐาน คำแนะนำด้านอาหาร และคำตอบสำหรับคำถามทั่วไปเกี่ยวกับการออกกำลังกาย
- ผู้เชี่ยวชาญที่มีงานยุ่ง: ผู้ใช้ที่มีเวลาจำกัดในการวางแผนการออกกำลังกายที่ต้องการการเข้าถึงคำแนะนำการออกกำลังกายที่กำหนดเองได้ตามต้องการ และคำตอบที่รวดเร็วสำหรับคำถามที่เกี่ยวข้องกับสุขภาพ
- บุคคลที่มีเป้าหมายด้านสุขภาพที่เฉพาะเจาะจง: ผู้ที่มีเป้าหมายในการออกกำลังกายหรือสภาวะสุขภาพเฉพาะตัวที่ต้องการแผนและคำแนะนำส่วนบุคคลที่คำนึงถึงความต้องการและความชอบเฉพาะของตน
บทสรุปและผลงานในอนาคต:
บทสรุป
MyFitnessBuddy แสดงให้เห็นถึงศักยภาพของการผสมผสานเทคนิค AI ขั้นสูง เช่น การดึงข้อมูล-Augmented Generation (RAG) และการสร้างการดึงข้อมูลกราฟ (GRAG) เพื่อสร้างที่ปรึกษาการออกกำลังกายที่เป็นส่วนตัวและคำนึงถึงบริบท ด้วยการใช้ประโยชน์จากความสามารถของ Azure AI และบูรณาการแหล่งข้อมูลหลายแหล่ง แอปนี้จึงมีกิจวัตรการออกกำลังกายที่กำหนดเอง แผนการบริโภคอาหาร และการตอบสนองต่อคำถามของผู้ใช้ที่แม่นยำ แนวทางนี้ช่วยเพิ่มการมีส่วนร่วมและความพึงพอใจของผู้ใช้โดยให้คำแนะนำด้านการออกกำลังกายที่ปรับให้เหมาะสมและเกี่ยวข้อง
การทำงานในอนาคต
- การปรับแต่งส่วนบุคคลที่ได้รับการปรับปรุง: ปรับแต่งโมเดลเพิ่มเติมเพื่อให้การปรับแต่งที่ละเอียดมากขึ้นตามความคิดเห็น พฤติกรรม และความชอบของผู้ใช้
- การสนับสนุนหลายภาษา: ใช้ความสามารถหลายภาษาเพื่อเข้าถึงผู้ชมในวงกว้างทั่วโลก
- การวิเคราะห์ขั้นสูง: พัฒนาคุณสมบัติการวิเคราะห์ขั้นสูงเพื่อให้ผู้ใช้ได้รับข้อมูลเชิงลึกที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับความก้าวหน้าในการออกกำลังกาย นิสัย และแนวโน้มของพวกเขา
- แหล่งข้อมูลที่ขยาย: รวมแหล่งข้อมูลเพิ่มเติม เช่น ฐานข้อมูลทางการแพทย์และเนื้อหาที่ผู้ใช้สร้างขึ้น เพื่อปรับปรุงฐานความรู้ของแอปและปรับปรุงความแม่นยำของคำแนะนำ