ဇာတ်လမ်း၏ ရှုထောင့်တစ်ခုမှာ စက်သင်ယူမှုပုံစံကို ဖန်တီးခြင်းဖြစ်သည်။ ၎င်းကို လက်တွေ့ကမ္ဘာတွင် အသုံးပြုနိုင်မည်ဖြစ်ပြီး စားသုံးသူများနှင့် ဆော့ဖ်ဝဲရေးသားသူများထံ ရရှိနိုင်မည်ဖြစ်သည်။
စက်သင်ယူမှုမော်ဒယ်များကို အသုံးချရန် အရိုးရှင်းဆုံးနှင့် ရေပန်းအစားဆုံးနည်းလမ်းမှာ ၎င်းတို့ကို REST API တွင် ထည့်သွင်းရန်ဖြစ်သည်။
FastAPI ဟုခေါ်သော နာမည်ကြီး စာကြည့်တိုက်တစ်ခုဖြင့်၊ ယနေ့ကျွန်ုပ်တို့ ပြီးမြောက်သွားမည်ဖြစ်ပါသည်။
သို့သော်၊ အဘယ်နည်း FastAPI?
ခေတ်ပြိုင် Python စွမ်းရည်များကို အခွင့်ကောင်းယူရန် FastAPI Python ဝဘ်ဘောင်ကို ဖန်တီးထားသည်။
ဖောက်သည်များနှင့် တပြိုင်နက်တည်း ဆက်သွယ်မှုအတွက်၊ ၎င်းသည် WSGI ကို အသုံးပြုနိုင်စွမ်းရှိသော်လည်း ASGI စံနှုန်းကို လိုက်နာပါသည်။
အဆုံးမှတ်များနှင့် လမ်းကြောင်းများ နှစ်ခုစလုံးသည် ပေါင်းစပ်လုပ်ဆောင်မှုများကို အသုံးပြုနိုင်သည်။ ထို့အပြင်၊ FastAPI သည် အမျိုးအစား-အရိပ်အမြွက်ပြထားသော၊ သန့်ရှင်းပြီး ခေတ်ပြိုင် Python ကုဒ်ဖြင့် ဝဘ်အက်ပ်များကို ထိရောက်စွာဖန်တီးနိုင်စေပါသည်။
FastAPI ၏ အဓိကအသုံးပြုမှုကိစ္စမှာ နာမည်အကြံပြုထားသည့်အတိုင်း API အဆုံးမှတ်များကို ဖန်တီးခြင်းဖြစ်သည်။
အပြန်အလှန်အကျိုးပြုသော Swagger UI ပါ၀င်သည့် OpenAPI စံနှုန်းကိုအသုံးပြုခြင်း သို့မဟုတ် JSON အဖြစ် Python အဘိဓာန်ဒေတာကို ပံ့ပိုးပေးခြင်းသည် ၎င်းကိုအောင်မြင်ရန် ရိုးရှင်းသောနည်းလမ်းနှစ်ခုလုံးဖြစ်သည်။ သို့သော် FastAPI သည် API များအတွက်သာမဟုတ်ပါ။
Jinja2 တင်းပလိတ်အင်ဂျင်ကို အသုံးပြု၍ ပုံမှန်ဝဘ်စာမျက်နှာများကို ကမ်းလှမ်းရန်နှင့် WebSockets ကို အသုံးပြုသည့် အက်ပ်များအား ဝန်ဆောင်မှုပေးရန်၊ ဝဘ်ဘောင်တစ်ခု လုပ်ဆောင်နိုင်သည့် အခြားအရာအားလုံးအပြင် ၎င်းကို အသုံးပြုနိုင်သည်။
ဤဆောင်းပါးတွင်၊ ကျွန်ုပ်တို့သည် ရိုးရှင်းသော စက်သင်ယူမှုပုံစံကို ဖန်တီးပြီး ၎င်းကို အသုံးပြုရန် FastAPI ကို အသုံးပြုပါမည်။ စလိုက်ရအောင်။
FastAPI တပ်ဆင်ခြင်းနှင့် ပထမဆုံး API ဖန်တီးခြင်း။
စာကြည့်တိုက်ကို တပ်ဆင်ခြင်းနှင့် ASGI ဆာဗာကို ဦးစွာ လိုအပ်ပါသည်။ Uvuicorn သို့မဟုတ် Hypercorn တစ်ခုခုအလုပ်လုပ်ပါလိမ့်မယ်။ Terminal ထဲသို့ အောက်ပါ command ကို ရိုက်ထည့်ခြင်းဖြင့် ၎င်းသည် အလုပ်လုပ်သည် ။
ယခု API ကိုဖန်တီးပြီးပါက၊ သင်သည် သင်နှစ်သက်ရာ ကုဒ်တည်းဖြတ်သူကို အသုံးပြုပြီး ၎င်းကိုရှာဖွေနိုင်ပါသည်။ စတင်ရန်အတွက် ml_model.py ဟုခေါ်သော Python script ကိုဖန်တီးပါ။ သင့်အား အခြားအမည်တစ်ခုပေးလိုသော်လည်း ဤပို့စ်အတွက် ကျွန်ုပ်သည် ဤဖိုင်ကို ml_model.py အဖြစ် ရည်ညွှန်းပါမည်။
အဆုံးမှတ်နှစ်ခုပါသော ရိုးရှင်းသော API တစ်ခုကို ဖန်တီးရန်၊ သင်သည် အောက်ပါလုပ်ဆောင်စရာများကို အပြီးသတ်ရပါမည်။
- FastAPI နှင့် Uvicorn စာကြည့်တိုက်များကို တင်သွင်းပါ။
- FastAPI အတန်းအစား ဥပမာတစ်ခုကို သတ်မှတ်ပါ။
- အညွှန်းစာမျက်နှာတွင် ရိုးရှင်းသော JSON အရာဝတ္ထုကို ထုတ်လုပ်ပေးသည့် ပထမလမ်းကြောင်းကို ကြေညာပါ။
- စိတ်ကြိုက်စာတိုဖြင့် ရိုးရှင်းသော JSON အရာဝတ္ထုကို ပံ့ပိုးပေးသည့် ဒုတိယလမ်းကြောင်းကို ကြေညာပါ။ အမည်သတ်မှတ်ချက်ကို URL မှ တိုက်ရိုက်ယူသည် (ဥပမာ၊ https://127.0.0.1:8000/Jay)။
- API ကို run ရန် Uvicorn ကိုအသုံးပြုပါ။
ဤအဆင့်ငါးဆင့်ကို အကောင်အထည်ဖော်ခြင်းသည် အောက်ပါကုဒ်ဘစ်တွင် ဖော်ပြသည်။ ရိုးရှင်းသော API ဖန်တီးခြင်း။
အားလုံးပြီးပြီ! ကျွန်ုပ်တို့၏ API ကို ချက်ချင်းဖွင့်လိုက်ကြပါစို့။ ၎င်းကို ပြီးမြောက်စေရန် ml model.py ဖိုင်ဘေးရှိ Terminal window ကိုဖွင့်ပါ။ ထို့နောက် အောက်ပါတို့ကို ထည့်သွင်းပါ-
Enter သော့။ ရှေ့ဆက်မတိုးမီ ဤပြောဆိုချက်ကို ချေဖျက်ကြပါစို့။ ပထမအပလီကေးရှင်းသည် တိုးချဲ့မှုမပါဘဲ Python ဖိုင်အမည်တစ်ခုတည်းကို အသုံးပြုသည်။ ဒုတိယအက်ပ်တွင် သင်၏ FastAPI စံနမူနာနှင့် တူညီသောအမည်ရှိရပါမည်။
-reload ကိုအသုံးပြုခြင်းဖြင့်၊ သင်သည် ဖိုင်ကို အစမှစတင်မည့်အစား ဖိုင်ကိုသိမ်းဆည်းသောအခါ အလိုအလျောက်ပြန်လည်စတင်စေလိုကြောင်း API အား သင်ပြောပြသည်။
ယခုဘရောက်ဆာကိုဖွင့်ပြီး https://127.0.0.1:8000 သို့သွားပါ။ ရလဒ်သည်အောက်ပါအတိုင်းပေါ်လာသင့်သည်။
FastAPI ကို အသုံးပြု၍ ရိုးရှင်းသော API တစ်ခုကို မည်သို့ဖန်တီးရမည်ကို ယခု သင်နားလည်ပါပြီ။
Machine Learning မော်ဒယ်ကို တည်ဆောက်ခြင်းနှင့် လေ့ကျင့်ခြင်း။
မည်သည့်ဒေတာကိုမျှ စုဆောင်းခြင်း သို့မဟုတ် ခွဲခြမ်းစိတ်ဖြာခြင်းမရှိဘဲ၊ ကျွန်ုပ်တို့သည် ရိုးရှင်းသောပုံစံတစ်ခုကို လေ့ကျင့်ပေးပါမည်။ ၎င်းတို့သည် မော်ဒယ်များ ဖြန့်ကျက်ခြင်းနှင့် မသက်ဆိုင်ဘဲ လက်ထဲတွင်ရှိသော အကြောင်းအရာအတွက် မရှိမဖြစ်လိုအပ်ပါသည်။
Iris ဒေတာအတွဲကို အခြေခံသည့် မော်ဒယ်ကို တူညီစွာ အသုံးပြု၍ ထည့်သွင်းနိုင်သည်။ အာရုံကြောကွန်ယက်ကို တပ်ဆင်နည်း။
ငါတို့ကအဲဒါပဲလုပ်မယ် - ဒေါင်းလုဒ်လုပ်ပါ။ Iris ဒေတာအတွဲ မော်ဒယ်ကိုလေ့ကျင့်ပါ။ ဒါ ရိုးရှင်းမှာ မဟုတ်ပါဘူး။ စတင်ရန်၊ jaysmlmodel.py အမည်ရှိ ဖိုင်တစ်ခု ပြုလုပ်ပါ။
၎င်းတွင်၊ သင်သည် အောက်ပါတို့ကို လုပ်ဆောင်ရလိမ့်မည်-
- တင်သွင်းမှုများ — သင်သည် ပန်ဒါများ၊ scikit-RandomForecastClassifier၊ ၏ pydantic ၏ BaseModel ကိုလေ့လာရန် (အောက်ပါအဆင့်တွင် အဘယ်ကြောင့်ဖြစ်သည်ကို သင်ရှာဖွေတွေ့ရှိပါမည်) နှင့် မော်ဒယ်များကို သိမ်းဆည်းခြင်းနှင့် တင်ခြင်းအတွက် joblib လိုအပ်ပါသည်။
- အခြေခံမော်ဒယ်မှ အမွေဆက်ခံသော IrisSpecies အတန်းကို ကြေညာပါ။ ဤအတန်းတွင် ပန်းမျိုးစိတ်တစ်ခုတည်းကို ခန့်မှန်းရန် လိုအပ်သော ကွက်လပ်များသာ ပါရှိသည် (နောက်အပိုင်းတွင် နောက်ထပ်အကြောင်းအရာများ)
- အတန်းတစ်ခုဖန်တီးပါ။ IrisModel သည် မော်ဒယ်လေ့ကျင့်ရေးနှင့် ခန့်မှန်းရေးကိရိယာတစ်ခုဖြစ်သည်။
- IrisModel အတွင်းရှိ _train model အမည်ရှိ နည်းလမ်းတစ်ခုကို ကြေညာပါ။ Random Forests နည်းပညာကို အသုံးပြု၍ မော်ဒယ်များကို လေ့ကျင့်ရန် အသုံးပြုသည်။ လေ့ကျင့်ထားသော မော်ဒယ်ကို လုပ်ထုံးလုပ်နည်းအရ ပြန်ပေးသည်။
- IrisModel အတွင်းရှိ ခန့်မှန်းထားသော မျိုးစိတ်လုပ်ဆောင်ချက်ကို ကြေညာပါ။ input အချက် 4 ချက် (ပန်းပွင့်တိုင်းတာမှု) ကို အခြေခံ၍ ခန့်မှန်းရန် ၎င်းကို အသုံးပြုသည်။ ခန့်မှန်းချက် (ပန်းမျိုးစိတ်) နှင့် ခန့်မှန်းခြေ ဖြစ်နိုင်ခြေ နှစ်ခုလုံးကို အယ်လဂိုရီသမ်ဖြင့် ပြန်ပေးသည်။
- Iris ဒေတာအတွဲကို တင်ရန်နှင့် ဖိုဒါမှ ပျောက်ဆုံးပါက မော်ဒယ်ကို လေ့ကျင့်ပေးနိုင်ရန် IrisModel တွင် တည်ဆောက်သူအား ပြောင်းလဲပါ။ ၎င်းသည် မော်ဒယ်အသစ်များကို ထပ်ခါတလဲလဲ လေ့ကျင့်ခြင်း၏ ပြဿနာကို ဖြေရှင်းပေးသည်။ joblib စာကြည့်တိုက်ကို မော်ဒယ်ဖွင့်ခြင်းနှင့် ချွေတာခြင်းအတွက် အသုံးပြုသည်။
ဤသည်မှာ ကုဒ်တစ်ခုလုံးဖြစ်သည်-
အထက်ဖော်ပြပါ စာရင်းနှင့် မှတ်ချက်များသည် ဖန်တီးရန် ကုဒ်ပမာဏ များပြားသော်လည်း အလွယ်တကူ ဖမ်းဆုပ်နိုင်စေရန် မျှော်လင့်ပါသည်။ အခု ဒီမော်ဒယ်ကို တီထွင်ပြီးပြီ၊ သူ့ရဲ့ ခန့်မှန်းနိုင်စွမ်းကို ထုတ်ဝေလိုက်ကြရအောင် REST API ကို.
REST API အပြည့်အစုံကို တည်ဆောက်နေသည်။
ml_model.py ဖိုင်သို့ ပြန်သွားပြီး ဒေတာအားလုံးကို ဖယ်ရှားလိုက်ပါ။ ဘွိုင်လာပြားသည် ယခင်က သင်ပိုင်ဆိုင်ထားသည့်အရာနှင့် အတူတူပင်ဖြစ်လိမ့်မည်၊ သို့သော် ကျွန်ုပ်တို့သည် ဖိုင်အလွတ်ဖြင့် ပြန်လည်စတင်သင့်ပါသည်။
ဤတစ်ကြိမ်တွင် ပန်းအမျိုးအစားကို ဆုံးဖြတ်ရန် အသုံးပြုသည့် အဆုံးမှတ်တစ်ခုသာ သတ်မှတ်ပါမည်။ ရှေ့အပိုင်းတွင် ကြေငြာထားသည့် IrisModel.predict species() ကို ခန့်မှန်းမှုကို လုပ်ဆောင်ရန် ဤအဆုံးမှတ်ဖြင့် ခေါ်သည်။
တောင်းဆိုမှုအမျိုးအစားသည် အခြားသော ပြောင်းလဲမှုကြီးတစ်ခုဖြစ်သည်။ URL ထက် JSON တွင် ပါရာမီတာများကို ထုတ်လွှင့်ရန်အတွက် POST ကိုအသုံးပြုသည့်အခါတွင် အသုံးပြုရန် အကြံပြုထားသည်။ စက်သင်ယူမှု API များ
အထက်ဖော်ပြပါဝါကျသည် သင်တစ်ဦးဖြစ်လျှင် စကားတပြောပြောနှင့် အသံထွက်ပေမည်။ ဒေတာသိပ္ပံပညာရှင်ဒါပေမယ့် ကောင်းပြီ။ မော်ဒယ်များကို ဒီဇိုင်းဆွဲပြီး အသုံးပြုရန်၊ HTTP တောင်းဆိုမှုများနှင့် REST APIs များအတွက် ကျွမ်းကျင်သူဖြစ်ရန် မလိုအပ်ပါ။
ml model.py အတွက် လုပ်ဆောင်စရာများ နည်းပါးပြီး ရိုးရှင်းသည်-
- သင်သည် ယခင်က ဖန်တီးထားသည့် jaymlmodel.py ဖိုင်မှ အောက်ပါတို့ကို တင်သွင်းရမည်- uvicorn၊ FastAPI၊ IrisModel နှင့် IrisSpecies။
- FastAPI နှင့် IrisModel ၏ဥပမာများကိုဖန်တီးပါ။
- ခန့်မှန်းချက်များကို ပြုလုပ်ရန် https://127.0.0.1:8000/predict တွင် လုပ်ဆောင်ချက်တစ်ခုကို ကြေညာပါ။
- IrisModel.predict species() method သည် IrisSpecies အမျိုးအစား၏ အရာဝတ္ထုတစ်ခုကို လက်ခံရရှိပြီး ၎င်းကို အဘိဓာန်အဖြစ် ပြောင်းလဲပြီးနောက် ၎င်းကို ပြန်ပေးသည်။ ပြန်လာမှုများသည် မျှော်မှန်းထားသောအတန်းနှင့် ခန့်မှန်းခြေဖြစ်နိုင်ခြေများဖြစ်သည်။
- API ကိုလုပ်ဆောင်ရန် uvicorn ကိုသုံးပါ။
တစ်ဖန်၊ ဤသည်မှာ ၎င်း၏မှတ်ချက်များနှင့်အတူ ဖိုင်တစ်ခုလုံး၏ကုဒ်ဖြစ်သည်-
ဒါပဲလုပ်ရမှာ။ နောက်တစ်ဆင့်မှာ API ကို စမ်းသပ်ကြည့်ရအောင်။
API ကို စမ်းသပ်ခြင်း။
API ကိုလုပ်ဆောင်ရန် အောက်ပါလိုင်းကို Terminal ထဲသို့ ပြန်ထည့်ပါ- uvicorn ml_model:app –reload
ဤသည်မှာ စာရွက်စာတမ်း စာမျက်နှာ ပေါ်လာသည်-
ဒီနေ့အတွက် ဒီလောက်ပါပဲ။ နောက်အပိုင်းမှာတော့ ကောက်ချက်ချကြည့်ရအောင်။
ကောက်ချက်
ယနေ့တွင်၊ ရိုးရှင်းသော API နမူနာနှင့် ရိုးရှင်းသော စက်သင်ယူမှုနမူနာနှစ်ခုလုံးကို အသုံးပြု၍ FastAPI သည် မည်သို့အသုံးပြုရမည်ကို သင်လေ့လာခဲ့သည်။ API စာရွက်စာတမ်းများကို ဖန်တီးပုံနှင့် ကြည့်ရှုနည်းအပြင် ၎င်းကို စမ်းသပ်နည်းကိုလည်း သင်လေ့လာထားပါသည်။
တစ်ပုဒ်တည်းအတွက် အများကြီးပါတာမို့ ကောင်းကောင်းနားလည်ဖို့ အနည်းငယ်ဖတ်နေမယ်ဆိုရင် မအံ့သြပါနဲ့။
ပျော်ရွှင်စွာ ကုဒ်ရေးပါ။
တစ်ဦးစာပြန်ရန် Leave