Chimwe chikamu chechiitiko ichi kugadzira modhi yekudzidza yemuchina. Inofanira kushandiswa munyika chaiyo uye inowanikwa kune vatengi uye vanogadzira.
Iyo yakapfava uye inonyanya kufarirwa nzira yekuendesa modhi yekudzidza yemuchina ndeyekuivharira muREST API.
Iine raibhurari yakakurumbira inonzi FastAPI, ndizvo chaizvo zvatichaita nhasi.
Asi, chii FastAPI?
Iyo FastAPI Python web framework yakagadzirwa kubva pasi kuti itore mukana wezvino Python kugona.
Kune asynchronous, kutaurirana pamwe chete nevatengi, inonamatira kune ASGI standard, nepo ichikwanisa kushandisa WSGI.
Endpoints uye nzira dzinogona kushandisa async mabasa. Pamusoro pezvo, FastAPI inogonesa kugadzirwa kwewebhu maapplication mumhando-yakanyorwa, yakachena, yemazuva ano Python kodhi.
FastAPI's main use case, sekureva kunoita zita, kugadzira API endpoints.
Kushandisa iyo OpenAPI standard, iyo inosanganisira inopindirana Swagger UI, kana kupa Python duramazwi data seJSON inzira dziri nyore dzekuzadzisa izvi. Zvisinei, FastAPI haisi yeAPI chete.
Inogona kushandiswa kupa akajairwa mapeji ewebhu uchishandisa Jinja2 template injini uye kushandira maapplication uchishandisa WebSockets, mukuwedzera kune zvakanakisa zvese zvimwe zvingaitwa newebhu.
Muchinyorwa chino, isu tichagadzira yakatwasuka yemuchina yekudzidza modhi tobva tashandisa FastAPI kuiendesa. Ngatitange.
Kuiswa kweFastAPI uye kusikwa kweiyo yekutanga API
Kuisa raibhurari uye ASGI server inodiwa kutanga; ingave Uvuicorn kana Hypercorn ichashanda. Inoshanda nekuisa unotevera kuraira muiyo Terminal:
Iye zvino iyo API yagadzirwa, unogona kushandisa yako yaunoda kodhi kodhi uye kutarisa mairi. Gadzira chinyorwa chePython chinonzi ml_model.py kuti utange. Unogamuchirwa kupa rako zita rakasiyana, asi nekuda kwechinyorwa ichi, ini ndichanongedzera kufaira iri se ml_model.py.
Kugadzira yakatwasuka API ine maviri ekupedzisira, iwe unofanirwa kupedzisa anotevera mabasa:
- Ngenisa iyo FastAPI uye Uvicorn maraibhurari.
- Gadzirisa FastAPI kirasi muenzaniso.
- Zivisa nzira yekutanga, iyo, pane index peji, inoburitsa yakatwasuka JSON chinhu.
- Zivisa nzira yechipiri, iyo inopa yakatwasuka JSON chinhu chine meseji yakasarudzika. Iro zita parameter rinotorwa rakananga kubva kuURL (semuenzaniso, https://127.0.0.1:8000/Jay).
- Shandisa Uvicorn kumhanyisa iyo API.
Kuita zvinhanho zvishanu izvi kunoratidzwa muchidimbu chinotevera chekodhi kureva. kugadzira iri nyore API
Zvese zvaitwa! Ngatitangei API yedu nekukasira. Vhura iyo Terminal hwindo padivi peiyo ml model.py faira kuti uite izvi. Zvadaro, isa zvinotevera:
kiyi yeEnter. Tisati taenderera mberi, ngatiregedze chirevo ichi. Yekutanga app inoshandisa zita rePython faira rega, pasina kuwedzera. Yechipiri app inofanirwa kunge iine zita rakafanana neyako FastAPI muenzaniso.
Nekushandisa -reload, unoudza iyo API kuti unoda kuti idzore otomatiki kana iwe uchinge wachengeta faira pane kutanga kubva kutanga.
Zvino tanga bhurawuza uye enda ku https://127.0.0.1:8000; chigumisiro chinofanira kuonekwa sezvinotevera:
Iwe zvino unonzwisisa maitiro ekugadzira iri nyore API uchishandisa FastAPI.
Kuvaka uye kudzidzisa iyo Machine Kudzidza modhi
Pasina kuunganidza kana kuongorora chero data, isu tichangodzidzisa iri nyore modhi. Izvi hazvienderane nekutumirwa kwemamodheru uye hazvina kukosha kune iyo nyaya iripo.
Muenzaniso wakavakirwa paIris dataset unogona kuiswa uchishandisa zvakafanana neural network kuisa nzira.
Uye isu tichaita izvo chaizvo: dhawunirodha iyo Iris dataset uye dzidzisa muenzaniso. Izvo hazvizove nyore. Kutanga, gadzira faira rakanzi jaysmlmodel.py.
Mariri, iwe uchaita zvinotevera:
- Imports - Iwe unozoda pandas, scikit-RandomForecastClassifier, dzidza's pydantic's BaseModel (iwe uchaona nei munhanho inotevera), uye joblib yekuchengetedza uye kurodha modhi.
- Zivisa kirasi yeIrisSpecies inogara nhaka kubva kune base modhi. Kirasi iyi inongova neminda inodiwa kufanotaura rudzi rweruva rimwechete (zvimwe pane izvo muchikamu chinotevera)
- Gadzira kirasi. IrisModel muenzaniso wekudzidzisa uye kufanotaura chishandiso.
- Zivisa nzira inonzi _train modhi mukati meIrisModel. Inoshandiswa kudzidzisa modhi uchishandisa nzira yeRandom Forests. Muenzaniso wakadzidziswa unodzorerwa nenzira.
- Zivisa fungidziro yemhando inoshanda mukati meIrisModel. Inoshandiswa kufanotaura zvichibva pane 4 zvinhu zvekuisa (zviyero zvemaruva). Zvese zviri zviviri kufanotaura (rudzi rwemaruva) uye mukana wekufungidzira zvinodzoserwa nealgorithm.
- Shandura muvaki muIrisModel kuitira kuti itakure Iris dataset uye inodzidzisa modhi kana ichishaikwa kubva mufolda. Izvi zvinogadzirisa dambudziko rekudzokorora kudzidzisa mhando nyowani. Iyo joblib raibhurari inoshandiswa pakurodha modhi uye kuchengetedza.
Heino kodhi yese:
Ndinovimba rondedzero iri pamusoro uye zvakataurwa zvakaita kuti zvive nyore kubata kunyangwe iyi yaive yakakura nhamba yekodhi yekugadzira. Zvino iyo modhi iyi yakagadziridzwa, ngatiburitse kugona kwayo kufanotaura pamusoro pea VAMWE API.
Kugadzira yakazara REST API
Dzokera kune ml_model.py faira uye bvisa data rese. Iyo boilerplate ichave yakafanana neyawaive nayo kare, asi isu tinofanira kutanga nefaira risina chinhu.
Iwe unongotsanangura imwe magumo panguva ino, inova ndiyo inoshandiswa kuona rudzi rweruva. IrisModel.predict species(), iyo yakaziviswa muchikamu chakapfuura, inodanwa neino magumo kuita kufanotaura.
Mhando yekukumbira ndiyo imwe shanduko huru. Kuti utumire paramita muJSON pane URL, zvinokurudzirwa kuti ushandise POST paunenge uchishandisa machine learning APIs.
Mutsara uri pamusoro unogona kunge wakaita sekunge gibberish kana uri a data sainzi, asi zvakanaka. Kugadzira uye kutumira modhi, munhu haafanire kuve nyanzvi pane zvikumbiro zveHTTP uye REST APIs.
Iwo mabasa e ml model.py mashoma uye akatwasanuka:
- Iwe unofanirwa kuunza zvinotevera kubva kune yakambogadzirwa jaymlmodel.py faira: uvicorn, FastAPI, IrisModel, uye IrisSpecies.
- Gadzira zviitiko zve FastAPI uye IrisModel.
- Zivisa basa pa https://127.0.0.1:8000/predict kuita fungidziro.
- Iyo IrisModel.predict species() nzira inogamuchira chinhu cherudzi IrisSpecies, inochishandura kuva duramazwi, uye yochidzorera. Kudzoka ndiyo kirasi inotarisirwa uye mukana wakafanotaurwa.
- Shandisa uvicorn kuita iyo API.
Zvakadaro zvakare, heino iyo faira yese kodhi pamwe nekutaura kwayo:
Ndizvo zvoga zvaunofanira kuita. Mudanho rinotevera, ngatiedzei API.
Kuedza iyo API
Pindazve mutsara unotevera muTemina kuti uite API: uvicorn ml_model:app -reload
Aya ndiwo maitiro anoita peji rezvinyorwa:
Saka ndizvo zvanhasi. Muchikamu chinotevera ichi, ngatipedzei.
mhedziso
Nhasi, wakadzidza kuti FastAPI chii uye kuti ungaishandisa sei, uchishandisa ese ari nyore API muenzaniso uye nyore muchina kudzidza muenzaniso. Iwe wakadzidza zvakare kugadzira uye kuona API zvinyorwa, pamwe nekuzviyedza.
Izvo zvakawanda kune chidimbu chimwe chete, saka usashamisika kana zvichitora mashoma kuverenga kuti unzwisise zvakanaka.
Happy coding.
Leave a Reply