Karolo e 'ngoe ea boemo ke ho theha mofuta oa ho ithuta oa mochini. E tlameha ho sebelisoa lefatšeng la 'nete mme e fumanehe ho bareki le bahlahisi.
Mokhoa o bonolo le o tsebahalang haholo oa ho sebelisa mefuta ea ho ithuta ka mochini ke ho e kenya ka har'a REST API.
Ka laeborari e tsebahalang e bitsoang FastAPI, ke sona seo re tla se fihlela kajeno.
Empa, ke eng FastAPI?
Moralo oa marang-rang oa FastAPI Python o thehiloe ho tloha fatše ho nka monyetla ka bokhoni ba sejoale-joale ba Python.
Bakeng sa puisano e sa tsitsang, ea nako e le 'ngoe le bareki, e khomarela maemo a ASGI, ha e ntse e khona ho sebelisa WSGI.
Li-endpoints le litsela ka bobeli li ka sebelisa mesebetsi ea async. Ntle le moo, FastAPI e thusa ho theha lits'ebetso tsa marang-rang ka mokhoa o hlakileng, o hloekileng, oa sejoale-joale oa Python.
Nyeoe ea mantlha ea tšebeliso ea FastAPI ke, joalo ka ha lebitso le fana ka maikutlo, ho theha lintlha tsa API.
Ho sebelisa maemo a OpenAPI, a kenyeletsang Swagger UI e sebetsang, kapa ho fana ka lintlha tsa bukana ea Python kaha JSON ke litsela tse bonolo tsa ho fihlela sena. Leha ho le joalo, FastAPI ha se ea li-API feela.
E ka sebelisoa ho fana ka maqephe a tloaelehileng a marang-rang ho sebelisa enjene ea template ea Jinja2 le ho fana ka lisebelisoa tse sebelisang WebSockets, ho phaella ho ntho e 'ngoe le e' ngoe eo moralo oa marang-rang o ka o etsang.
Sehloohong sena, re tla theha mofuta o otlolohileng oa ho ithuta oa mochini ebe re sebelisa FastAPI ho o tsamaisa. Ha re qaleng.
Ho kenya FastAPI le ho theha API ea pele
Ho kenya laeborari le seva ea ASGI ho hlokahala pele; ebang Uvuicorn kapa Hypercorn e tla sebetsa. E sebetsa ka ho kenya taelo e latelang ho Terminal:
Kaha joale API e se e thehiloe, u ka sebelisa mohlophisi oa khoutu eo u e ratang 'me oa e bala. Theha sengoloa sa Python se bitsoang ml_model.py ho qala. O amohelehile ho fa la hau lebitso le fapaneng, empa molemong oa poso ena, ke tla bua ka faele ena e le ml_model.py.
Ho theha API e otlolohileng e nang le lintlha tse peli, o tlameha ho phethela mesebetsi e latelang:
- Kenya lilaebrari tsa FastAPI le Uvicorn.
- Beha mohlala oa sehlopha sa FastAPI.
- Phatlalatsa tsela ea pele, eo, leqepheng la index, e hlahisang ntho e otlolohileng ea JSON.
- Phatlalatsa tsela ea bobeli, e fanang ka ntho e otlolohileng ea JSON ka molaetsa o hlophisitsoeng. Lebitso la paramethara le nkiloe ka kotloloho ho URL (mohlala, https://127.0.0.1:8000/Jay).
- Sebelisa Uvicorn ho tsamaisa API.
Ho kenya tshebetsong methati ena e mehlano ho bontshitswe karolong e latelang ya khoutu ke hore. ho theha API e bonolo
Tsohle li entsoe! Ha re hlahiseng API ea rona hanghang. Bula fensetere ea Terminal haufi le file ea ml model.py ho etsa sena. E latelang, kenya tse latelang:
konopo ea Enter. Pele re fetela pele, a re hlakiseng polelo ena. Sesebelisoa sa pele se sebelisa lebitso la faele ea Python feela, ntle le katoloso. Sesebelisoa sa bobeli se tlameha ho ba le lebitso le ts'oanang le mohlala oa hau oa FastAPI.
Ka ho sebelisa -reload, u bolella API hore u batla hore e iketsetse hape ha u boloka faele ho e-na le ho qala ho tloha qalong.
Joale qala sebatli 'me u fetele ho https://127.0.0.1:8000; sephetho se lokela ho hlaha ka tsela e latelang:
Hona joale o utloisisa ho etsa API e bonolo ho sebelisa FastAPI.
Ho aha le ho koetlisa mohlala oa ho Ithuta ka Mechini
Ntle le ho bokella kapa ho sekaseka data efe kapa efe, re tla koetlisa mohlala o bonolo feela. Tsena ha li amane le ho tsamaisoa ha mehlala, 'me ha li bohlokoa ho sehlooho se fanoeng.
Mohlala o thehiloeng ho dataset ea Iris o ka kenngoa o sebelisa se tšoanang neural network mokhoa oa ho kenya.
'Me re tla etsa joalo feela: download the Iris dataset le ho koetlisa mohlala. Seo se ka se be bonolo. Ho qala, etsa faele e bitsoang jaysmlmodel.py.
Ho eona, o tla etsa se latelang:
- Lintho tse tsoang kantle ho naha - U tla hloka li-pandas, scikit-RandomForecastClassifier, ithute pydantic's BaseModel (o tla fumana hore na hobaneng mohatong o latelang), le joblib bakeng sa ho boloka le ho kenya mefuta.
- Phatlalatsa sehlopha sa IrisSpecies se ruang ho tloha ho mohlala oa motheo. Sehlopha sena se na le masimo a hlokahalang ho lepa mofuta o le mong oa lipalesa (ho feta ka seo karolong e latelang)
- Theha sehlopha. IrisModel ke mohlala oa koetliso le sesebelisoa sa ho bolela esale pele.
- Hlalosa mokhoa o bitsoang _train model ka har'a IrisModel. E sebelisoa ho koetlisa mehlala ho sebelisa mokhoa oa Random Forests. Mohlala o koetlisitsoeng o khutlisoa ka mokhoa ona.
- Phatlalatsa mofuta o boletsoeng esale pele o sebetsa ka hare ho IrisModel. E sebelisoa ho bolela esale pele ho latela lintlha tse 4 tsa ho kenya (litekanyo tsa lipalesa). Bobeli ponelopele (mefuta ea lipalesa) le monyetla oa ho bolela esale pele li khutlisoa ke algorithm.
- Fetola sehahi ho IrisModel hore e jarolle dataset ea Iris mme e koetlise mohlala haeba e le sieo foldareng. Sena se rarolla bothata ba ho koetlisa mehlala e mecha khafetsa. Laebrari ea mosebetsi e sebelisetsoa ho kenya le ho boloka mohlala.
Khoutu eohle ke ena:
Ke tšepa hore lethathamo le ka holimo le litlhaloso li entse hore ho be bonolo ho li utloisisa le hoja ena e ne e le palo e kholo ea khoutu e lokelang ho etsoa. Kaha joale mofuta ona o se o ntlafalitsoe, ha re phatlalatseng bokhoni ba ona ba ho bolela esale pele ka a LING API.
Ho theha REST API e felletseng
Khutlela faeleng ea ml_model.py 'me u tlose lintlha tsohle. Boilerplate e tla tšoana hantle le eo u neng u e-na le eona pele, empa re lokela ho qala hape ka faele e se nang letho.
Lekhetlong lena o tla hlalosa ntlha e le 'ngoe feela, e leng eona e sebelisoang ho fumana mofuta oa palesa. Mefuta ea IrisModel.predict(), e phatlalalitsoeng karolong e fetileng, e bitsoa ke ntlha ena ho phethahatsa ponelopele.
Mofuta oa kopo ke phetoho e 'ngoe e kholo. Bakeng sa ho fetisetsa liparamente ho JSON eseng URL, ho khothaletsoa hore u sebelise POST ha u sebelisa ho ithuta mochine APIs.
Polelo e ka holimo e ka 'na ea utloahala e le gibberish haeba u setsebi sa data, empa ho lokile. Ho rala le ho tsamaisa mehlala, ha ho hlokahale hore motho e be setsebi sa likopo tsa HTTP le REST APIs.
Mesebetsi ea ml model.py e fokolang ebile e hlakile:
- O tlameha ho tlisa tse latelang ho tsoa faeleng e entsoeng pele ea jaymlmodel.py: uvicorn, FastAPI, IrisModel, le IrisSpecies.
- Etsa mehlala ea FastAPI le IrisModel.
- Phatlalatsa tšebetso ho https://127.0.0.1:8000/predict ho etsa likhakanyo.
- Mokhoa oa IrisModel.predict species() o amohela ntho ea mofuta oa IrisSpecies, o e fetole ho dikishinari, ebe oa e khutlisa. Ho khutlisa ke sehlopha se lebelletsoeng le monyetla o boletsoeng esale pele.
- Sebelisa uvicorn ho sebelisa API.
Leha ho le joalo, mona ke khoutu eohle ea faele hammoho le maikutlo a eona:
Ke phetho seo u lokelang ho se etsa. Mohato o latelang, ha re lekeng API.
Ho hlahloba API
Kenya hape mola o latelang ho Terminal ho sebelisa API: uvicorn ml_model:app -reload
Ke kamoo leqephe la litokomane le hlahang kateng:
Ho joalo bakeng sa kajeno. Karolong e latelang ena, ha re phetheleng.
fihlela qeto e
Kajeno, u ithutile hore na FastAPI ke eng le hore na u ka e sebelisa joang, u sebelisa mohlala o bonolo oa API le mohlala o bonolo oa ho ithuta mochine. Hape u ithutile ho theha le ho sheba litokomane tsa API, hammoho le mokhoa oa ho li leka.
Ke ntho e ngata bakeng sa sengoathoana se le seng, kahoo u se ke ua makala haeba ho nka ho bala ho fokolang ho utloisisa hantle.
Monate oa ho khouta.
Leave a Reply