Eli nqaku limalunga nePython Gateway, iprojekthi yoluntu evulekileyo ye-InterSystems IRIS data platform. Le projekthi ikuvumela ukuba ulungelelanise nayiphi na i-algorithms yokufunda koomatshini eyenziwe kwiPython (eyona ndawo iphambili yeeNzululwazi ezininzi zeData), sebenzisa amathala eencwadi amaninzi esele yenziwe ngokukhawuleza ukudala izisombululo eziguquguqukayo, ezihlalutyayo zerobhothi ze-AI / ML kwiqonga le-InterSystems IRIS. Kule nqaku, ndiza kubonisa indlela i-InterSystems IRIS inokwenza ngayo iinkqubo kwiPython, inxibelelane ngokufanelekileyo idatha yeendlela ezimbini, kwaye idale iinkqubo zoshishino ezihlakaniphile.
Cwangciso
- Intshayelelo.
- Izixhobo.
- Ukufakwa
- API.
- Ukusebenzisana.
- Jupyter Notebook.
- Izigqibo.
- Unxulumano.
- MLToolkit.
Intshayelelo
I-Python lulwimi olukumgangatho ophezulu, olujoliswe ekuphuculeni imveliso yophuhlisi kunye nekhowudi yokufunda. Kolu luhlu lwamanqaku, ndiza kuxubusha amathuba okusebenzisa iPython kwi-InterSystems IRIS iqonga, ingqwalasela ephambili yeli nqaku kukusetyenziswa kwePython njengolwimi lokudala kunye nokuqhuba imodeli yokufunda koomatshini.
Ukufunda ngomatshini (ML) yiklasi yeendlela zobukrelekrele bokwenziwa, uphawu lweempawu ezingezona isisombululo esithe ngqo sengxaki, kodwa ukufunda kwinkqubo yokusombulula iingxaki ezininzi ezifanayo.
Ii-algorithms zokufunda koomatshini kunye neemodeli ziya zixhaphaka ngakumbi. Kukho izizathu ezininzi zoku, kodwa konke kuhla ekufikelelekeni, ukulula kunye nokuphumeza iziphumo ezibonakalayo. Ngaba ukudibanisa okanye inethiwekhi ye-neural imodeli entsha yetekhnoloji?
Ngokuqinisekileyo akunjalo, kodwa namhlanje akukho mfuneko yokubhala amakhulu amawaka emigca yekhowudi ukuqhuba imodeli enye, kwaye iindleko zokudala nokusebenzisa iimodeli ziba ngaphantsi nangaphantsi.
Izixhobo ziyaguquguquka - ngelixa singenazo ngokupheleleyo izixhobo ze-AI / ML ze-GUI-centric, inkqubela esiyibonileyo kunye nezinye iiklasi ezininzi zeenkqubo zolwazi, ezifana ne-BI (ukusuka kwikhowudi yokubhala ukuya ekusebenziseni izikhokelo kunye ne-GUI-centric configurable solutions) , ikwajongwe kwizixhobo zokwenza i-AI/ML. Sele siphumelele inqanaba lokubhala ikhowudi kwaye namhlanje sisebenzisa izikhokelo zokwakha nokuqeqesha imizekelo.
Olunye uphuculo, olufana nokukwazi ukusasaza imodeli eqeqeshwe kwangaphambili apho umsebenzisi wokugqibela kufuneka agqibe ukuqeqesha imodeli kwiinkcukacha zabo ezithile, kwenza kube lula ukuqalisa ngokufunda ngomatshini. Ezi nkqubela phambili zenza ukuba ukufunda koomatshini kube lula kakhulu kuzo zombini iingcali kunye neenkampani ngokubanzi.
Ngakolunye uhlangothi, siqokelela idatha eninzi nangaphezulu. Ngeqonga ledatha elidibeneyo njenge-InterSystems IRIS, lonke olu lwazi lunokulungiswa ngokukhawuleza kwaye lusetyenziswe njengegalelo kwiimodeli zokufunda ngomatshini.
Ngokufudukela kwilifu, ukuqaliswa kweeprojekthi ze-AI/ML kuya kuba lula kunangaphambili. Sinokusebenzisa kuphela izixhobo esizidingayo. Ngaphezu koko, ngenxa yokuhambelana okunikezelwa ngamaqonga elifu, sinokugcina ixesha elichithwe.
Kodwa kuthekani ngemiphumo? Apha kulapho izinto ziba nzima khona. Kukho izixhobo ezininzi zokwakha iimodeli, endiya kuxoxa ngazo ngokulandelayo. Ukwakha imodeli elungileyo akulula, kodwa yintoni elandelayo? Ukwenza inzuzo ngokusebenzisa imodeli yeshishini kungumsebenzi ongeyomfuneko. Ingcambu yengxaki kukuhlukana komsebenzi wokuhlalutya kunye nokuthengiselana, kunye neemodeli zedatha. Xa siqeqesha imodeli, ngokuqhelekileyo siyenza kwidatha yembali. Kodwa indawo yemodeli eyakhiweyo kukusetyenzwa kwedatha. Inceda ngantoni eyona modeli yobonelelo lwentengiselwano yobuqhophololo ukuba siyayiqhuba kanye ngemini? Ootsotsi kudala bemka nemali. Kufuneka siqeqeshe imodeli kwidatha yembali, kodwa kufuneka siyisebenzise ngexesha langempela kwidatha entsha engenayo ukuze iinkqubo zethu zoshishino zikwazi ukwenza izinto eziqikelelweyo ezenziwe yimodeli.
I-ML Toolkit yiseti yezixhobo ezijolise ukwenza oku kanye: ukudibanisa iimodeli kunye nemo yentengiselwano ukuze iimodeli ezakhiweyo zisetyenziswe ngokulula kwiinkqubo zakho zoshishino. I-Python Gateway yinxalenye ye-ML Toolkit kwaye ibonelela ngokudityaniswa nolwimi lwePython (ngokufanayo nendlela i-R Gateway, ukuba yinxalenye ye-ML Toolkit ibonelela ngayo ukudityaniswa nolwimi lwe-R).
Izixhobo
Ngaphambi kokuba siqhubeke, ndingathanda ukuchaza izixhobo ezimbalwa zePython kunye namathala eencwadi esiya kuwasebenzisa kamva.
zobugcisa
- I-Python lulwimi olutolikwayo, olukwinqanaba eliphezulu, lwenjongo jikelele. Inzuzo ephambili yolwimi yilayibrari yayo enkulu yezibalo, iilayibrari ze-ML kunye ne-AI. Njenge-ObjectScript, lulwimi olujolise kwinto ethile, kodwa yonke into ichazwa ngokuguquguqukayo endaweni ye-statically. Kwakhona yonke into iyinto. Amanqaku amva athatha ukuqhelana nolwimi. Ukuba ufuna ukuqala ukufunda, ndincoma ukuqala .
- Kwimisebenzi yethu elandelayo, setha .
- IDE: Ndiyayisebenzisa , kodwa ngokubanzi . Ukuba usebenzisa i-Atelier, kukho iplagi ye-Eclipse yabaphuhlisi bePython. Ukuba usebenzisa iKhowudi yeVS, kukho ukongezwa kwePython.
- Incwadi yamanqaku: Endaweni ye-IDE, ungabhala kwaye wabelane ngezikripthi zakho kwiincwadana zamanqaku ze-intanethi. Eyona idumileyo kubo .
Amathala eencwadi
Nalu uluhlu (olungaphelelanga) lweelayibrari zokufunda ngoomatshini:
- - iphakheji esisiseko yezibalo ezichanekileyo.
- - izakhiwo zedatha ephezulu kunye nezixhobo zokuhlalutya idatha.
- - ukudalwa kweegrafu.
- -Ukubona idatha esekwe kwi-matplotlib.
- - iindlela zokufunda ngoomatshini.
- -Ii-algorithms zokufunda koomatshini ngaphakathi kwesakhelo sendlela yokukhulisa igradient.
- -NLP.
- - iinethiwekhi ze-neural.
- - iqonga lokudala imodeli yokufunda koomatshini.
- liqonga lokudala imodeli yokufunda koomatshini, egxile kwiPython.
- -PMML kwiimodeli ezahlukeneyo.
Itekhnoloji ye-AI/ML yenza ishishini lisebenze ngakumbi kwaye liguquke. Ngaphezu koko, namhlanje obu buchwepheshe buba lula ukuphuhlisa nokuphumeza. Qala ukufunda malunga nobuchwepheshe be-AI/ML kunye nendlela abanokunceda ngayo umbutho wakho ukuba ukhule.
isicwangciso
Kukho iindlela ezininzi zokufaka kunye nokusebenzisa iPython Gateway:
- I-OS
- Windows
- Linux
- IMac
- Docker
- Sebenzisa umfanekiso ovela kwiDockerHub
- Yenza inkangeleko yakho
Nokuba yeyiphi na indlela yokuhlohla, uya kufuna ikhowudi yomthombo. Indawo kuphela yokukhuphela ikhowudi . Iqulethe ukhupho oluvavanyiweyo oluzinzileyo, thatha nje olwamva nje. Okwangoku yi-0.8, kodwa ekuhambeni kwexesha kuya kubakho ezintsha. Sukubumba/ukhuphele indawo yokugcina, khuphela ukhupho lwamva nje.
I-OS
Ukuba ufaka i-Python Gateway kwinkqubo yokusebenza, ngoko kuqala (kungakhathaliseki ukuba yinkqubo yokusebenza) kufuneka ufake iPython. Yale:
- . Kucetyiswa ukuba ufake iPython kulawulo olungagqibekanga.
- Faka imodyuli
dill:pip install dill. - Khuphela ikhowudi ye-ObjectScript (okt.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) kuyo nayiphi na indawo enemveliso. Ukuba ufuna indawo ekhoyo ukuxhasa iimveliso, sebenzisa:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1). - Indawo kwifolda
binumzekelo wakho weInterSystems IRIS. Ifayile yethala leencwadi kufuneka ifumaneke kwindlela ebuyisiweyowrite ##class(isc.py.Callout).GetLib().
Windows
- Qinisekisa ukuguquguquka kokusingqongileyo
PYTHONHOMEikhomba kwiPython 3.6.7. - Qinisekisa ukuba ukuguquguquka kwemeko-bume yenkqubo
PATHiqulathe utshintshoPYTHONHOME(okanye uvimba weefayili ekhomba kuwo).
Linux (Debian/Ubuntu)
- Jonga ukuba imeko-bume iguquguquka
PATHiqulethe/usr/libи/usr/lib/x86_64-linux-gnu. Sebenzisa ifayile/etc/environmentukuseta iinguqu zemo engqongileyo. - Kwimeko yeempazamo
undefined symbol: _Py_TrueStructseta usetoPythonLib. kwakhona kwi kukho icandelo leNgxaki.
IMac
- Okwangoku kuphela iPython 3.6.7 exhaswayo . Jonga inguqu
PATH.
Ukuba utshintshe izinto eziguquguqukayo zemekobume, qala kwakhona imveliso yakho ye-InterSystems.
Docker
Ukusebenzisa izikhongozeli kuneengenelo ezininzi:
- Ukuphatheka
- Impumelelo
- Ukufakwa
- Ukukhanya
- Ukungaguquki
Jonga oku ngolwazi oluthe kratya malunga nokusebenzisa iDocker ngeemveliso ze-InterSystems.
Zonke izakhiwo zePython Gateway okwangoku zisekwe kwizikhongozeli 2019.4.
Umfanekiso olungile
Baleka: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestukukhuphela kunye nokusebenza kwePython Gateway kunye ne-InterSystems IRIS Community Edition. Kuko konke.
Yenza inkangeleko yakho
Ukwakha umfanekiso wedokhi, baleka kwingcambu yendawo yokugcina: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Ngokungagqibekanga, umfanekiso wakhiwe ngokusekelwe kumfanekiso store/intersystems/iris-community:2019.4.0.383.0, nangona kunjalo ungatshintsha oku ngokucwangcisa utshintsho IMAGE.
Ukwakha ukusuka kwi-InterSystems IRIS, sebenzisa: `i-docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest ".
Emva koku unokuqhuba umfanekiso wedocker:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.keyUkuba usebenzisa umfanekiso osekelwe kwi-InterSystems IRIS Community Edition, ungasishiya isitshixo.
izimvo
- Inkqubo yovavanyo
isc.py.test.Processigcina inani lemifanekiso kulawulo lwexeshana. Ungafuna ukutshintsha le ndlela kulawulo olunyusiweyo. Ukwenza oku, hlela usetoWorkingDirikhankanya uvimba weefayili onyusiweyo. - Ukufikelela kwi-terminal run:
docker exec -it irispy sh. - Ukufikelela kwiPortal yoLawulo lweNkqubo ngokungena
SuperUser/SYS. - Ukumisa isikhongozeli, sebenzisa:
docker stop irispy && docker rm --force irispy.
Ukuqinisekisa ukufakela
Nje ukuba uyifakile iPython Gateway, kufanelekile ukujonga ukuba iyasebenza. Yenza le khowudi kwi-InterSystems IRIS terminal:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write varIsiphumo kufuneka sibe: HELLO -Ixabiso eliguquguqukayo lePython x. Ukuba ubume bembuyekezo sc yimpazamo okanye var engenanto, khangela .
API
I-Python Gateway ifakiwe kwaye uqinisekisile ukuba iyasebenza. Lixesha lokuba uqale ukuyisebenzisa!
Ujongano oluphambili kwiPython yi isc.py.Main. Inika amaqela alandelayo eendlela (zonke ziyabuya %Status):
- Ukuphunyezwa kweKhowudi
- Ukuhanjiswa kwedatha
- Umncedi
Ukuphunyezwa kweKhowudi
Ezi ndlela zikuvumela ukuba wenze ikhowudi yePython engafanelekanga.
SimpleString
SimpleString - le yeyona ndlela iphambili. Kuthatha iingxoxo ezi-4 ozikhethelayo:
code— umgca wekhowudi oza kuwenza. Unobumba wesondlo somgca:$c(10).returnVariable— igama loguqulo oluza kubuyiselwa.serialization- indlela yokwenza uthothoreturnVariable. 0 - umtya (ongagqibekanga), 1 - repr.result- Ireferensi ye-ByRef kuguquko apho ixabiso libhalwa khonareturnVariable.
ngasentla senze:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).Kulo mzekelo, sabela ukwahluka kwePython x intsingiselo Hello kwaye ufuna ukubuyisela ixabiso lePython variable x kwi-ObjectScript eguquguqukayo var.
Yenza iKhowudi
I-ExecuteCode yeyona ndlela ikhuselekileyo kwaye inesithintelo esincinci SimpleString.
Imigca kwi-InterSystems iqonga le-IRIS lilinganiselwe kwiimpawu ze-3, kwaye ukuba ufuna ukuphumeza ikhowudi ende, kufuneka usebenzise iintambo.
Iingxoxo ezimbini zamkelwe:
code-umgca okanye umlambo wekhowudi yePython ekufuneka iphunyezwe.variable- (ukhetho) unika umphumo wokubulawacodeoku kuguquguquka kwePython.
Umzekelo wokusetyenziswa:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").Kulo mzekelo, siphindaphinda u-2 ngo-3 kwaye sibhale umphumo kwi-Python variable y.
Ukuhanjiswa kwedatha
Dlula idatha ukuya nokusuka kwiPython.
Python -> InterSystems IRIS
Kukho iindlela ezi-4 zokufumana ixabiso lokuguquguquka kwePython kwi-InterSystems IRIS, kuxhomekeke kuluhlu olufunayo:
Stringkwiintlobo zedata ezilula kunye nokulungiswa kweempazamo.Reprukugcina izinto ezilula kunye nokulungiswa kweempazamo.JSONukwenza lula idatha kwicala le-InterSystems IRIS.Pickleukugcina izinto.
Ezi ndlela zikuvumela ukuba ubuyise izinto eziguquguqukayo kwiPython njengomtya okanye imisinga.
GetVariable(variable, serialization, .stream, useString)-fumanaserializationukuguquguqukavariableвstream. ukubauseStringngu-1 kwaye ulandelelwano lubekwe kumtya, emva koko umtya uyabuyiswa hayi umsinga.GetVariableJson(variable, .stream, useString)-fumana uthotho lweJSON lokuguquguquka.GetVariablePickle(variable, .stream, useString, useDill)-fumana iPickle (okanye iDill) ulandelelwano lwenguqu.
Makhe sizame ukufumana ukuguquguquka kwethu y.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6InterSystems IRIS -> Python
Ukulayisha idatha kwi-InterSystems IRIS kwiPython.
ExecuteQuery(query, variable, type, namespace)- yenza iseti yedatha (ipandasdataframeokanyelist) ukusuka kumbuzo wesql kwaye uyibeke kwinguqu yePythonvariable. Ibhegi yeplastikhiisc.pykufuneka ibekhona kwindawonamespace- isicelo siya kwenziwa apho.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)-ilayisha idatha yehlabathiglobalukusuka kumrhumostartдоendkwiPython njengohlobo oluguquguqukayotype:list, okanye iipandadataframe. Inkcazo yeengxoxo ozikhethelayomaskkwayelabelsekhoyo kumaxwebhu eklasi kunye nendawo yokugcina .ExecuteClass(class, variable, type, start, end, properties, namespace)- ilayisha idatha yeklasiclassukusuka kwi-idstartдоendkwiPython njengohlobo oluguquguqukayotype:list, okanye iipandadataframe.properties— uluhlu (olwahlulwe ngekoma) lweempawu zeklasi ezifuna ukulayishwa kwiseti yedatha. Iimaski ziyaxhaswa*и?. Okuhlala kukho -*(zonke iipropati). Ipropati%%CLASSNAMEingahoywa.ExecuteTable(table, variable, type, start, end, properties, namespace)- ilayisha idatha yetafiletableukusuka kwi-idstartдоendkwiPython.
ExecuteQuery — jikelele (nawuphi na umbuzo ochanekileyo weSQL uya kudluliselwa kwiPython). Nangona kunjalo, ExecuteGlobal nezisongelo zayo ExecuteClass и ExecuteTable sebenza ngenani lezithintelo. Bakhawuleza kakhulu (i-3-5 amaxesha ngokukhawuleza kunomqhubi we-ODBC kunye namaxesha angama-20 ngokukhawuleza ExecuteQuery). Ulwazi oluninzi ku .
Zonke ezi ndlela zixhasa ukudluliselwa kwedatha kuyo nayiphi na indawo. Ibhegi yeplastikhi isc.py kufuneka ifumaneke kwindawo ekujoliswe kuyo.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace) — ukudlulisela iziphumo zawo nawuphi na umbuzo ochanekileyo weSQL kwiPython. Le yeyona ndlela icothayo yokudlulisa idatha. Yisebenzise ukuba ExecuteGlobal kwaye izisongelo zayo azifumaneki.
Iingxoxo:
query- sql umbuzo.variable- igama lePython eguquguqukayo apho idatha ibhalwe khona.type-listokanye iiPandadataframe.namespace— indawo apho isicelo siya kwenziwa khona.
ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) -ukudlula kwihlabathi kwiPython.
Iingxoxo:
global- igama lehlabathi ngaphandle^variable- igama lePython eguquguqukayo apho idatha ibhalwe khona.type-listokanye iiPandadataframe.start- umrhumo wokuqala wehlabathi. Ngokuyimfuneko%Integer.end- umrhumo wokugqibela wehlabathi. Ngokuyimfuneko%Integer.mask- imaski yexabiso yehlabathi. Imaski ingaba mfutshane kunenani leenkalo zehlabathi (apho amasimi ekupheleni aya kutsitywa). Ufomatha njani imaski:+ligqithise ixabiso njengoko linjalo.-tsiba ixabiso.b-Udidi lweBoolean (0-False, bonke abanye -True).d- Umhla (ukusuka kwi-$horolog, kwiWindows ukusuka kwi-1970, kwi-Linux ukusuka kwi-1900).t- Ixesha ($ horolog, imizuzwana emva ezinzulwini zobusuku).m-Isitampu sexesha (umtya wefomati YEAR-MONTH-DAY HOUR:MINUTE:SECOND).
labels— % Uluhlu lwamagama ekholamu. Into yokuqala ligama lomrhumo.namespace— indawo apho isicelo siya kwenziwa khona.
ExecuteClass
Gquba ngaphezulu ExecuteGlobal. Ngokusekelwe kwinkcazo yeklasi, ilungiselela umnxeba ExecuteGlobal ambize.
ExecuteClass(class, variable, type, start, end, properties, namespace) -ukudlula idatha yeklasi kwiPython.
Iingxoxo:
class- igama leklasivariable- igama lePython eguquguqukayo apho idatha ibhalwe khona.type-listokanye iiPandadataframe.start— ukuqala ID.end- i-ID yokugqibelaproperties— uluhlu (olwahlulwe ngekoma) lweempawu zeklasi ezifuna ukulayishwa kwiseti yedatha. Iimaski ziyaxhaswa*и?. Okuhlala kukho -*(zonke iipropati). Ipropati%%CLASSNAMEingahoywa.namespace— indawo apho isicelo siya kwenziwa khona.
Zonke iipropati zigqithiswa njengoko zinjalo ngaphandle kweepropati zodidi %Date, %Time, %Boolean и %TimeStamp - ziguqulelwa kwiiklasi zePython ezihambelanayo.
ExecuteTable
Gquba ngaphezulu ExecuteClass. Uguqulela igama letafile kwigama leklasi kunye neefowuni ExecuteClass. Umsayino:
ExecuteTable(table, variable, type, start, end, properties, namespace) -ukudlula idatha yetafile kwiPython.
Iingxoxo:
table- igama letheyibhile.
Zonke ezinye iingxoxo zigqithiswa njengoko kusenziwaExecuteClass.
Amanqaku
ExecuteGlobal,ExecuteClassиExecuteTablesebenza ngokukhawuleza ngokulinganayo.ExecuteGlobalAmaxesha angama-20 ngokukhawuleza kunokoExecuteQuerykwiiseti zedatha enkulu (ixesha lokutshintshela> imizuzwana eyi-0.01).ExecuteGlobal,ExecuteClassиExecuteTablesebenza kwiiglobals ngesi sakhiwo:^global(key) = $lb(prop1, prop2, ..., propN)aphokey- inani elipheleleyo.- kuba
ExecuteGlobal,ExecuteClassиExecuteTableuluhlu lwamaxabiso oluxhaswayo%Dateihambelana noluhlumktimekwaye kuxhomekeke kwi-OS (: 1970-01-01, 1900-01-01, ). Sebenzisa%TimeStampukudlulisa idatha ngaphandle kolu luhlu okanye ukusebenzisa i-pandas dataframe kuba olu luluhlu-kuphela umda. - kuba
ExecuteGlobal,ExecuteClassиExecuteTablezonke iingxoxo ngaphandle komthombo wedatha (ihlabathi, iklasi okanye itafile) kunye notshintsho alukhethi.
U mzekelo
Iklasi yovavanyo iqulethe indlela ebonisa zonke iinketho zogqithiso lwedatha:
set global = "isc.py.test.PersonD"
set class = "isc.py.test.Person"
set table = "isc_py_test.Person"
set query = "SELECT * FROM isc_py_test.Person"
// Общие аргументы
set variable = "df"
set type = "dataframe"
set start = 1
set end = $g(^isc.py.test.PersonD, start)
// Способ 0: ExecuteGlobal без аргументов
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 0, type)
// Способ 1: ExecuteGlobal с аргументами
// При передаче глобала названия полей задаются вручную
// globalKey - название сабсткрипта
set labels = $lb("globalKey", "Name", "DOB", "TS", "RandomTime", "AgeYears", "AgeDecimal", "AgeDouble", "Bool")
// mask содержит на 1 элемент меньше чем labels потому что "globalKey" - название сабскипта
// Пропускаем %%CLASSNAME
set mask = "-+dmt+++b"
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 1, type, start, end, mask, labels)
// Способ 2: ExecuteClass
set sc = ##class(isc.py.Main).ExecuteClass(class, variable _ 2, type, start, end)
// Способ 3: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteTable(table, variable _ 3, type, start, end)
// Способ 4: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteQuery(query, variable _ 4, type)Biza indlela do ##class(isc.py.test.Person).Test() ukubona ukuba zisebenza njani zonke iindlela zokudlulisa idatha.
Iindlela zoNcedisi
GetVariableInfo(variable, serialization, .defined, .type, .length)— fumana ulwazi malunga nokuguquguquka: nokuba kuchaziwe, udidi lwayo kunye nobude bolandelelwano.GetVariableDefined(variable, .defined)— nokuba uguqulo luchaziwe.GetVariableType(variable, .type)- fumana iklasi yenguqu.GetStatus()-fumana kwaye ususe ngaphandle kokugqibela kwicala lePython.GetModuleInfo(module, .imported, .alias)— fumana imodyuli eguquguqukayo kunye nobume bokungenisa elizweni.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)— fumana ulwazi malunga nomsebenzi.
Ukusebenzisana
Ufundile ukubiza iPython Gateway kwi-terminal, ngoku masiqale ukuyisebenzisa kwimveliso. Isiseko sokusebenzisana nePython kule ndlela isc.py.ens.Operation. Iyasivumela:
- Yenza ikhowudi kwiPython
- Gcina/Buyisela umxholo wePython
- Layisha kwaye ufumane idatha evela kwiPython
Ngokusisiseko, ukusebenza kwePython kukusonga ngaphezulu isc.py.Main. Ukusebenza isc.py.ens.Operation inikeza ukukwazi ukusebenzisana nenkqubo yePython evela kwi-InterSystems iimveliso ze-IRIS. Imibuzo emihlanu iyaxhaswa:
isc.py.msg.ExecutionRequestukwenza ikhowudi yePython. Ukubuyiselaisc.py.msg.ExecutionResponsengesiphumo sokwenziwa kunye namaxabiso eenguqu eziceliweyo.isc.py.msg.StreamExecutionRequestukwenza ikhowudi yePython. Ukubuyiselaisc.py.msg.StreamExecutionResponseisiphumo sokwenziwa kunye namaxabiso eenguqu eziceliweyo. I-analogueisc.py.msg.ExecutionRequest, kodwa yamkela kwaye ibuyise imisinga endaweni yemitya.isc.py.msg.QueryRequestukuhambisa isiphumo sokwenza umbuzo weSQL. UkubuyiselaEns.Response.isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequestyokudlulisa idatha yehlabathi/yeklasi/yetafile. UkubuyiselaEns.Response.isc.py.msg.SaveRequestukugcina umxholo wePython. UkubuyiselaEns.StringResponsenge-ID yomxholo.isc.py.msg.RestoreRequestukubuyisela umxholo wePython.Ukongeza,
isc.py.ens.Operationinesetingi ezimbini:Initializer— ukukhetha iklasi esebenzisa ujonganoisc.py.init.Abstract. Ingasetyenziselwa ukulayisha imisebenzi, iimodyuli, iiklasi, njl. Yenziwa kanye xa inkqubo iqala.PythonLib- (iLinux kuphela) ukuba ubona iimpazamo xa ulayisha, misela ixabiso layolibpython3.6m.sookanye nakwindlela epheleleyo eya kwithala leencwadi lePython.
Ukudalwa kweenkqubo zoshishino
Kukho iiklasi ezimbini ezikhoyo eziququzelela uphuhliso lweenkqubo zoshishino:
isc.py.ens.ProcessUtilsikuvumela ukuba ukhuphe amanqakwana kwimisebenzi enotshintsho oluguquguqukayo.isc.py.util.BPEmulatoryenza kube lula ukuvavanya iinkqubo zoshishino ngePython. Inokwenza inkqubo yeshishini (iinxalenye zePython) kwinkqubo yangoku.
Ukutshintsha okuguquguqukayo
Zonke iinkqubo zoshishino ezizuzwe njengelifa isc.py.ens.ProcessUtils, unokusebenzisa indlela GetAnnotation(name) ukufumana ixabiso lenkcazo yomsebenzi ngegama layo. Inkcazo yomsebenzi inokuquka izinto eziguquguqukayo eziza kubalwa kwicala le-InterSystems IRIS ngaphambi kokuba idluliselwe kwiPython. Nantsi i-syntax yokutshintsha okuguquguqukayo:
${class:method:arg1:...:argN}- umnxeba wendlela#{expr}— yenza ikhowudi ngolwimi lwe-ObjectScript.
Umzekelo uyafumaneka kwinkqubo yovavanyo lweshishini isc.py.test.Process, umzekelo, kumsebenzi Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Kulo mzekelo:
#{process.WorkDirectory}ibuyisela iWorkDirectory ipropathi yentoprocess, ngumzekelo weklasiisc.py.test.Processabo. inkqubo yangoku yoshishino.${%PopulateUtils:Integer:1:100}ubiza indlelaIntegerкласса%PopulateUtils, ukudlula iingxoxo1и100, ibuyisela inani elipheleleyo kuluhlu1...100.
Uvavanyo lwenkqubo yeshishini
Iimveliso zovavanyo kunye neenkqubo zoshishino zovavanyo zifumaneka ngokungagqibekanga njengenxalenye yePython Gateway. Ukuzisebenzisa:
- Kwi-terminal ye-OS, sebenzisa:
pip install pandas matplotlib seaborn. - Kwi-InterSystems IRIS terminal, sebenzisa:
do ##class(isc.py.test.CannibalizationData).Import()ukugcwalisa idatha yovavanyo. - Qalisa iimveliso
isc.py.test.Production. - Thumela uhlobo lwesicelo
Ens.Requestвisc.py.test.Process.
Makhe sibone ukuba konke kusebenza njani kunye. Vula isc.py.test.Process kumhleli weBPL:

Ukuphunyezwa kweKhowudi
Owona mceli mngeni ubalulekileyo kukwenza ikhowudi yePython:

Umbuzo osetyenzisiweyo isc.py.msg.ExecutionRequest, Nazi iimpawu zayo:
Code- Ikhowudi yePython.SeparateLines— nokuba uyahlulahlula ikhowudi ibe yilayini ukuze iphunyezwe.$c(10)(n) isetyenziselwa ukwahlula iintambo. Nceda qaphela ukuba AKUKUNIKEzwa kucetyiswa ukuba uqhubekisele phambili umyalezo wonke kanye, lo msebenzi wenzelwe kuphela ukuqhubekekadefkunye nentetho yemigca emininzi efanayo. Ukuhlala kukho0.Variables— uluhlu olwahlulwe ngekoma lweziguquguquko eziya kongezwa kwimpendulo.Serialization— Sizicwangcisa njani iinguqu esifuna ukuzibuyisela. Ukhetho:Str,Repr,JSON,PickleиDill, ehlala ikhoStr.
Kwimeko yethu, sibeka ipropati kuphela Code, ngoko ke zonke ezinye iipropati zisebenzisa amaxabiso angagqibekanga. Siyibeke ngokufowuna process.GetAnnotation("Import pandas"), ethi ngexesha lokuqhuba ibuyisele isichasiselo emva kokutshintshwa okutshintshileyo kwenziwe. Ngapha koko, ikhowudi import pandas as pd iya kudluliselwa kwiPython. GetAnnotation kunokuba luncedo ekufumaneni izikripthi zePython ezinemigca emininzi, kodwa akukho zithintelo kule ndlela yokufumana ikhowudi. Ungacwangcisa ipropathi Code nangayiphi na indlela ekulungeleyo.
Ukufumana iinguqu
Omnye umngeni onomdla wokusebenzisa isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Ibala i-Correlation Matrix kwicala lePython kwaye ikhuphe ukuguquguquka corrmat buyela kwi-InterSystems IRIS kwifomathi ye-JSON ngokucwangcisa iipropati zesicelo:
Variables:"corrmat"Serialization:"JSON"
Sinokuzibona iziphumo kwi-Visual Trace:

Kwaye ukuba sifuna eli xabiso kwiBP, singayifumana ngolu hlobo: callresponse.Variables.GetAt("corrmat").
Ukuhanjiswa kwedatha
Okulandelayo, makhe sithethe ngokugqithisela idatha ukusuka kwi-InterSystems IRIS ukuya kwiPython; zonke izicelo zokudluliselwa kwedatha zisebenzisa ujongano. isc.py.msg.DataRequestebonelela ngezi propati zilandelayo:
Variable— iPython eguquguqukayo apho kubhalwe khona idatha.Type- uhlobo oluguquguqukayo:dataframe(pandas dataframe) okanyelist.Namespace— indawo esifumana kuyo idatha. Ibhegi yeplastikhiisc.pykufuneka ibekhona kule ndawo. Oku kunokuba yindawo ngaphandle kwenkxaso yemveliso.
Ngokusekwe kolu jongano, iiklasi ezi-4 zezicelo ziphunyeziwe:
isc.py.msg.QueryRequest- misela ipropatiQueryukuthumela umbuzo weSQL.isc.py.msg.ClassRequest- misela ipropatiClassukudlulisa idatha yeklasi.isc.py.msg.TableRequest- cwangcisa ipropatiTableukudlulisa idatha yetafile.isc.py.msg.GlobalRequest- cwangcisa ipropatiGlobalkugqithiso lwedatha yehlabathi.
Kwinkqubo yovavanyo, jonga umsebenzi RAWphi isc.py.msg.QueryRequest iboniswe ngesenzo.

Ukugcina / Ukubuyisela Umxholo wePython
Ekugqibeleni, sinokugcina umxholo wePython kwi-InterSystems IRIS, ukwenza oku siya kuthumela isc.py.msg.SaveRequest ngeengxoxo:
Mask— Kuphela ziinguqu ezihambelana nemaski ezigciniweyo. Ixhasiwe*и?. Umzekelo:"Data*, Figure?". Ukuhlala kukho*.MaxLength- Ubude obuninzi benguqu egciniweyo. Ukuba ulandelelwano lwenguquko lude, aluyi kuhoywa. Cwangcisa ku-0 ukufumana iinguqu zabo nabuphi na ubude. Ukuhlala kukho$$$MaxStringLength.Name— Igama lomxholo (uyazikhethela).Description- Inkcazo yomxholo (ukhetho).
Iyabuya Ens.StringResponse с Id umxholo ogciniweyo. Kwinkqubo yovavanyo, jonga umsebenzi Save Context.
Isicelo esinxulumeneyo isc.py.msg.RestoreRequest ilayisha umxholo ukusuka kwi-InterSystems IRIS kwiPython:
ContextId- into ebonisa umxholo.Clear- cima umxholo ngaphambi kokubuyisela.
Incwadana yokubhalela kaJupyter
sisicelo sewebhu esivulelekileyo esikuvumela ukuba wenze kwaye upapashe iincwadi zamanqaku ezinekhowudi, imiboniso, kunye nokubhaliweyo. I-Python Gateway ikuvumela ukuba ujonge kwaye uhlele iinkqubo ze-BPL ngendlela yeJupyter Notebook. Nceda uqaphele ukuba i-Python 3 eexecutor eqhelekileyo isetyenziswa ngoku.
Olu lwandiso luthatha ukuba amanqakwana anekhowudi yePython kwaye isebenzisa amagama omsebenzi njengezihloko ezandulelayo. Ngoku kunokwenzeka ukuphuhlisa iinkqubo zoshishino zePythonGateway kwiJupyter Notebook. Nantsi into enokwenzeka:
- Yenza iinkqubo ezintsha zoshishino
- Cima iinkqubo zoshishino
- Yenza imisebenzi emitsha
- Guqula imisebenzi
- Cima imisebenzi
Apha . Kwaye iifoto-skrini ezimbalwa:
Inkqubo yoMhloli

Umhleli wenkqubo

isicwangciso
- Uya kufuna i-InterSystems IRIS 2019.2+.
- Faka iPythonGateway v0.8+ (ifuneka kuphela
isc.py.util.Jupyter,isc.py.util.JupyterCheckpointsиisc.py.ens.ProcessUtils). - Hlaziya ikhowudi ye-ObjectScript kwindawo yokugcina.
- Baleka
do ##class(isc.py.util.Jupyter).Install()kwaye ulandele imiyalelo.
.
ezifunyanisiweyo
I-MLToolkit yiseti yezixhobo ezinjongo yazo ikukudibanisa imodeli kunye nemeko yentengiselwano ukuze iimodeli ezakhiweyo zisetyenziswe ngokulula kwiinkqubo zakho zoshishino. I-Python Gateway yinxalenye yeMLToolkit kwaye ibonelela ngokudityaniswa nolwimi lwePython, ikuvumela ukuba ulungelelanise naziphi na iialgorithms zokufunda zoomatshini ezenziwe kwiPython (eyona ndawo iphambili yeeNzululwazi ezininzi zeData), sebenzisa amathala eencwadi amaninzi esele yenziwe ukwenza ngokukhawuleza uhlengahlengiso, uhlalutyo lwerobhothi AI / Izisombululo zeML kwi-InterSystems iqonga IRIS.
iimbekiselo
MLToolkit
Iqela labasebenzisi beMLToolkit yindawo yokugcina yeGitHub eyenziwe njengenxalenye yombutho we-InterSystems weGitHub. Yenzelwe abasebenzisi bangaphandle abafakela, bafunde, okanye sele besebenzisa amacandelo eMLToolkit, kuquka nePython Gateway. Iqela linamatyala amaninzi aphunyeziweyo (kunye nekhowudi yomthombo kunye neenkcukacha zokuvavanya) kwiinkalo zokuthengisa, ukuvelisa, amayeza kunye namanye amashishini amaninzi. Ukujoyina iQela labasebenzisi be-ML Toolkit, nceda uthumele i-imeyile emfutshane kule dilesi ilandelayo: kwaye uquke olu lwazi lulandelayo kwileta yakho:
- Igama lomsebenzisi leGitHub
- Umbutho (usebenza okanye ufunda)
- Isikhundla (indawo yakho yokwenyani kumbutho wakho, nokuba "nguMfundi" okanye "oZimeleyo").
- ilizwe
Kwabo bafunde inqaku kwaye banomdla kwizakhono ze-InterSystems IRIS njengeqonga lokuphuhlisa okanye lokubamba ubukrelekrele bokwenziwa kunye neenjini zokufunda koomatshini, siyakumema ukuba uxoxe ngeemeko ezinokwenzeka ezinomdla kwishishini lakho. Siya konwaba ukuhlalutya iimfuno zenkampani yakho kwaye sigqibe ngokudibeneyo isicwangciso somsebenzi; Idilesi ye-imeyile ye-AI/ML yeqela lethu leengcaphephe- .
umthombo: www.habr.com
