ProHoster > Lango la Python katika InterSystems IRIS
Lango la Python katika InterSystems IRIS
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 nyaraka.
IDE: Ninatumia PyCharm, lakini kwa ujumla wao mengi. 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 jupyter.
Maktaba
Hapa kuna orodha (isiyo kamili) ya maktaba za kujifunza mashine:
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 ukurasa wa matoleo. 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:
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 callout DLL/SO/DYLIB kwa folda bin mfano wako wa InterSystems IRIS. Faili ya maktaba lazima ipatikane katika njia iliyorejeshwa write ##class(isc.py.Callout).GetLib().
Windows
Hakikisha kutofautiana kwa mazingira PYTHONHOME pointi kwa Python 3.6.7.
Hakikisha kutofautisha kwa mazingira ya mfumo ni PATH ina kutofautiana PYTHONHOME (au saraka inayoelekeza).
Linux (Debian/Ubuntu)
Angalia kuwa kutofautisha kwa mazingira ni PATH ina /usr/lib ΠΈ /usr/lib/x86_64-linux-gnu. Tumia faili /etc/environment kuweka vigezo vya mazingira.
Katika kesi ya makosa undefined symbol: _Py_TrueStruct weka mpangilio PythonLib. pia katika Tayari kuna sehemu ya Utatuzi.
Mac
Hivi sasa ni Python 3.6.7 pekee ndiyo inayotumika python.org. 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 mfululizo wa makala 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 ".
Ikiwa unatumia picha kulingana na Toleo la Jumuiya ya InterSystems IRIS, unaweza kuacha ufunguo.
Maoni
Mchakato wa mtihani isc.py.test.Process huhifadhi idadi ya picha kwenye saraka ya muda. Unaweza kutaka kubadilisha njia hii kwa saraka iliyowekwa. Ili kufanya hivyo, hariri mpangilio WorkingDir kubainisha saraka iliyowekwa.
Ili kufikia terminal kukimbia: docker exec -it irispy sh.
Ufikiaji wa Tovuti ya Usimamizi wa Mfumo kwa kuingia SuperUser/SYS.
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 var
Matokeo yake yanapaswa kuwa: HELLO - Thamani ya kutofautisha ya Python x. Ikiwa hali ya kurudi sc ni kosa au var tupu, angalia Readme - Sehemu ya utatuzi.
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 kusasisha returnVariable. 0 - kamba (chaguo-msingi), 1 - repr.
result - Rejea ya ByRef ya kutofautisha ambayo thamani imeandikwa returnVariable.
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 utekelezaji code tofauti 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:
String kwa aina rahisi za data na utatuzi.
Repr kwa kuhifadhi vitu rahisi na utatuzi.
JSON kwa udanganyifu rahisi wa data kwenye upande wa InterSystems IRIS.
Pickle kuokoa vitu.
Njia hizi hukuruhusu kupata vijiti kutoka kwa Python kama kamba au mitiririko.
GetVariable(variable, serialization, .stream, useString) -pata serialization kutofautiana variable Π² stream. Ikiwa useString ni 1 na usanifu huwekwa kwenye kamba, kisha kamba inarudishwa na sio mkondo.
GetVariableJson(variable, .stream, useString) - pata usanifu wa JSON wa kutofautisha.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
InterSystems IRIS -> Python
Inapakia data kutoka kwa InterSystems IRIS hadi Python.
ExecuteQuery(query, variable, type, namespace) - huunda seti ya data (pandas dataframe au list) kutoka kwa hoja ya sql na kuiweka kwa tofauti ya Python variable. Mfuko wa plastiki isc.py lazima ipatikane katika eneo hilo namespace - ombi litatekelezwa hapo.
ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - hupakia data ya kimataifa global kutoka kwa usajili start kwa end katika Python kama aina ya kutofautisha type: list, au panda dataframe. Maelezo ya hoja za hiari mask na labels inapatikana katika nyaraka za darasa na hazina Hati za Uhamisho wa Data.
ExecuteClass(class, variable, type, start, end, properties, namespace) - hupakia data ya darasa class kutoka kwa kitambulisho start kwa end katika Python kama aina ya kutofautisha type: list, au panda dataframe. properties β orodha (iliyotenganishwa na koma) ya sifa za darasa zinazohitaji kupakiwa kwenye seti ya data. Masks inaungwa mkono * ΠΈ ?. Chaguomsingi - * (mali zote). Mali %%CLASSNAME kupuuzwa.
ExecuteTable(table, variable, type, start, end, properties, namespace) - hupakia data ya meza table kutoka kwa kitambulisho start kwa end katika 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 Hati za Uhamisho wa Data.
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 - list au panda dataframe.
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 - list au panda dataframe.
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, kwenye Windows kutoka 1970, kwenye Linux kutoka 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 darasa
variable - jina la tofauti ya Python ambayo data imeandikwa.
type - list au panda dataframe.
start - Kitambulisho cha kuanzia.
end - Kitambulisho cha mwisho
properties β orodha (iliyotenganishwa na koma) ya sifa za darasa zinazohitaji kupakiwa kwenye seti ya data. Masks inaungwa mkono * ΠΈ ?. Chaguomsingi - * (mali zote). Mali %%CLASSNAME kupuuzwa.
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 ilivyo ExecuteClass.
Vidokezo
ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable kazi kwa kasi sawa.
ExecuteGlobal Mara 20 haraka kuliko ExecuteQuery kwenye seti kubwa za data (muda wa uhamisho > sekunde 0.01).
ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable fanya kazi kwenye ulimwengu na muundo huu: ^global(key) = $lb(prop1, prop2, ..., propN) ambapo key - nambari kamili.
Kwa ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable anuwai ya maadili inayotumika %Date inalingana na anuwai mktime na inategemea OS (madirisha: 1970-01-01, linux 1900-01-01, mac) 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 ΠΈ ExecuteTable hoja zote isipokuwa chanzo cha data (kimataifa, darasa au jedwali) na utofauti ni wa hiari.
mifano
Darasa la mtihani isc.py.test.Person 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.ExecutionRequest kutekeleza nambari ya Python. Inarudi isc.py.msg.ExecutionResponse na matokeo ya utekelezaji na maadili ya vigezo vilivyoombwa.
isc.py.msg.StreamExecutionRequest kutekeleza nambari ya Python. Inarudi isc.py.msg.StreamExecutionResponse matokeo ya utekelezaji na maadili ya vigezo vilivyoombwa. Analogi isc.py.msg.ExecutionRequest, lakini inakubali na kurudisha mitiririko badala ya mifuatano.
isc.py.msg.QueryRequest kusambaza matokeo ya kutekeleza swala la SQL. Inarudi Ens.Response.
isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest kwa kupitisha data ya kimataifa/ya darasa/meza. Inarudi Ens.Response.
isc.py.msg.SaveRequest kuokoa muktadha wa Python. Inarudi Ens.StringResponse yenye kitambulisho cha muktadha.
isc.py.msg.RestoreRequest kurejesha muktadha wa Python.
Aidha, isc.py.ens.Operation ina mipangilio miwili:
Initializer β kuchagua darasa linalotumia kiolesura isc.py.init.Abstract. Inaweza kutumika kupakia kazi, modules, madarasa, nk. Inatekelezwa mara moja mchakato unapoanza.
PythonLib - (Linux pekee) ikiwa unaona makosa wakati wa kupakia, weka thamani yake libpython3.6m.so au 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.ProcessUtils hukuruhusu kutoa vidokezo kutoka kwa shughuli na ubadilishanaji tofauti.
isc.py.util.BPEmulator inafanya 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 kitu process, ambayo ni mfano wa darasa isc.py.test.Process hizo. mchakato wa sasa wa biashara.
${%PopulateUtils:Integer:1:100} wito mbinu Integer tabaka la %PopulateUtils, kupitisha hoja 1 ΠΈ 100, kurudisha nambari kamili isiyo ya kawaida katika safu 1...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 kuchakata def na usemi wa mistari mingi sawa. Chaguomsingi 0.
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-msingi Str.
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) au list.
Namespace - eneo ambalo tunapokea data. Mfuko wa plastiki isc.py inapaswa 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 mali Query kutuma swali la SQL.
isc.py.msg.ClassRequest - kuweka mali Class kupitisha data ya darasa.
isc.py.msg.TableRequest - kuweka mali Table kuhamisha data ya meza.
isc.py.msg.GlobalRequest - kuweka mali Global kwa 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
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:
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.
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: [barua pepe inalindwa] 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 - [barua pepe inalindwa].