راهاندازی کامل RAG با Amazon Bedrock و Elastic Cloud
خلاصهٔ کاملتر
AWS تو این مقاله یه solution template معرفی میکنه که یه چتبات مبتنی بر RAG (یعنی قبل از جواب دادن، تیکههای مرتبط از دادههای خودت رو پیدا میکنه و کنار سؤال به مدل میده) رو کامل روی حساب AWS خودت راه میندازه. نکته اصلیش اینه که دیگه لازم نیست مدل رو آموزش بدی؛ فقط دادههات رو توی S3 میریزی و سیستم بقیه کارو میکنه.
به گفته مقاله، هر سیستم RAG چهار تیکه لازم داره: similarity search (یعنی پیدا کردن دادههایی که از نظر معنا شبیه سؤال هستن)، یه انبار برای vector embeddingها (یعنی نمایش هر تیکه متن بهصورت یه لیست عدد)، یه data pipeline که فایلها رو بخونه، تیکهتیکه کنه (chunking) و به وکتور تبدیل کنه، و در آخر خود LLM که با این دادهها جواب میسازه.
تو این قالب، Elastic Cloud (که از طریق AWS Marketplace میشه گرفتش) نقش انبار وکتور رو داره. مزیتش اینه که جستجوی متنی معمولی و جستجوی وکتوری رو یهجا داری، و ارتباطش هم از طریق PrivateLink (یعنی اتصال خصوصی که از اینترنت عمومی رد نمیشه) برقرار میشه. هر وقت فایلی توی باکت S3 آپلود بشه، یه Lambda به اسم vectorizer که با LangChain و Bedrock کار میکنه، فایل رو پردازش میکنه و embeddingها رو توی ایندکسی به اسم documents ذخیره میکنه.
سمت جواب دادن، یه Lambda دیگه (agent) سؤال رو میگیره، از Elastic تیکههای مرتبط رو درمیاره و همراه سؤال به مدلهای Amazon Titan توی Bedrock میده. این Lambda از طریق API Gateway در دسترسه و میشه با یه درخواست POST به مسیر /agent ازش سؤال پرسید. چون LLMها قطعی نیستن، ممکنه هر بار جواب کمی فرق کنه.
کل این زیرساخت با ماژولهای Terraform نوشته شده و با یه terraform apply ساخته میشه. پیشنیازها هم ایناست: Terraform نسخه 1.10 به بالا، AWS CLI، دسترسی به مدلهای Titan توی Bedrock، کلید API الستیک توی متغیر EC_API_KEY و یه secret توی Secrets Manager با یوزر و پسورد Elastic. اگه پشتسرهم سؤال بپرسی و خطای Internal Server Error بگیری، دلیلش محدودیت تعداد درخواست Bedrockه و باید سهمیه رو بیشتر کنی.
نکات کلیدی:
- دادهها توی S3 میرن و یه Lambda خودکار اونها رو به vector embedding تبدیل میکنه
- Elastic Cloud هم جستجوی متنی و هم جستجوی وکتوری رو یهجا انجام میده
- مدلهای Amazon Titan از طریق Bedrock جواب نهایی رو میسازن
- کل زیرساخت با Terraform نسخه 1.10 به بالا و یه دستور apply ساخته میشه
- خطای Internal Server Error معمولاً بهخاطر محدودیت نرخ درخواست Bedrockه




