ساخت برنامه مبتنی بر RAG چندوجهی با Amazon Bedrock

امروزه، سازمان‌ها باید حجم عظیمی از داده‌های بدون ساختار را مدیریت کنند، داده‌هایی که در قالب‌های مختلف مانند اسناد، تصاویر، فایل‌های صوتی و فایل‌های ویدیویی وجود دارند. در گذشته، استخراج بینش معنادار از این داده‌ها با فرمت‌های مختلف، نیازمند فرآیندهای پردازش پیچیده و تلاش‌های توسعه‌ی گسترده بود. با این حال، فناوری هوش مصنوعی تولیدی، این حوزه را متحول کرده و قابلیت‌های قدرتمندی را برای پردازش خودکار، تحلیل و استخراج بینش از این فرمت‌های مختلف اسناد ارائه می‌دهد، در نتیجه حجم کار دستی را به میزان قابل توجهی کاهش داده و در عین حال دقت و مقیاس‌پذیری را بهبود می‌بخشد.

با کمک Amazon Bedrock Data Automation و Amazon Bedrock Knowledge Bases، اکنون می‌توانید به سادگی برنامه‌های RAG چندوجهی قدرتمندی را بسازید. این دو با هم سازمان‌ها را قادر می‌سازند تا به طور موثر اطلاعات موجود در محتوای چندوجهی خود را پردازش، سازماندهی و بازیابی کنند، در نتیجه شیوه‌ی مدیریت و استفاده‌ی آن‌ها از داده‌های بدون ساختار را تغییر می‌دهند.

این مقاله شما را در ساخت یک برنامه‌ی تمام پشته راهنمایی می‌کند، برنامه‌ای که از 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 و مدل‌های پایه ارائه شده توسط Amazon Bedrock. کاربران می‌توانند انواع مختلفی از محتوا، از جمله فایل‌های صوتی، تصاویر، ویدیوها یا PDF را برای پردازش و تجزیه و تحلیل خودکار آپلود کنند.

هنگامی که محتوا را آپلود می‌کنید، Amazon Bedrock Data Automation از یک طرح استاندارد یا سفارشی برای پردازش آن استفاده می‌کند تا بینش‌های ارزشمندی را استخراج کند. اطلاعات استخراج شده در قالب JSON در یک سطل Amazon Simple Storage Service (Amazon S3) ذخیره می‌شوند، در حالی که وضعیت کار از طریق Amazon EventBridge ردیابی شده و در Amazon DynamoDB ذخیره می‌شود. این راه حل، تجزیه‌ی سفارشی JSON استخراج شده را برای ایجاد اسناد سازگار با پایگاه دانش انجام می‌دهد، سپس آن‌ها را در Amazon Bedrock Knowledge Bases ذخیره و نمایه می‌کند.

از طریق یک رابط کاربری بصری، این راه حل همزمان محتوای آپلود شده و اطلاعات استخراج شده از آن را نمایش می‌دهد. کاربران می‌توانند از طریق یک سیستم پرسش و پاسخ مبتنی بر تولید با کمک بازیابی (RAG) با داده‌های پردازش شده تعامل داشته باشند، سیستمی که توسط مدل پایه‌ی Amazon Bedrock پشتیبانی می‌شود. این روش یکپارچه، سازمان‌ها را قادر می‌سازد تا به طور موثر قالب‌های مختلف محتوا را پردازش، تجزیه و تحلیل کرده و از آن‌ها بینش کسب کنند، در حالی که از زیرساخت‌های قدرتمند و مقیاس‌پذیری استفاده می‌کنند که با استفاده از AWS Cloud Development Kit (AWS CDK) مستقر شده‌اند.

معماری

نمودار معماری زیر، روند راه حل را نشان می‌دهد:

  1. کاربران با برنامه‌ی فرانت‌اند از طریق Amazon Cognito تعامل دارند.
  2. درخواست‌های API توسط Amazon API Gateway و توابع AWS Lambda پردازش می‌شوند.
  3. فایل‌ها برای پردازش در سطل S3 آپلود می‌شوند.
  4. Amazon Bedrock Data Automation فایل‌ها را پردازش کرده و اطلاعات را استخراج می‌کند.
  5. EventBridge وضعیت کار را مدیریت کرده و پردازش پس از اجرا را فعال می‌کند.
  6. وضعیت کار در DynamoDB ذخیره می‌شود و محتوای پردازش شده در Amazon S3 ذخیره می‌شود.
  7. تابع Lambda محتوای پردازش شده را تجزیه کرده و در Amazon Bedrock Knowledge Bases نمایه می‌کند.
  8. سیستم پرسش و پاسخ مبتنی بر RAG از یک مدل پایه‌ی Amazon Bedrock برای پاسخ دادن به پرسش‌های کاربران استفاده می‌کند.

پیش نیازها

Backend

برای Backend، شما به پیش نیازهای زیر نیاز دارید:

  • یک حساب کاربری AWS.
  • Python 3.11 یا بالاتر.
  • Docker.
  • GitHub (در صورت استفاده از مخزن کد).
  • AWS CDK. برای اطلاعات بیشتر و پیش نیازها، به شروع به کار با AWS CDK مراجعه کنید.
  • دسترسی به مدل‌های پایه را در Amazon Bedrock فعال کنید:
    • Claude 3.5 Sonnet v2.0 از Anthropic
    • Amazon Nova Pro v1.0
    • Claude 3.7 Sonnet v1.0 از Anthropic

Frontend

برای Frontend، شما به پیش نیازهای زیر نیاز دارید:

  • Node/npm: v18.12.1
  • Backend مستقر شده.
  • حداقل یک کاربر به استخر کاربری Amazon Cognito مربوطه اضافه شده است (که برای فراخوانی API با احراز هویت مورد نیاز است).

هر آنچه که نیاز دارید به صورت کد منبع باز در مخزن GitHub ما در دسترس است.

راهنمای استقرار

این کدپایه‌ی برنامه‌ی نمونه به پوشه‌های کلیدی زیر سازماندهی شده است:

samples/bedrock-bda-media-solution