آنچه در این مقاله میخوانید [پنهانسازی]
در دنیای یادگیری ماشین، زمانی میتوان گفت یک مدل ارزش واقعی دارد که بتواند در اختیار کاربران قرار گیرد. این کار معمولاً با ساخت یک API انجام میشود تا برنامههای دیگر بتوانند از مدل استفاده کنند. در این آموزش، گام به گام یاد میگیریم چگونه یک FastAPI machine learning API امن بسازیم که از احراز هویت JWT، اعتبارسنجی ورودی و محدودسازی نرخ درخواستها پشتیبانی کند و در نهایت با Docker بهصورت قابل استقرار درآید.
سرفصل های مقاله
- چرا FastAPI بهترین گزینه برای API های یادگیری ماشین است
- مرحله 1: آموزش و ذخیره مدل یادگیری ماشین
- مرحله 2: پیادهسازی منطق پیشبینی
- مرحله 3: اعتبارسنجی ورودی با Pydantic
- مرحله 4: افزودن احراز هویت JWT
- مرحله 5: محدودسازی نرخ درخواستها
- مرحله 6: ترکیب همه اجزا در FastAPI
- مرحله 7: Dockerfile برای استقرار
- مرحله 8: اجرای Docker
- مرحله 9: تست API
- جمع بندی
چرا FastAPI بهترین گزینه برای API های یادگیری ماشین است
FastAPI یکی از سریعترین و مدرنترین فریمورکهای پایتون است. پشتیبانی از async/await، مستندسازی خودکار و سازگاری با تایپهینتها باعث شده برای ساخت API امن یادگیری ماشین ایدهآل باشد. سرعت بالا و سادگی آن، زمان توسعه و نگهداری را بهطور چشمگیری کاهش میدهد.
مرحله 1: آموزش و ذخیره مدل یادگیری ماشین
ابتدا یک مدل ساده بر پایه دادههای معروف Iris ایجاد میکنیم. مدل را با RandomForestClassifier آموزش داده و سپس آن را ذخیره میکنیم تا در برنامه اصلی بارگذاری شود.
📄 فایل: app/model.py
اجرای این فایل باعث ایجاد مدل ذخیرهشدهی model.pkl در مسیر app/ میشود.
مرحله 2: پیادهسازی منطق پیشبینی
اکنون ماژولی برای بارگذاری مدل و انجام پیشبینی میسازیم.
📄 فایل: app/predict.py
تابع make_prediction() یک لیست شامل 4 عدد میگیرد و کلاس گل مورد نظر را پیشبینی میکند.
مرحله 3: اعتبارسنجی ورودی با Pydantic
ورودی کاربران باید بررسی شود تا دادههای نادرست وارد مدل نشود.
📄 فایل: app/validation.py
به کمک Pydantic مطمئن میشویم که کاربر دقیقاً چهار عدد ارسال کرده است.
مرحله 4: افزودن احراز هویت JWT
برای جلوگیری از دسترسی غیرمجاز از JWT استفاده میکنیم.
📄 فایل: app/jwt.py
این فایل شامل توابع ساخت و بررسی توکن JWT است.
مرحله 5: محدودسازی نرخ درخواستها
برای جلوگیری از overload شدن سرور از Rate Limiting استفاده میکنیم.
📄 فایل: app/rate_limit.py
این کد باعث میشود هر IP در هر دقیقه حداکثر تعداد مشخصی درخواست ارسال کند.
مرحله 6: ترکیب همه اجزا در FastAPI
اکنون تمام قسمتها را در فایل اصلی ترکیب میکنیم.
📄 فایل: app/main.py
مرحله 7: Dockerfile برای استقرار
فایل: Dockerfile
فایل: requirements.txt
مرحله 8: اجرای Docker
سپس API در آدرس http://localhost:8000 در دسترس است.
مرحله 9: تست API
ابتدا توکن JWT را دریافت کنید:
سپس از آن برای پیشبینی استفاده کنید:
پاسخ مشابه زیر خواهد بود:
جمع بندی
ساخت API امن یادگیری ماشین شامل آموزش مدل، تعریف مسیرهای پیشبینی، احراز هویت JWT، اعتبارسنجی دادهها و محدودسازی نرخ است. در نهایت، Docker محیطی استاندارد برای استقرار آن فراهم میکند. این روش باعث میشود مدل یادگیری ماشین شما نه تنها دقیق، بلکه قابل اعتماد و آماده برای استفاده در دنیای واقعی باشد.






