در RAG مهمترین نکته اینه که امنیت رو به خود مدل نسپرید. یعنی فقط در System Prompt ننویسید «اطلاعات محرمانه را فاش نکن»؛ چون Prompt Injection میتونه مدل رو وادار به نادیده گرفتن این دستور کنه.
بهتره چند لایه داشته باشید:
اول، دسترسی قبل از Retrieval بررسی بشه. هر کاربر فقط مجاز به جستجو در اسناد خودش باشه و این دسترسی همراه هر chunk در Vector DB ذخیره بشه. این مهمتر از هر دستور داخل prompt است.
دوم، محتوای RAG را «داده غیرقابل اعتماد» در نظر بگیرید، نه دستور. محتوای بازیابیشده را با delimiter جدا کنید و به مدل بگویید فقط اطلاعات است.
سوم، خروجی را هم بررسی کنید. قبل از نمایش پاسخ، اطلاعاتی مثل رمز، API Key، اطلاعات شخصی یا دادههای محرمانه را با یک لایه DLP/فیلتر بررسی و در صورت نیاز حذف کنید.
و برای جلوگیری از حملات آزمونوخطا، Rate Limit و لاگکردن جستجوها هم داشته باشید.
در واقع معماری امن اینه:
Authorization → Retrieval فیلترشده → LLM → بررسی خروجی
نه اینکه فقط به این اعتماد کنید که «مدل قول داده اطلاعات محرمانه رو لو نده».
هنوز پاسخی ثبت نشده
نظرها