Nakala hii inahusu Python Gateway, mradi wa jamii wa chanzo huria kwa jukwaa la data la InterSystems IRIS. Mradi huu hukuruhusu kupanga algorithms zozote za ujifunzaji za mashine iliyoundwa katika Python (mazingira makuu ya Wanasayansi wengi wa Data), tumia maktaba nyingi zilizotengenezwa tayari kuunda haraka masuluhisho ya AI / ML yanayoweza kubadilika, ya kirobotiki kwenye jukwaa la InterSystems IRIS. Katika makala hii, nitaonyesha jinsi InterSystems IRIS inaweza kuandaa michakato katika Python, kuwasiliana kwa ufanisi data ya njia mbili, na kuunda michakato ya biashara ya akili.
Mpango
- Utangulizi.
- Zana.
- Ufungaji
- API.
- Kushirikiana.
- Daftari ya Jupyter.
- Hitimisho.
- Viungo.
- MLToolkit.
Utangulizi
Python ni lugha ya programu ya kiwango cha juu, yenye madhumuni ya jumla inayolenga kuboresha tija ya wasanidi programu na usomaji wa msimbo. Katika safu hii ya vifungu, nitajadili uwezekano wa kutumia Python kwenye jukwaa la InterSystems IRIS, lengo kuu la nakala hii likiwa ni matumizi ya Python kama lugha ya kuunda na kuendesha mifano ya kujifunza mashine.
Kujifunza kwa mashine (ML) ni darasa la mbinu za akili za bandia, kipengele cha tabia ambacho sio suluhisho la moja kwa moja la tatizo, lakini kujifunza katika mchakato wa kutatua matatizo mengi sawa.
Kanuni za ujifunzaji wa mashine na miundo inazidi kuwa ya kawaida. Kuna sababu nyingi za hili, lakini yote inakuja kwa upatikanaji, unyenyekevu na kufikia matokeo ya vitendo. Kuunganisha au hata mtandao wa neva ni teknolojia mpya?
Bila shaka sivyo, lakini siku hizi hakuna haja ya kuandika mamia ya maelfu ya mistari ya kanuni ili kuendesha mfano mmoja, na gharama ya kuunda na kutumia mifano inakuwa kidogo na kidogo.
Zana zinabadilika - wakati hatuna zana kamili za AI/ML za GUI-centric, maendeleo ambayo tumeona na aina zingine nyingi za mifumo ya habari, kama vile BI (kutoka kwa nambari ya uandishi hadi kutumia mifumo na suluhisho zinazoweza kusanidi za GUI) pia inazingatiwa katika zana za kuunda AI/ML. Tayari tumepitisha hatua ya kuandika msimbo na leo tunatumia mifumo kujenga na kutoa mafunzo kwa mifano.
Maboresho mengine, kama vile uwezo wa kusambaza muundo uliofunzwa mapema ambapo mtumiaji wa mwisho lazima amalize tu kufundisha muundo kwenye data yake mahususi, pia hurahisisha kuanza na kujifunza kwa mashine. Maendeleo haya hurahisisha ujifunzaji wa mashine ya kujifunza kwa wataalamu na makampuni kwa ujumla.
Kwa upande mwingine, tunakusanya data zaidi na zaidi. Kwa jukwaa la data lililounganishwa kama InterSystems IRIS, maelezo haya yote yanaweza kutayarishwa mara moja na kutumika kama ingizo kwa miundo ya kujifunza kwa mashine.
Kwa kuhamia kwenye wingu, kuzindua miradi ya AI/ML inakuwa rahisi zaidi kuliko hapo awali. Tunaweza tu kutumia rasilimali tunazohitaji. Zaidi ya hayo, kutokana na ulinganifu unaotolewa na majukwaa ya wingu, tunaweza kuokoa muda uliotumika.
Lakini vipi kuhusu matokeo? Hapa ndipo mambo yanakuwa magumu zaidi. Kuna zana nyingi za kujenga mifano, ambayo nitazungumzia ijayo. Kujenga mfano mzuri si rahisi, lakini nini baadaye? Kupata faida kwa kutumia mtindo wa biashara pia ni kazi isiyo ya kawaida. Mzizi wa tatizo ni mgawanyo wa mizigo ya kazi ya uchambuzi na shughuli, na mifano ya data. Tunapofundisha mfano, kwa kawaida tunafanya kwenye data ya kihistoria. Lakini mahali pa muundo uliojengwa ni katika usindikaji wa data ya shughuli. Je, mtindo bora zaidi wa kugundua miamala ya ulaghai una manufaa gani ikiwa tutauendesha mara moja kwa siku? Walaghai hao wameondoka na pesa kwa muda mrefu. Tunahitaji kutoa mafunzo kwa kielelezo kuhusu data ya kihistoria, lakini pia tunahitaji kuitumia kwa wakati halisi kwenye data mpya inayoingia ili michakato yetu ya biashara iweze kuchukua hatua kulingana na ubashiri uliotolewa na muundo huo.
ML Toolkit ni seti ya zana ambayo inalenga kufanya hivyo tu: kuunganisha miundo na mazingira ya shughuli ili miundo iliyojengwa itumike kwa urahisi moja kwa moja katika michakato ya biashara yako. Python Gateway ni sehemu ya ML Toolkit na hutoa ushirikiano na lugha ya Python (sawa na jinsi R Gateway, kuwa sehemu ya ML Toolkit hutoa ushirikiano na lugha ya R).
Chombo
Kabla hatujaendelea, ningependa kuelezea zana na maktaba chache za Python ambazo tutatumia baadaye.
Teknolojia
- Python ni lugha ya programu iliyotafsiriwa, ya hali ya juu, yenye madhumuni ya jumla. Faida kuu ya lugha ni maktaba yake kubwa ya maktaba za hisabati, ML na AI. Kama ObjectScript, ni lugha inayoelekezwa kwa kitu, lakini kila kitu kinafafanuliwa kwa nguvu badala ya kitakwimu. Pia kila kitu ni kitu. Makala ya baadaye huchukua ujuzi wa kupita kiasi na lugha. Ikiwa unataka kuanza kujifunza, napendekeza kuanza na .
- Kwa mazoezi yetu ya baadaye, weka .
- IDE: Ninatumia , lakini kwa ujumla wao . Ikiwa unatumia Atelier, kuna programu-jalizi ya Eclipse ya watengenezaji wa Python. Ikiwa unatumia Msimbo wa VS, kuna kiendelezi cha Python.
- Daftari: Badala ya IDE, unaweza kuandika na kushiriki hati zako kwenye daftari za mtandaoni. Maarufu zaidi kati yao ni .
Maktaba
Hapa kuna orodha (isiyo kamili) ya maktaba za kujifunza mashine:
- - kifurushi cha msingi kwa mahesabu sahihi.
- - miundo ya data ya utendaji wa juu na zana za uchambuzi wa data.
- - uundaji wa grafu.
- - taswira ya data kulingana na matplotlib.
- - njia za kujifunza mashine.
- - algoriti za kujifunza kwa mashine ndani ya mfumo wa mbinu ya kukuza gradient.
- - NLP.
- - mitandao ya neva.
- - jukwaa la kuunda mifano ya kujifunza kwa mashine.
- ni jukwaa la kuunda miundo ya kujifunza kwa mashine, inayolenga Python.
- - PMML kutoka kwa mifano mbalimbali.
Teknolojia za AI/ML hufanya biashara kuwa bora zaidi na inayoweza kubadilika. Aidha, leo teknolojia hizi zinakuwa rahisi kuendeleza na kutekeleza. Anza kujifunza kuhusu teknolojia za AI/ML na jinsi zinavyoweza kusaidia shirika lako kukua.
Ufungaji
Kuna njia kadhaa za kufunga na kutumia Python Gateway:
- ОС
- Windows
- Linux
- Mac
- Docker
- Tumia picha kutoka DockerHub
- Unda mwonekano wako mwenyewe
Bila kujali njia ya usakinishaji, utahitaji msimbo wa chanzo. Mahali pekee pa kupakua msimbo ni . Ina matoleo thabiti yaliyojaribiwa, chukua ya hivi punde zaidi. Kwa sasa ni 0.8, lakini baada ya muda kutakuwa na mpya. Usipange/kupakua hazina, pakua toleo jipya zaidi.
ОС
Ikiwa unaweka Python Gateway kwenye mfumo wa uendeshaji, basi kwanza (bila kujali mfumo wa uendeshaji) unahitaji kufunga Python. Kwa hii; kwa hili:
- . Inapendekezwa kusakinisha Python kwenye saraka ya chaguo-msingi.
- Sakinisha moduli
dill:pip install dill. - Pakua msimbo wa ObjectScript (yaani.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) kwa eneo lolote lenye bidhaa. Iwapo unataka eneo lililopo kusaidia bidhaa, endesha:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1). - Mahali kwa folda
binmfano wako wa InterSystems IRIS. Faili ya maktaba lazima ipatikane katika njia iliyorejeshwawrite ##class(isc.py.Callout).GetLib().
Windows
- Hakikisha kutofautiana kwa mazingira
PYTHONHOMEpointi kwa Python 3.6.7. - Hakikisha kutofautisha kwa mazingira ya mfumo ni
PATHina kutofautianaPYTHONHOME(au saraka inayoelekeza).
Linux (Debian/Ubuntu)
- Angalia kuwa kutofautisha kwa mazingira ni
PATHina/usr/libи/usr/lib/x86_64-linux-gnu. Tumia faili/etc/environmentkuweka vigezo vya mazingira. - Katika kesi ya makosa
undefined symbol: _Py_TrueStructweka mpangilioPythonLib. pia katika kuna sehemu ya Utatuzi.
Mac
- Hivi sasa ni Python 3.6.7 pekee ndiyo inayotumika . Angalia kutofautiana
PATH.
Ikiwa ulibadilisha anuwai za mazingira, anzisha tena bidhaa yako ya InterSystems.
Docker
Kutumia vyombo kuna faida kadhaa:
- Kubebeka
- Ufanisi
- Insulation
- Wepesi
- Kutobadilika
Angalia hii kwa habari zaidi kuhusu kutumia Docker na bidhaa za InterSystems.
Ujenzi wote wa Python Gateway kwa sasa ni msingi wa chombo 2019.4.
Picha tayari
Endesha: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestkupakua na kuendesha Python Gateway na Toleo la Jumuiya ya InterSystems IRIS. Ni hayo tu.
Unda mwonekano wako mwenyewe
Ili kuunda picha ya kizimbani, endesha kwenye mzizi wa hazina: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Kwa chaguo-msingi, picha imejengwa kulingana na picha store/intersystems/iris-community:2019.4.0.383.0, hata hivyo unaweza kubadilisha hii kwa kuweka variable IMAGE.
Ili kuunda kutoka kwa InterSystems IRIS, endesha: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest ".
Baada ya hii unaweza kuendesha picha ya docker:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.keyIkiwa unatumia picha kulingana na Toleo la Jumuiya ya InterSystems IRIS, unaweza kuacha ufunguo.
Maoni
- Mchakato wa mtihani
isc.py.test.Processhuhifadhi idadi ya picha kwenye saraka ya muda. Unaweza kutaka kubadilisha njia hii kwa saraka iliyowekwa. Ili kufanya hivyo, hariri mpangilioWorkingDirkubainisha saraka iliyowekwa. - Ili kufikia terminal kukimbia:
docker exec -it irispy sh. - Ufikiaji wa Tovuti ya Usimamizi wa Mfumo kwa kuingia
SuperUser/SYS. - Ili kusimamisha chombo, endesha:
docker stop irispy && docker rm --force irispy.
Inathibitisha usakinishaji
Mara tu umesakinisha Python Gateway, inafaa kuangalia ikiwa inafanya kazi. Tekeleza nambari hii katika terminal ya IRIS ya InterSystems:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write varMatokeo yake yanapaswa kuwa: HELLO - Thamani ya kutofautisha ya Python x. Ikiwa hali ya kurudi sc ni kosa au var tupu, angalia .
API
Python Gateway imewekwa na umethibitisha kuwa inafanya kazi. Ni wakati wa kuanza kuitumia!
Kiolesura kuu cha Python ni isc.py.Main. Inatoa vikundi vifuatavyo vya njia (zote zinarudi %Status):
- Utekelezaji wa Kanuni
- Uhamisho wa data
- Msaidizi
Utekelezaji wa Kanuni
Njia hizi hukuruhusu kutekeleza nambari ya Python ya kiholela.
SimpleString
SimpleString - hii ndiyo njia kuu. Inachukua hoja 4 za hiari:
code- mstari wa msimbo wa kutekeleza. Mstari wa mlisho wa herufi:$c(10).returnVariable- jina la kigezo cha kurudi.serialization- jinsi ya kusasishareturnVariable. 0 - kamba (chaguo-msingi), 1 - repr.result- Rejea ya ByRef ya kutofautisha ambayo thamani imeandikwareturnVariable.
Hapo juu tulifanya:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).Katika mfano huu, tunapeana tofauti ya Python x thamani Hello na unataka kurudisha thamani ya utofauti wa Python x kwa utofauti wa ObjectScript var.
TekelezaMsimbo
ExecuteCode ni mbadala salama na isiyo na vizuizi SimpleString.
Mistari katika jukwaa la InterSystems IRIS ina vibambo 3 pekee, na ikiwa ungependa kutekeleza kipande kirefu cha msimbo, unahitaji kutumia nyuzi.
Hoja mbili zinakubaliwa:
code- mstari au mkondo wa nambari ya Python kutekelezwa.variable- (hiari) inapeana matokeo ya utekelezajicodetofauti hii ya Python.
Mfano wa kutumia:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").Katika mfano huu, tunazidisha 2 kwa 3 na kuandika matokeo kwa kutofautiana kwa Python y.
Uhamisho wa data
Pitisha data kwenda na kutoka Python.
Python -> InterSystems IRIS
Kuna njia 4 za kupata thamani ya utofauti wa Python katika InterSystems IRIS, kulingana na usanifu unaohitaji:
Stringkwa aina rahisi za data na utatuzi.Reprkwa kuhifadhi vitu rahisi na utatuzi.JSONkwa udanganyifu rahisi wa data kwenye upande wa InterSystems IRIS.Picklekuokoa vitu.
Njia hizi hukuruhusu kupata vijiti kutoka kwa Python kama kamba au mitiririko.
GetVariable(variable, serialization, .stream, useString)-pataserializationkutofautianavariableвstream. IkiwauseStringni 1 na usanifu huwekwa kwenye kamba, kisha kamba inarudishwa na sio mkondo.GetVariableJson(variable, .stream, useString)- pata usanifu wa JSON wa kutofautisha.GetVariablePickle(variable, .stream, useString, useDill)-pata kachumbari (au Dill) usanifu wa kibadilika.
Hebu jaribu kupata variable yetu y.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6InterSystems IRIS -> Python
Inapakia data kutoka kwa InterSystems IRIS hadi Python.
ExecuteQuery(query, variable, type, namespace)- huunda seti ya data (pandasdataframeaulist) kutoka kwa hoja ya sql na kuiweka kwa tofauti ya Pythonvariable. Mfuko wa plastikiisc.pylazima ipatikane katika eneo hilonamespace- ombi litatekelezwa hapo.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)- hupakia data ya kimataifaglobalkutoka kwa usajilistartkwaendkatika Python kama aina ya kutofautishatype:list, au pandadataframe. Maelezo ya hoja za hiarimasknalabelsinapatikana katika nyaraka za darasa na hazina .ExecuteClass(class, variable, type, start, end, properties, namespace)- hupakia data ya darasaclasskutoka kwa kitambulishostartkwaendkatika Python kama aina ya kutofautishatype:list, au pandadataframe.properties— orodha (iliyotenganishwa na koma) ya sifa za darasa zinazohitaji kupakiwa kwenye seti ya data. Masks inaungwa mkono*и?. Chaguomsingi -*(mali zote). Mali%%CLASSNAMEkupuuzwa.ExecuteTable(table, variable, type, start, end, properties, namespace)- hupakia data ya mezatablekutoka kwa kitambulishostartkwaendkatika Python.
ExecuteQuery - zima (swala lolote sahihi la SQL litapitishwa kwa Python). Hata hivyo, ExecuteGlobal na kanga zake ExecuteClass и ExecuteTable kazi na idadi ya vikwazo. Wana kasi zaidi (mara 3-5 zaidi kuliko dereva wa ODBC na mara 20 kwa kasi zaidi ExecuteQuery) Taarifa zaidi kwa .
Njia hizi zote zinasaidia uhamishaji wa data kutoka eneo lolote. Mfuko wa plastiki isc.py lazima ipatikane katika eneo linalolengwa.
TekelezaQuery
ExecuteQuery(request, variable, type, namespace) - kuhamisha matokeo ya swali lolote sahihi la SQL kwa Python. Hii ndiyo njia ya polepole zaidi ya kuhamisha data. Itumie kama ExecuteGlobal na kanga zake hazipatikani.
Hoja:
query- swali la sql.variable- jina la tofauti ya Python ambayo data imeandikwa.type-listau pandadataframe.namespace- eneo ambalo ombi litatekelezwa.
TekelezaGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - kupita kimataifa katika Python.
Hoja:
global- jina la kimataifa bila^variable- jina la tofauti ya Python ambayo data imeandikwa.type-listau pandadataframe.start- usajili wa kwanza wa ulimwengu. Lazima%Integer.end- usajili wa mwisho wa ulimwengu. Lazima%Integer.mask- barakoa ya thamani ya kimataifa. Mask inaweza kuwa fupi kuliko idadi ya sehemu katika ulimwengu (katika hali ambayo sehemu za mwisho zitarukwa). Jinsi ya kuunda mask:+kupitisha thamani kama ilivyo.-ruka thamani.b- Aina ya Boolean (0-False, wengine wote -True).d— Tarehe (kutoka $horolog, tarehe Windows kuanzia 1970, tarehe Linux kuanzia 1900).t- Muda ($horologi, sekunde baada ya saa sita usiku).m— Muhuri wa saa (mfuatano wa mfuatano wa YEAR-MONTH-DAY HOUR:MINUTE:SECOND).
labels— %Orodha ya majina ya safu wima. Kipengele cha kwanza ni jina la usajili.namespace- eneo ambalo ombi litatekelezwa.
TekelezaClass
Funga juu ExecuteGlobal. Kulingana na ufafanuzi wa darasa, huandaa simu ExecuteGlobal na kumwita.
ExecuteClass(class, variable, type, start, end, properties, namespace) - kupitisha data ya darasa katika Python.
Hoja:
class- jina la darasavariable- jina la tofauti ya Python ambayo data imeandikwa.type-listau pandadataframe.start- Kitambulisho cha kuanzia.end- Kitambulisho cha mwishoproperties— orodha (iliyotenganishwa na koma) ya sifa za darasa zinazohitaji kupakiwa kwenye seti ya data. Masks inaungwa mkono*и?. Chaguomsingi -*(mali zote). Mali%%CLASSNAMEkupuuzwa.namespace- eneo ambalo ombi litatekelezwa.
Mali yote hupitishwa kama ilivyo isipokuwa mali ya aina %Date, %Time, %Boolean и %TimeStamp - zinabadilishwa kuwa madarasa yanayolingana ya Python.
Jedwali la kutekeleza
Funga juu ExecuteClass. Hutafsiri jina la jedwali katika jina la darasa na simu ExecuteClass. Sahihi:
ExecuteTable(table, variable, type, start, end, properties, namespace) - kupitisha data ya jedwali kwa Python.
Hoja:
table- jina la meza.
Hoja zingine zote hupitishwa kama ilivyoExecuteClass.
Vidokezo
ExecuteGlobal,ExecuteClassиExecuteTablekazi kwa kasi sawa.ExecuteGlobalMara 20 haraka kulikoExecuteQuerykwenye seti kubwa za data (muda wa uhamisho > sekunde 0.01).ExecuteGlobal,ExecuteClassиExecuteTablefanya kazi kwenye ulimwengu na muundo huu:^global(key) = $lb(prop1, prop2, ..., propN)ambapokey- nambari kamili.- Kwa
ExecuteGlobal,ExecuteClassиExecuteTableanuwai ya maadili inayotumika%Dateinalingana na anuwaimktimena inategemea OS (: 1970-01-01, 1900-01-01, ) Tumia%TimeStampkuhamisha data nje ya safu hii au kutumia mfumo wa data wa pandas kwa sababu hiki ni kizuizi cha orodha pekee. - Kwa
ExecuteGlobal,ExecuteClassиExecuteTablehoja zote isipokuwa chanzo cha data (kimataifa, darasa au jedwali) na utofauti ni wa hiari.
mifano
Darasa la mtihani ina njia inayoonyesha chaguzi zote za uhamishaji data:
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)Piga njia do ##class(isc.py.test.Person).Test() kuona jinsi njia zote za kuhamisha data zinavyofanya kazi.
Mbinu za Msaidizi
GetVariableInfo(variable, serialization, .defined, .type, .length)— pata habari kuhusu kutofautisha: iwe imefafanuliwa, darasa lake na urefu wa kuratibu.GetVariableDefined(variable, .defined)- ikiwa kutofautisha kunafafanuliwa.GetVariableType(variable, .type)- pata darasa la kutofautisha.GetStatus()- pata na uondoe ubaguzi wa mwisho kwa upande wa Python.GetModuleInfo(module, .imported, .alias)— pata utofauti wa moduli na hali ya kuingiza.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)- pata habari kuhusu kitendakazi.
Kushirikiana
Umejifunza jinsi ya kupiga Python Gateway kutoka kwa terminal, sasa wacha tuanze kuitumia katika uzalishaji. Msingi wa kuingiliana na Python katika hali hii ni isc.py.ens.Operation. Inaturuhusu:
- Tekeleza nambari kwenye Python
- Hifadhi / Rejesha muktadha wa Python
- Pakia na upokee data kutoka kwa Python
Kimsingi, operesheni ya Python ni kifuniko isc.py.Main. Operesheni isc.py.ens.Operation hutoa uwezo wa kuingiliana na mchakato wa Python kutoka kwa bidhaa za InterSystems IRIS. Maswali matano yanaungwa mkono:
isc.py.msg.ExecutionRequestkutekeleza nambari ya Python. Inarudiisc.py.msg.ExecutionResponsena matokeo ya utekelezaji na maadili ya vigezo vilivyoombwa.isc.py.msg.StreamExecutionRequestkutekeleza nambari ya Python. Inarudiisc.py.msg.StreamExecutionResponsematokeo ya utekelezaji na maadili ya vigezo vilivyoombwa. Analogiisc.py.msg.ExecutionRequest, lakini inakubali na kurudisha mitiririko badala ya mifuatano.isc.py.msg.QueryRequestkusambaza matokeo ya kutekeleza swala la SQL. InarudiEns.Response.isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequestkwa kupitisha data ya kimataifa/ya darasa/meza. InarudiEns.Response.isc.py.msg.SaveRequestkuokoa muktadha wa Python. InarudiEns.StringResponseyenye kitambulisho cha muktadha.isc.py.msg.RestoreRequestkurejesha muktadha wa Python.Aidha,
isc.py.ens.Operationina mipangilio miwili:Initializer— kuchagua darasa linalotumia kiolesuraisc.py.init.Abstract. Inaweza kutumika kupakia kazi, modules, madarasa, nk. Inatekelezwa mara moja mchakato unapoanza.PythonLib— (kwa ajili ya Linux) ukiona hitilafu wakati wa kupakia, weka thamani yake kuwalibpython3.6m.soau hata katika njia kamili ya maktaba ya Python.
Uundaji wa michakato ya biashara
Kuna madarasa mawili yanayopatikana ambayo yanawezesha maendeleo ya michakato ya biashara:
isc.py.ens.ProcessUtilshukuruhusu kutoa vidokezo kutoka kwa shughuli na ubadilishanaji tofauti.isc.py.util.BPEmulatorinafanya iwe rahisi kujaribu michakato ya biashara na Python. Inaweza kutekeleza mchakato wa biashara (sehemu za Python) katika mchakato wa sasa.
Ubadilishaji Unaobadilika
Michakato yote ya biashara iliyorithiwa kutoka isc.py.ens.ProcessUtils, inaweza kutumia njia GetAnnotation(name) kupata thamani ya maelezo ya shughuli kwa jina lake. Ufafanuzi wa shughuli unaweza kuwa na vigeuzo ambavyo vitahesabiwa kwa upande wa InterSystems IRIS kabla ya kupitishwa kwa Python. Hapa kuna syntax ya uingizwaji tofauti:
${class:method:arg1:...:argN}- njia ya kupiga simu#{expr}— Tekeleza msimbo katika lugha ya ObjectScript.
Mfano unapatikana katika mchakato wa biashara ya majaribio isc.py.test.Process, kwa mfano, katika shughuli Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Katika mfano huu:
#{process.WorkDirectory}inarudisha mali ya WorkDirectory ya kituprocess, ambayo ni mfano wa darasaisc.py.test.Processhizo. mchakato wa sasa wa biashara.${%PopulateUtils:Integer:1:100}wito mbinuIntegertabaka la%PopulateUtils, kupitisha hoja1и100, kurudisha nambari kamili isiyo ya kawaida katika safu1...100.
Mtihani wa mchakato wa biashara
Bidhaa za majaribio na michakato ya biashara ya majaribio zinapatikana kwa chaguomsingi kama sehemu ya Lango la Python. Ili kuzitumia:
- Kwenye terminal ya OS, endesha:
pip install pandas matplotlib seaborn. - Katika terminal ya InterSystems IRIS, endesha:
do ##class(isc.py.test.CannibalizationData).Import()kujaza data ya mtihani. - Kuzindua bidhaa
isc.py.test.Production. - Tuma aina ya ombi
Ens.Requestвisc.py.test.Process.
Wacha tuone jinsi yote yanavyofanya kazi pamoja. Fungua isc.py.test.Process katika mhariri wa BPL:

Utekelezaji wa Kanuni
Changamoto muhimu zaidi ni kutekeleza nambari ya Python:

Hoja imetumika isc.py.msg.ExecutionRequest, hizi ni sifa zake:
Code- Nambari ya Python.SeparateLines- kama kugawanya msimbo katika mistari kwa ajili ya utekelezaji.$c(10)(n) hutumika kutenganisha mifuatano. Tafadhali kumbuka kuwa haipendekezwi kuchakata ujumbe mzima mara moja, kipengele hiki cha kukokotoa kimekusudiwa tu kuchakatadefna usemi wa mistari mingi sawa. Chaguomsingi0.Variables- orodha iliyotenganishwa kwa koma ya vigeu ambavyo vitaongezwa kwa jibu.Serialization- Jinsi ya kusasisha vigezo ambavyo tunataka kurudisha. Chaguo:Str,Repr,JSON,PickleиDill, chaguo-msingiStr.
Kwa upande wetu, tunaweka tu mali Code, kwa hivyo mali zingine zote hutumia maadili chaguo-msingi. Tunaiweka kwa kupiga simu process.GetAnnotation("Import pandas"), ambayo wakati wa utekelezaji hurejesha kidokezo baada ya uwekaji mbadala kufanywa. Baada ya yote, kanuni import pandas as pd itapitishwa kwa Python. GetAnnotation inaweza kuwa muhimu kwa kupata hati za Python za safu nyingi, lakini hakuna vizuizi kwa njia hii ya kupata nambari. Unaweza kuweka mali Code kwa njia yoyote inayofaa kwako.
Kupata Vigezo
Changamoto nyingine ya kuvutia kutumia isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Huhesabu Matrix ya Uunganisho kwenye upande wa Python na kutoa utofauti corrmat rudi kwa InterSystems IRIS katika umbizo la JSON kwa kuweka mali ya ombi:
Variables:"corrmat"Serialization:"JSON"
Tunaweza kuona matokeo katika Visual Trace:

Na ikiwa tunahitaji thamani hii katika BP, tunaweza kuipata kama hii: callresponse.Variables.GetAt("corrmat").
Uhamisho wa data
Ifuatayo, wacha tuzungumze juu ya kuhamisha data kutoka kwa InterSystems IRIS hadi Python; maombi yote ya uhamishaji wa data yanatekeleza kiolesura. isc.py.msg.DataRequestambayo hutoa sifa zifuatazo:
Variable- Tofauti ya Python ambayo data imeandikwa.Type- aina tofauti:dataframe(pandas dataframe) aulist.Namespace- eneo ambalo tunapokea data. Mfuko wa plastikiisc.pyinapaswa kupatikana katika eneo hili. Hii inaweza kuwa eneo lisilo na usaidizi wa bidhaa.
Kulingana na kiolesura hiki, madarasa 4 ya maombi yanatekelezwa:
isc.py.msg.QueryRequest- kuweka maliQuerykutuma swali la SQL.isc.py.msg.ClassRequest- kuweka maliClasskupitisha data ya darasa.isc.py.msg.TableRequest- kuweka maliTablekuhamisha data ya meza.isc.py.msg.GlobalRequest- kuweka maliGlobalkwa uhamishaji wa data wa kimataifa.
Katika mchakato wa mtihani, angalia shughuli RAWAmbapo isc.py.msg.QueryRequest inavyoonyeshwa kwa vitendo.

Kuokoa / Kurejesha Muktadha wa Python
Mwishowe, tunaweza kuhifadhi muktadha wa Python katika InterSystems IRIS, kufanya hivi tutatuma isc.py.msg.SaveRequest na hoja:
Mask— Vigezo vinavyolingana na kinyago pekee ndivyo vinavyohifadhiwa. Imeungwa mkono*и?. Mfano:"Data*, Figure?"... Chaguomsingi*.MaxLength- Urefu wa juu wa kibadilishaji kilichohifadhiwa. Ikiwa utayarishaji wa kigezo ni mrefu, utapuuzwa. Weka hadi 0 ili kupata vigeuzo vya urefu wowote. Chaguomsingi$$$MaxStringLength.Name- Jina la muktadha (hiari).Description- Maelezo ya muktadha (hiari).
Anarudi Ens.StringResponse с Id muktadha uliohifadhiwa. Katika mchakato wa mtihani, angalia shughuli Save Context.
Ombi linalohusiana isc.py.msg.RestoreRequest hupakia muktadha kutoka kwa InterSystems IRIS hadi Python:
ContextId- kitambulisho cha muktadha.Clear- futa muktadha kabla ya kurejesha.
Jupyter Daftari
ni programu huria ya wavuti inayokuruhusu kuunda na kuchapisha madaftari yenye msimbo, taswira na maandishi. Python Gateway hukuruhusu kutazama na kuhariri michakato ya BPL katika mfumo wa Daftari la Jupyter. Tafadhali kumbuka kuwa mtekelezaji wa kawaida wa Python 3 anatumika kwa sasa.
Kiendelezi hiki kinachukulia kuwa vidokezo vina msimbo wa Python na hutumia majina ya shughuli kama mada yaliyotangulia. Sasa inawezekana kuendeleza michakato ya biashara ya PythonGateway katika Jupyter Notebook. Hapa kuna kinachowezekana:
- Unda michakato mpya ya biashara
- Futa michakato ya biashara
- Unda shughuli mpya
- Badilisha shughuli
- Futa shughuli
Hapa . Na viwambo vichache:
Mchakato wa Kuchunguza

Mhariri wa mchakato

Ufungaji
- Utahitaji InterSystems IRIS 2019.2+.
- Sakinisha PythonGateway v0.8+ (inahitajika tu
isc.py.util.Jupyter,isc.py.util.JupyterCheckpointsиisc.py.ens.ProcessUtils). - Sasisha nambari ya ObjectScript kutoka kwa hazina.
- Tekeleza
do ##class(isc.py.util.Jupyter).Install()na kufuata mawaidha.
.
Matokeo
MLToolkit ni seti ya zana ambazo lengo lake ni kuchanganya miundo na mazingira ya shughuli ili miundo iliyojengwa itumike kwa urahisi moja kwa moja katika michakato ya biashara yako. Python Gateway ni sehemu ya MLToolkit na hutoa ushirikiano na lugha ya Python, huku kuruhusu kupanga algorithms yoyote ya kujifunza mashine iliyoundwa katika Python (mazingira kuu ya Wanasayansi wengi wa Data), tumia maktaba nyingi zilizotengenezwa tayari kuunda haraka AI ya uchambuzi, ya robotic / Suluhu za ML kwenye jukwaa la InterSystems IRIS.
marejeo
MLToolkit
Kikundi cha watumiaji wa MLToolkit ni hazina ya kibinafsi ya GitHub iliyoundwa kama sehemu ya shirika la GitHub la shirika la InterSystems. Inakusudiwa watumiaji wa nje wanaosakinisha, kujifunza, au tayari kutumia vijenzi vya MLToolkit, ikiwa ni pamoja na Lango la Python. Kikundi kina idadi ya kesi zilizotekelezwa (na nambari ya chanzo na data ya majaribio) katika nyanja za uuzaji, utengenezaji, dawa na tasnia zingine nyingi. Ili kujiunga na Kikundi cha Watumiaji cha ML Toolkit, tafadhali tuma barua pepe fupi kwa anwani ifuatayo: na ujumuishe taarifa ifuatayo katika barua yako:
- Jina la mtumiaji la GitHub
- Shirika (unafanya kazi au kusoma)
- Nafasi (nafasi yako halisi katika shirika lako, ama "Mwanafunzi" au "Kujitegemea").
- Nchi
Kwa wale ambao wamesoma nakala na wanavutiwa na uwezo wa InterSystems IRIS kama jukwaa la kukuza au kukaribisha akili bandia na injini za kujifunza mashine, tunakualika kujadili hali zinazowezekana ambazo zinavutia biashara yako. Tutafurahi kuchambua mahitaji ya kampuni yako na kuamua kwa pamoja mpango wa utekelezaji; Anwani ya barua pepe ya timu yetu ya wataalamu wa AI/ML - .
Chanzo: mapenzi.com
