สร้างแอปพลิเคชัน RAG มัลติโมดอล: Bedrock

ในปัจจุบัน องค์กรต่างๆ ต้องจัดการกับข้อมูลที่ไม่มีโครงสร้างจำนวนมหาศาล ซึ่งมีอยู่ในรูปแบบต่างๆ รวมถึงเอกสาร รูปภาพ ไฟล์เสียง และไฟล์วิดีโอ ในอดีต การดึงข้อมูลเชิงลึกที่มีความหมายจากข้อมูลในรูปแบบต่างๆ เหล่านี้ต้องใช้กระบวนการประมวลผลที่ซับซ้อนและความพยายามในการพัฒนาอย่างมาก อย่างไรก็ตาม เทคโนโลยี Generative AI กำลังปฏิวัติวงการนี้ โดยนำเสนอความสามารถอันทรงพลังในการประมวลผล วิเคราะห์ และดึงข้อมูลเชิงลึกจากข้อมูลในรูปแบบเอกสารต่างๆ ได้โดยอัตโนมัติ ซึ่งช่วยลดปริมาณงานที่ต้องทำด้วยตนเองได้อย่างมาก พร้อมทั้งปรับปรุงความถูกต้องและความสามารถในการปรับขนาด

ด้วย Amazon Bedrock Data Automation และ Amazon Bedrock Knowledge Bases ตอนนี้คุณสามารถสร้างแอปพลิเคชัน RAG มัลติโมดอลอันทรงพลังได้อย่างง่ายดาย ทั้งสองอย่างนี้ช่วยให้องค์กรสามารถประมวลผล จัดระเบียบ และดึงข้อมูลจากเนื้อหามัลติโมดอลได้อย่างมีประสิทธิภาพ เปลี่ยนแปลงวิธีการจัดการและการใช้ข้อมูลที่ไม่มีโครงสร้าง

บทความนี้จะแนะนำคุณในการสร้างแอปพลิเคชัน Full-Stack ที่ใช้ Amazon Bedrock Data Automation ในการประมวลผลเนื้อหามัลติโมดอล จัดเก็บข้อมูลที่ดึงมาใน Amazon Bedrock Knowledge Bases และเปิดใช้งานการสืบค้นด้วยภาษาธรรมชาติผ่านอินเทอร์เฟซถามตอบตาม RAG

กรณีการใช้งานจริง

การผสานรวมของ Amazon Bedrock Data Automation และ Amazon Bedrock Knowledge Bases มอบโซลูชันที่มีประสิทธิภาพสำหรับการจัดการข้อมูลที่ไม่มีโครงสร้างจำนวนมากในหลากหลายอุตสาหกรรม ตัวอย่างเช่น:

  • ในด้านการดูแลสุขภาพ องค์กรจำเป็นต้องจัดการบันทึกผู้ป่วยจำนวนมาก รวมถึงแบบฟอร์มทางการแพทย์ รูปภาพการวินิจฉัย และการบันทึกเสียงการปรึกษาหารือ Amazon Bedrock Data Automation สามารถดึงและสร้างข้อมูลเหล่านี้ได้โดยอัตโนมัติ ในขณะที่ Amazon Bedrock Knowledge Bases ช่วยให้บุคลากรทางการแพทย์สามารถใช้การสืบค้นด้วยภาษาธรรมชาติ เช่น “ความดันโลหิตครั้งล่าสุดของผู้ป่วยคือเท่าใด” หรือ “แสดงประวัติการรักษาของผู้ป่วยโรคเบาหวาน”
  • สถาบันการเงิน ประมวลผลเอกสารนับพันฉบับทุกวัน ตั้งแต่ใบสมัครสินเชื่อไปจนถึงงบการเงิน Amazon Bedrock Data Automation สามารถดึงตัวชี้วัดทางการเงินที่สำคัญและข้อมูลการปฏิบัติตามกฎระเบียบ ในขณะที่ Amazon Bedrock Knowledge Bases ช่วยให้นักวิเคราะห์สามารถถามคำถาม เช่น “ปัจจัยเสี่ยงใดบ้างที่กล่าวถึงในรายงานรายไตรมาสล่าสุด” หรือ “แสดงใบสมัครสินเชื่อทั้งหมดที่มีคะแนนเครดิตสูง”
  • สำนักงานกฎหมาย จำเป็นต้องจัดการเอกสารคดีจำนวนมาก ซึ่งประกอบด้วยเอกสารของศาล ภาพถ่ายหลักฐาน และคำให้การของพยาน Amazon Bedrock Data Automation สามารถประมวลผลแหล่งข้อมูลที่แตกต่างกันเหล่านี้ ในขณะที่ Amazon Bedrock Knowledge Bases ช่วยให้ทนายความสามารถสืบค้น “หลักฐานใดบ้างที่นำเสนอเกี่ยวกับเหตุการณ์วันที่ 15 มีนาคม” หรือ “ค้นหาคำให้การของพยานทั้งหมดที่กล่าวถึงจำเลย”
  • บริษัทสื่อ สามารถใช้การผสานรวมนี้เพื่อการโฆษณาตามบริบทอย่างชาญฉลาด Amazon Bedrock Data Automation ประมวลผลเนื้อหาวิดีโอ คำบรรยาย และเสียงเพื่อทำความเข้าใจบริบทของฉาก บทสนทนา และอารมณ์ ในขณะเดียวกันก็วิเคราะห์เนื้อหาโฆษณาและข้อกำหนดของแคมเปญโฆษณา จากนั้น Amazon Bedrock Knowledge Bases ช่วยให้สามารถสืบค้นที่ซับซ้อนเพื่อจับคู่โฆษณากับช่วงเวลาเนื้อหาที่เหมาะสม เช่น “ค้นหาฉากกิจกรรมกลางแจ้งที่เป็นบวกที่มีโฆษณาอุปกรณ์กีฬา” หรือ “ระบุคลิปโฆษณาการท่องเที่ยวที่พูดถึงอุตสาหกรรมการท่องเที่ยว” การจับคู่ตามบริบทอย่างชาญฉลาดนี้ให้การโฆษณาที่เกี่ยวข้องและมีประสิทธิภาพมากขึ้น พร้อมทั้งรักษาความปลอดภัยของแบรนด์

ตัวอย่างเหล่านี้แสดงให้เห็นว่าฟังก์ชันการดึงข้อมูลของ Amazon Bedrock Data Automation เมื่อรวมกับการสืบค้นด้วยภาษาธรรมชาติของ Amazon Bedrock Knowledge Bases สามารถเปลี่ยนแปลงวิธีที่องค์กรโต้ตอบกับข้อมูลที่ไม่มีโครงสร้างของตนได้อย่างไร

ภาพรวมของโซลูชัน

โซลูชันที่ครอบคลุมนี้แสดงให้เห็นถึงความสามารถขั้นสูงของ Amazon Bedrock ในการประมวลผลและวิเคราะห์เนื้อหามัลติโมดอล (เอกสาร รูปภาพ ไฟล์เสียง และไฟล์วิดีโอ) โดยทำได้ผ่านสามองค์ประกอบหลัก: Amazon Bedrock Data Automation, Amazon Bedrock Knowledge Bases และ Foundation model ที่ให้บริการผ่าน Amazon Bedrock ผู้ใช้สามารถอัปโหลดเนื้อหาประเภทต่างๆ รวมถึงไฟล์เสียง รูปภาพ วิดีโอ หรือ PDF เพื่อการประมวลผลและการวิเคราะห์อัตโนมัติ

เมื่อคุณอัปโหลดเนื้อหา Amazon Bedrock Data Automation จะประมวลผลเนื้อหานั้นโดยใช้พิมพ์เขียวมาตรฐานหรือแบบกำหนดเองเพื่อดึงข้อมูลเชิงลึกที่มีคุณค่า ข้อมูลที่ดึงมาจะถูกจัดเก็บในรูปแบบ JSON ใน Amazon Simple Storage Service (Amazon S3) bucket ในขณะที่สถานะงานจะถูกติดตามผ่าน Amazon EventBridge และบันทึกไว้ใน Amazon DynamoDB โซลูชันนี้ดำเนินการแยกวิเคราะห์ JSON ที่ดึงมาแบบกำหนดเองเพื่อสร้างเอกสารที่เข้ากันได้กับ Knowledge Base จากนั้นจึงจัดเก็บไว้ใน Amazon Bedrock Knowledge Bases และทำดัชนี

โซลูชันนี้แสดงเนื้อหาที่อัปโหลดพร้อมกับข้อมูลที่ดึงออกมาผ่านอินเทอร์เฟซผู้ใช้ที่ใช้งานง่าย ผู้ใช้สามารถโต้ตอบกับข้อมูลที่ประมวลผลผ่านระบบถามตอบตาม Retrieval Augmented Generation (RAG) ซึ่งขับเคลื่อนโดย Amazon Bedrock Foundation model วิธีการบูรณาการนี้ช่วยให้องค์กรสามารถประมวลผล วิเคราะห์ และรับข้อมูลเชิงลึกจากรูปแบบเนื้อหาต่างๆ ได้อย่างมีประสิทธิภาพ พร้อมทั้งใช้โครงสร้างพื้นฐานที่แข็งแกร่งและปรับขนาดได้ซึ่งปรับใช้โดยใช้ AWS Cloud Development Kit (AWS CDK)

สถาปัตยกรรม

แผนภาพสถาปัตยกรรมต่อไปนี้แสดงให้เห็นถึงขั้นตอนการทำงานของโซลูชัน:

  1. ผู้ใช้โต้ตอบกับแอปพลิเคชันส่วนหน้า โดยมีการตรวจสอบสิทธิ์ผ่าน Amazon Cognito
  2. คำขอ API ถูกประมวลผลโดย Amazon API Gateway และ AWS Lambda function
  3. ไฟล์ถูกอัปโหลดไปยัง S3 bucket เพื่อประมวลผล
  4. Amazon Bedrock Data Automation จะประมวลผลไฟล์และดึงข้อมูล
  5. EventBridge จัดการสถานะงานและทริกเกอร์การประมวลผลภายหลัง
  6. สถานะงานจะถูกจัดเก็บไว้ใน DynamoDB และเนื้อหาที่ประมวลผลจะถูกจัดเก็บไว้ใน Amazon S3
  7. Lambda function จะแยกวิเคราะห์เนื้อหาที่ประมวลผลและทำดัชนีใน Amazon Bedrock Knowledge Bases
  8. ระบบถามตอบตาม RAG ใช้ Amazon Bedrock Foundation model เพื่อตอบคำถามของผู้ใช้

ข้อกำหนดเบื้องต้น

ส่วนหลังบ้าน (Backend)

สำหรับส่วนหลังบ้าน คุณต้องมีข้อกำหนดเบื้องต้นต่อไปนี้:

  • บัญชี AWS
  • Python 3.11 หรือสูงกว่า
  • Docker
  • GitHub (หากใช้ที่เก็บโค้ด)
  • AWS CDK สำหรับรายละเอียดเพิ่มเติมและข้อกำหนดเบื้องต้น โปรดดูที่ การเริ่มต้นใช้งาน AWS CDK
  • เปิดใช้งานการเข้าถึง Foundation model ใน Amazon Bedrock:
    • Claude 3.5 Sonnet v2.0 ของ Anthropic
    • Amazon Nova Pro v1.0
    • Claude 3.7 Sonnet v1.0 ของ Anthropic

ส่วนหน้าบ้าน (Frontend)

สำหรับส่วนหน้าบ้าน คุณต้องมีข้อกำหนดเบื้องต้นต่อไปนี้:

  • Node/npm: v18.12.1
  • ส่วนหลังบ้านที่ปรับใช้แล้ว
  • ผู้ใช้อย่างน้อยหนึ่งรายถูกเพิ่มลงใน Amazon Cognito user pool ที่เกี่ยวข้อง (จำเป็นสำหรับการเรียก API ที่มีการตรวจสอบสิทธิ์)

ทุกสิ่งที่คุณต้องการมีให้ในรูปแบบโอเพนซอร์ซในที่เก็บ GitHub ของเรา

คู่มือการปรับใช้

โค้ดเบสของแอปพลิเคชันตัวอย่างนี้ถูกจัดระเบียบเป็นโฟลเดอร์สำคัญต่อไปนี้:

samples/bedrock-bda-media-solution