O se tasi o vaega o le faʻaaliga o le fatuina o se faʻataʻitaʻiga aʻoaʻoga masini. E tatau ona faʻaaogaina i le lalolagi moni ma avanoa mo tagata faʻatau ma atinaʻe.
O le auala pito sili ona faigofie ma sili ona lauiloa e faʻapipiʻi ai faʻataʻitaʻiga aʻoaʻoga masini o le faʻapipiʻiina lea i totonu ole REST API.
Faatasi ai ma se faletusi lauiloa e taʻua o FastAPI, o le mea tonu lena o le a tatou ausia i aso nei.
Ae, o le a FastAPI?
O le FastAPI Python web framework na faia mai le eleele e faʻaoga lelei ai le faʻaogaina o le Python faʻaonaponei.
Mo asynchronous, fa'atasi feso'ota'iga ma tagata fa'atau, e pipii i le ASGI tulaga, a'o mafai fo'i ona fa'aoga WSGI.
Fa'ai'uga ma auala e mafai uma ona fa'aogaina galuega async. E le gata i lea, o le FastAPI e mafai ai ona gaosia le gaosiga o upega tafaʻilagi i le faʻailoga, mama, faʻaonaponei Python code.
O le fa'aoga autu a le FastAPI, e pei ona ta'u mai e le igoa, o le fatuina o fa'ai'uga API.
O le faʻaaogaina o le OpenAPI standard, lea e aofia ai se fesoʻotaʻiga Swagger UI, poʻo le tuʻuina atu o faʻamatalaga o lomifefiloi Python e pei o JSON o auala faigofie uma ia e ausia ai lenei mea. Ae ui i lea, FastAPI e le gata mo API.
E mafai ona fa'aoga e ofo atu ai itulau fa'akomupiuta e fa'aoga ai le Jinja2 template engine ma fa'apolopolo i le fa'aogaina o WebSockets, fa'aopoopo i le tele o mea uma e mafai ona fai e se upega tafa'ilagi.
I lenei tusiga, o le a matou atiaʻe se faʻataʻitaʻiga saʻo aʻoaʻoga masini ona faʻaaoga lea o le FastAPI e faʻapipiʻi ai. Tatou amata.
Faʻapipiʻiina o le FastAPI ma le fausiaina o le API muamua
E manaʻomia muamua le faʻapipiʻiina o le faletusi ma le ASGI server; a le Uvuicorn po'o le Hypercorn o le a aoga. E galue e ala i le ulufale i le poloaiga lenei i le Terminal:
O lea la ua uma ona faia le API, e mafai ona e fa'aogaina lau fa'atonu code fa'atonu ma su'esu'e i ai. Fausia se tusitusiga Python e taʻua ml_model.py e amata ai. E talia e te tu'uina atu lou igoa e ese, ae mo le lelei o lenei pou, o le a ou faasino i lenei faila o le ml_model.py.
Ina ia fatuina se API tuusaʻo ma ni pito e lua, e tatau ona e faʻamaeʻaina galuega nei:
- Fa'aulufale mai faletusi FastAPI ma Uvicorn.
- Seti se fa'ata'ita'iga vasega FastAPI.
- Ta'utino le auala muamua, lea, i luga o le itulau fa'asino, e maua ai se mea JSON tuusao.
- Faailoa le auala lona lua, lea e maua ai se mea JSON tuusaʻo ma se feʻau faʻapitoa. E ave sa'o mai le URL (mo se fa'ata'ita'iga, https://127.0.0.1:8000/Jay).
- Fa'aaoga le Uvicorn e fa'atino ai le API.
O le faʻatinoina o nei laʻasaga e lima o loʻo faʻaalia i le vaega o loʻo mulimuli mai ie. fatuina o se API faigofie
Ua mae'a uma! Se'i vave fa'alauiloa la tatou API. Tatala se faamalama Terminal i tafatafa o le ml model.py faila e ausia ai lenei mea. Sosoo ai, ulufale i mea nei:
le Enter key. A'o le'i aga'i i luma, se'i o tatou fa'afitia lenei fa'amatalaga. O le app muamua e faʻaaogaina le igoa faila Python naʻo ia, e aunoa ma le faʻaopoopoga. Ole app lona lua e tatau ona tutusa le igoa ma lau fa'ata'ita'iga FastAPI.
I le faʻaaogaina -reload, e te taʻu atu i le API e te manaʻo e otometi ona toe faʻaleleia pe ae faʻasaoina le faila nai lo le amata mai le sasa.
Fa'alauiloa nei se su'esu'ega ma fa'afeiloa'i i le https://127.0.0.1:8000; o le taunuuga e tatau ona aliali mai e faapea:
Ua e malamalama nei i le faiga o se API faigofie e faʻaaoga ai le FastAPI.
Fausiaina ma aʻoaʻoina le faʻataʻitaʻiga o le aʻoaʻoina o masini
A aunoa ma le aoina poʻo le suʻesuʻeina o soʻo se faʻamatalaga, o le a matou aʻoaʻoina se faʻataʻitaʻiga faigofie. O nei mea e le fesoʻotaʻi ma le faʻapipiʻiina o faʻataʻitaʻiga ma e le taua i le autu o loʻo i ai.
O se faʻataʻitaʻiga e faʻavae i luga o le Iris dataset e mafai ona faʻapipiʻiina e faʻaoga tutusa fesoʻotaʻiga faʻanoanoa auala fa'apipi'i.
Ma o le a matou faia lena mea: download le Iris fa'amaumauga ma aoaoina le faataitaiga. E le faigofie lena mea. Ina ia amata, fai se faila e igoa ia jaysmlmodel.py.
I totonu, e te faia mea nei:
- Fa'aulufale mai - E te mana'omia pandas, scikit-RandomForecastClassifier, a'oa'o le pydantic's BaseModel (e te iloa pe aisea i le laasaga o lo'o mulimuli mai), ma joblib mo le teuina ma le utaina o ata.
- Fa'ailoa se vasega IrisSpecies e maua mai le fa'ata'ita'iga fa'avae. O lenei vasega o lo'o i ai na'o fanua e mana'omia e va'ai ai se ituaiga fuga e tasi (sili atu i lena i le isi vaega)
- Fausia se vasega. O le IrisModel o se faʻataʻitaʻiga aʻoaʻoga ma mea faigaluega vavalo.
- Ta'utino se metotia ua ta'ua _train model i totonu ole IrisModel. E fa'aaogaina e a'oa'o ai fa'ata'ita'iga e fa'aaoga ai le Random Forests technique. O le faʻataʻitaʻiga aʻoaʻoina e toe faʻafoʻi mai i le faʻagasologa.
- Fa'ailoa se galuega fa'atino i totonu ole IrisModel. E fa'aaogaina e va'ai ai e fa'atatau i mea fa'aoga e 4 (fuaina o fugala'au). O le va'aiga (ituaiga fugala'au) ma le taumatematega e mafai ona toe fa'afo'i mai e le algorithm.
- Suia le faufale i IrisModel ina ia utaina le Iris dataset ma toleni le faʻataʻitaʻiga pe a misi mai le faila. O lenei mea e foia ai le faʻafitauli o le aʻoaʻoina pea o faʻataʻitaʻiga fou. O le faletusi joblib o loʻo faʻaaogaina mo le faʻataʻitaʻiga o le utaina ma le teuina.
O le code atoa lenei:
Ou te faʻamoemoe o le lisi o loʻo i luga ma faʻamatalaga na faigofie ai ona malamalama e ui lava o se numera tele o code e fatuina. O lea la ua uma ona atia'e lenei fa'ata'ita'iga, se'i o tatou fa'asalalauina ona gafatia valo'aga i luga a malolo API.
Fausia se REST API atoa
Toe fo'i i le faila ml_model.py ma fa'amama uma fa'amaumauga. O le fa'apalapala o le a tutusa lelei ma le mea na e maua muamua, ae tatau ona tatou toe amata i se faila avanoa.
E na'o le tasi le fa'ai'uga o le taimi lenei, o le mea lea e fa'aaogaina e iloa ai le ituaiga o fuga. IrisModel.predict species(), lea na fa'ailoa mai i le vaega muamua, e vala'au e lenei pito e fa'atino ai le valo'aga.
O le ituaiga talosaga o le isi suiga tele. Ina ia mafai ona tuʻuina atu faʻasologa i le JSON nai lo le URL, e fautuaina e te faʻaogaina le POST pe a faʻaaoga masini suʻesuʻe API
O le fuaiupu o loʻo i luga atonu e foliga faʻafefe pe afai o oe a saienitisi faʻamatalaga, ae e le afaina. Ina ia mamanuina ma faʻapipiʻi faʻataʻitaʻiga, e le manaʻomia e se tasi le avea ma se tagata poto i talosaga HTTP ma REST API.
O galuega mo ml model.py e itiiti ma faigofie:
- E tatau ona e fa'aulufale mai mea nei mai le faila jaymlmodel.py na faia muamua: uvicorn, FastAPI, IrisModel, ma IrisSpecies.
- Fausia faʻataʻitaʻiga o FastAPI ma IrisModel.
- Fa'ailoa se galuega ile https://127.0.0.1:8000/predict e fai ai valo'aga.
- O le auala IrisModel.predict species() e maua se mea o le ituaiga IrisSpecies, suia i se lomifefiloi, ona toe faafoi mai lea. Fa'afo'i mai o le vasega fa'amoemoeina ma le fa'amoemoe fa'amoemoe.
- Fa'aaoga le uvicorn e fa'atino ai le API.
Ae le gata i lea, o le faila atoa lea o le faila faʻatasi ma ana faʻamatalaga:
Pau lava le mea e tatau ona e faia. I le isi laasaga, seʻi o tatou suʻeina le API.
Su'ega le API
Toe fa'aofi le laina lea i totonu o le Terminal e fa'atino ai le API: uvicorn ml_model:app –reload
O le auala lea e aliali mai ai le itulau fa'amaumauga:
O le mea lena mo lenei aso. I le vaega mulimuli ane, tatou faaiu.
iʻuga
I aso nei, na e aʻoaʻoina ai le FastAPI ma pe faʻafefea ona faʻaogaina, faʻaaoga uma se faʻataʻitaʻiga API faigofie ma se faʻataʻitaʻiga faigofie aʻoaʻoga masini. Ua e a'oa'oina fo'i pe fa'apefea ona fai ma va'ai fa'amaumauga API, fa'apea fo'i ma le su'ega.
E tele naua mo se fasipepa e tasi, o lea aua e te ofo pe a manaʻomia ni nai faitauga e malamalama lelei ai.
Fiafia coding.
Tuua se tali