رازها و متغیرهای محیطی بدون چسباندن کلید در چت
بیشتر اپهای واقعی دستکم به یک راز نیاز دارند: کلید یک درگاه پرداخت، کلید یک سرویس ایمیل، یا کلید یک API هوش مصنوعی. در Mythex این کلیدها را داخل پرامپت نمیچسبانید. وقتی عامل به یکی از آنها نیاز داشته باشد، یک کارت درخواست راز در چت نشان میدهد؛ مقدار را در فیلدهای همان کارت وارد میکنید و بهعنوان یک راز پروژه ذخیره میشود که اپ شما میتواند آن را بخواند، بیآنکه کلید وارد گفتگو شود.
این قابلیت چه کاری میکند
هر پروژهی Mythex میتواند متغیرهای محیطی ذخیره کند: مقادیر نامداری مثل STRIPE_SECRET_KEY که اپ هنگام اجرا میخواند، بهجای اینکه داخل کد نوشته شوند. راز، متغیر محیطیای است که مقدارش باید خصوصی بماند.
همین مقادیر در دو جا در دسترساند:
- ساندباکس، جایی که عامل هنگام کار شما اپ را میسازد و اجرا میکند.
- استقرارهای منتشرشدهی شما، جایی که بازدیدکنندگان از اپ استفاده میکنند.
سه راه برای افزودن آنها وجود دارد:
- کارت درخواست راز، که عامل وقتی برای تمام کردن کاری به کلید نیاز دارد در چت نشان میدهد.
- Project settings ← Secrets، که هر وقت بخواهید میتوانید مقادیر را در آن اضافه یا ویرایش کنید.
/secretsدر چت، برای افزودن یا بهروزرسانی رازها بر اساس درخواست شما.
چرا این روش کمک میکند
راه بدیهی برای دادن کلید به یک عامل هوش مصنوعی این است که آن را در پیامتان بچسبانید. این کار جواب میدهد، اما کلید از آن لحظه بخشی از تاریخچهی چت میشود و کنار بقیهی حرفهایتان، بهصورت متن ساده، میماند.
کارت راز، مقدار را از متن گفتگو بیرون نگه میدارد. شما آن را در فیلدهای کارت وارد میکنید، نه در کادر پیام، و بهعنوان راز پروژه ذخیره میشود. عامل با کلیدی که حالا در ساندباکس در دسترس است ادامه میدهد.
نگه داشتن کلیدها در تنظیمات پروژه، نه داخل کد، مزایای دیگری هم دارد:
- کلیدها از مخزن کد بیرون میمانند. کد شما به کلید با نامش ارجاع میدهد؛ مقدار در تنظیمات پروژه است.
- عامل و اپ در حال اجرا پیکربندی یکسانی میبینند. کپیای وجود ندارد که با گذشت زمان کهنه شود.
- میتوانید کلید را بدون بازنویسی کد عوض کنید. مقدار را در تنظیمات تغییر دهید؛ کد همچنان با همان نام آن را میخواند.
اگر متغیرهای محیطی برای شما تازهاند، راهنمای ما با عنوان متغیرهای محیطی و رازها چه هستند این ایده را از صفر توضیح میدهد.
نحوهی استفاده از کارت راز
- قابلیت مورد نظر را بخواهید — مثلاً «وقتی کسی ثبتنام کرد، یک ایمیل خوشآمدگویی بفرست».
- وقتی عامل به کلید نیاز داشته باشد، یک کارت درخواست راز در چت ظاهر میشود که مقداری را که لازم دارد فهرست میکند.
- مقدار را در فیلدهای کارت وارد کنید، نه در کادر پیام.
- تأیید کنید. مقدار بهعنوان راز پروژه ذخیره میشود.
- عامل ادامه میدهد، با کلیدی که در ساندباکس در دسترس است.
نحوهی افزودن راز بهصورت دستی
- Project settings و سپس Secrets را باز کنید.
- کلیدهایی مثل
STRIPE_SECRET_KEY،OPENAI_API_KEYیا اعتبارنامههای سرویس خودتان را اضافه کنید. - از عامل بخواهید آنها را به روش استاندارد فریمورکتان بخواند — مثلاً از
process.envدر یک اپ Node. - اگر اپ منتشرشده به مقادیر جدید نیاز دارد، دوباره منتشر کنید.
همچنین میتوانید /secrets را در چت تایپ کنید تا رازها را همانجا اضافه یا بهروز کنید.
تغییر راز در یک اپ منتشرشده
اپ منتشرشده هنگام انتشار رازها را دریافت میکند. بعد از افزودن یا تغییر یک راز، دوباره منتشر کنید تا استقرار زنده مقدار جدید را بگیرد. تا آن موقع، بازدیدکنندگان همچنان با پیکربندی قبلی از اپ استفاده میکنند.
نکات امنیتی
- هرگز راز را در مخزن کد ثبت نکنید. آنها را در تنظیمات پروژه نگه دارید.
- برای کارهای حساس، کلیدهای مخصوص سرور را ترجیح دهید. کلیدی که میتواند کارت را شارژ کند یا ایمیل بفرستد باید در کدی باشد که روی سرور اجرا میشود، نه در چیزی که مرورگر بازدیدکننده دانلود میکند.
- اگر کلیدی هرگز در تاریخچهی چت ظاهر شد، آن را بچرخانید. کلید جدید را نزد ارائهدهنده بسازید، کلید قدیمی را باطل کنید و مقدار را در تنظیمات پروژه بهروز کنید. هر کلیدی که در چت چسبانده شده، لو رفته فرض کنید.
محدودیتها
- کارت فقط وقتی کمک میکند که از آن استفاده کنید. اگر کلید را با این حال در کادر پیام بچسبانید، در متن گفتگو میماند. آن را نزد ارائهدهنده بچرخانید و مقدار ذخیرهشده را بهروز کنید.
- اپهای منتشرشده برای دریافت رازهای جدید یا تغییریافته به انتشار مجدد نیاز دارند.
- ذخیرهی امن یک کلید، هر استفاده از آن را امن نمیکند. محل استفاده از کلید هم مهم است؛ کلیدهای حساس را در سمت سرور اپ نگه دارید.
برای مطالب بیشتر دربارهی امن کردن اپ پیش از اشتراکگذاری، چکلیست امنیتی ما برای اپهای ساختهشده با هوش مصنوعی را ببینید.
مستندات جزئیات را دارند: متغیرهای محیطی و رازها و رازها در چت.