Ƙofar Python a cikin InterSystems IRIS

Wannan labarin yana game da Python Gateway, buɗaɗɗen aikin al'umma don dandamalin bayanan InterSystems IRIS. Wannan aikin yana ba ku damar tsara kowane algorithms koyon injin da aka ƙirƙira a cikin Python (babban yanayi don masana kimiyyar bayanai da yawa), yi amfani da ɗakunan karatu da yawa da aka ƙera don ƙirƙirar abubuwan daidaitawa da sauri, hanyoyin nazarin AI / ML na robot akan dandamalin InterSystems IRIS. A cikin wannan labarin, zan nuna yadda InterSystems IRIS za ta iya tsara matakai a cikin Python, da ingantaccen sadarwa ta hanyoyi biyu, da ƙirƙirar hanyoyin kasuwanci na fasaha.

Shirin

  1. Gabatarwar
  2. Kayan aiki.
  3. Shigarwa
  4. API.
  5. Haɗin kai.
  6. Jupyter Notebook.
  7. Ƙarshe.
  8. Hanyoyin haɗi.
  9. MLToolkit.

Gabatarwar

Python babban matakin yaren shirye-shirye ne na gabaɗaya wanda ke da nufin haɓaka haɓaka aikin haɓakawa da iya karanta lambar. A cikin wannan jerin kasidu, zan tattauna yuwuwar amfani da Python akan dandalin InterSystems IRIS, tare da babban abin da wannan labarin ya mayar da hankali shi ne amfani da Python a matsayin yare don ƙirƙira da sarrafa nau'ikan koyon injin.

Koyon inji (ML) aji ne na hanyoyin basirar ɗan adam, fasalin fasalin wanda ba shine maganin matsala kai tsaye ba, amma koyo a cikin hanyar magance matsaloli iri ɗaya.

Algorithms na koyon inji da samfura suna zama gama gari. Akwai dalilai da yawa na wannan, amma duk yana zuwa ga samun dama, sauƙi da samun sakamako mai amfani. Shin tari ko ma ƙirar hanyar sadarwar jijiyoyi sabuwar fasaha ce?

Tabbas ba haka bane, amma a zamanin yau babu buƙatar rubuta dubunnan dubunnan layukan lambobin don gudanar da ƙirar guda ɗaya, kuma farashin ƙirƙira da amfani da ƙira yana ƙara raguwa.

Kayan aiki suna tasowa - yayin da ba mu da cikakkun kayan aikin AI / ML na GUI-centric, ci gaban da muka gani tare da sauran nau'o'in tsarin bayanai, irin su BI (daga lambar rubutu zuwa yin amfani da tsarin da GUI-centric configurable solution) , shine. Hakanan an lura a cikin kayan aikin don ƙirƙirar AI / ML. Mun riga mun wuce matakin rubuta lambar kuma a yau muna amfani da tsarin gini don ginawa da horar da samfura.

Sauran haɓakawa, kamar ikon rarraba samfurin da aka riga aka horar inda mai amfani kawai ya gama horar da ƙirar akan takamaiman bayanan su, kuma yana sauƙaƙa farawa da koyon injin. Waɗannan ci gaban sun sa koyon injin koyo ya fi sauƙi ga ƙwararru da kuma ga kamfanoni gabaɗaya.

A gefe guda kuma, muna tattara bayanai da yawa. Tare da haɗewar dandali na bayanai kamar InterSystems IRIS, duk waɗannan bayanan za a iya shirya su nan da nan kuma a yi amfani da su azaman shigarwa ga ƙirar koyan na'ura.

Tare da motsawa zuwa gajimare, ƙaddamar da ayyukan AI / ML ya zama sauƙi fiye da kowane lokaci. Za mu iya cinye albarkatun da muke bukata kawai. Bugu da ƙari, godiya ga daidaitawar da dandamali na girgije ke bayarwa, za mu iya adana lokacin da aka kashe.

Amma sakamakon fa? A nan ne abubuwa ke ƙara rikitarwa. Akwai kayan aiki da yawa don ƙirar ƙira, waɗanda zan tattauna gaba. Gina samfuri mai kyau ba shi da sauƙi, amma menene na gaba? Samun riba daga yin amfani da tsarin kasuwanci kuma aiki ne mara nauyi. Tushen matsalar shine rabuwar ayyukan nazari da ma'amala, da kuma tsarin bayanai. Lokacin da muke horar da samfurin, yawanci muna yin shi akan bayanan tarihi. Amma wurin samfurin da aka gina yana cikin sarrafa bayanan ma'amala. Menene mafi kyawun samfurin gano ma'amala na zamba idan muna gudanar da shi sau ɗaya a rana? Masu zamba sun daɗe da barin kuɗin. Muna buƙatar horar da samfurin akan bayanan tarihi, amma kuma muna buƙatar yin amfani da shi a ainihin lokacin akan sababbin bayanai masu shigowa don ayyukan kasuwancin mu su iya yin aiki akan tsinkayar da samfurin ya yi.

ML Toolkit saitin kayan aikin ne waɗanda ke nufin yin haka kawai: haɗa samfura da mahallin ma'amala ta yadda za a iya amfani da samfuran da aka gina cikin sauƙi kai tsaye a cikin kasuwancin ku. Ƙofar Python wani ɓangare ne na Toolkit na ML kuma yana ba da haɗin kai tare da harshen Python (kamar yadda R Gateway, kasancewa wani ɓangare na kayan aikin ML yana ba da haɗin kai tare da harshen R).

Kayan aiki

Kafin mu ci gaba, Ina so in bayyana wasu kayan aikin Python da dakunan karatu waɗanda za mu yi amfani da su daga baya.

da fasaha

  • Python harshe ne da aka fassara, babban mataki, yaren shirye-shirye na gaba ɗaya. Babban fa'idar harshen shine babban ɗakin karatu na lissafi, ML da kuma ɗakunan karatu na AI. Kamar ObjectScript, harshe ne da ya dace da abu, amma an bayyana komai da ƙarfi maimakon a tsaye. Haka kuma komai abu ne. Labarun daga baya sun ɗauka cewa sun saba da yaren. Idan kuna son fara koyo, ina ba da shawarar farawa da takardun.
  • Don ayyukan mu na gaba, saita Python 3.6.7 64 bit.
  • IDE: Ina amfani PyCharm, amma gabaɗaya su много. Idan kuna amfani da Atelier, akwai plugin Eclipse don masu haɓaka Python. Idan kana amfani da lambar VS, akwai ƙarin don Python.
  • Littafin rubutu: Maimakon IDE, zaku iya rubutawa da raba rubutun ku a cikin littattafan rubutu na kan layi. Mafi shaharar su shine jupyter.

Dakunan karatu

Ga jerin dakunan karatu na koyon injin (ba mai ƙarewa ba):

  • Lambu - kunshin mahimmanci don ƙididdige ƙididdiga.
  • Panda - Tsarin bayanai masu girma da kayan aikin tantance bayanai.
  • matplotlib - ƙirƙirar hotuna.
  • Jirgin ruwa - hangen nesa bayanai dangane da matplotlib.
  • Sklearn - hanyoyin koyon inji.
  • XGBoost - Algorithms na koyon inji a cikin tsarin tsarin haɓaka gradient.
  • Gensim - NLP.
  • Keras - hanyoyin sadarwa na jijiyoyi.
  • Maganin motsa jiki - dandamali don ƙirƙirar samfuran koyan inji.
  • PyTorch wani dandali ne don ƙirƙirar ƙirar koyon injin, mai da hankali kan Python.
  • Nyoka - PMML daga samfura daban-daban.

Fasahar AI/ML tana sa kasuwanci ya fi dacewa da daidaitawa. Bugu da ƙari, a yau waɗannan fasahohin suna samun sauƙi don haɓakawa da aiwatarwa. Fara koyo game da fasahar AI/ML da kuma yadda za su iya taimaka wa ƙungiyar ku girma.

saitin

Akwai hanyoyi da yawa don shigarwa da amfani da Python Gateway:

  • OS
    • Windows
    • Linux
    • Mac
  • Docker
    • Yi amfani da hoto daga DockerHub
    • Ƙirƙiri kamannin ku

Ko da kuwa hanyar shigarwa, kuna buƙatar lambar tushe. Wurin da za a sauke lambar shine shafin saki. Yana ƙunshe da ingantaccen sakewa, kawai ɗauki na ƙarshe. A halin yanzu yana da 0.8, amma bayan lokaci za a sami sababbi. Kar a rufe/zazzage ma'ajiyar, zazzage sabon saki.

OS

Idan kuna shigar Python Gateway akan tsarin aiki, to da farko (ko da kuwa tsarin aiki) kuna buƙatar shigar da Python. Don wannan:

  1. Sanya Python 3.6.7 64 bit. Ana ba da shawarar shigar Python a cikin tsoho directory.
  2. Shigar da tsarin dill: pip install dill.
  3. Zazzage lambar ObjectScript (watau. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) zuwa kowane yanki tare da samfurori. Idan kuna son yankin da ke akwai don tallafawa samfuran, gudanar: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. Wuri DLL/SO/DYLIB zuwa babban fayil bin InterSystems IRIS misali. Dole ne fayil ɗin ɗakin karatu ya kasance a cikin hanyar da aka dawo write ##class(isc.py.Callout).GetLib().

Windows

  1. Tabbatar cewa yanayin ya canza PYTHONHOME yana nuna Python 3.6.7.
  2. Tabbatar cewa canjin yanayin tsarin shine PATH ya ƙunshi m PYTHONHOME (ko littafin da yake nuni da shi).

Linux (Debian/Ubuntu)

  1. Bincika cewa canjin yanayi shine PATH ya ƙunshi /usr/lib и /usr/lib/x86_64-linux-gnu. Yi amfani da fayil /etc/environment don saita masu canjin yanayi.
  2. Idan akwai kurakurai undefined symbol: _Py_TrueStruct saita saitin PythonLib. kuma in Readme akwai sashin warware matsalar.

Mac

  1. A halin yanzu Python 3.6.7 kawai ake tallafawa Python.org. Duba m PATH.

Idan kun canza masu canjin yanayi, sake fara samfurin InterSystems ɗin ku.

Docker

Yin amfani da kwantena yana da fa'idodi da yawa:

  • Abun iya ɗauka
  • Amfani
  • Insulation
  • Haske
  • Rashin canzawa

Duba wannan jerin labarai don ƙarin bayani game da amfani da Docker tare da samfuran InterSystems.

Duk ginin Python Gateway a halin yanzu yana cikin kwantena 2019.4.

Hoton da aka shirya

Gudu: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestdon saukewa da gudanar da Python Gateway tare da InterSystems IRIS Community Edition. Shi ke nan.

Ƙirƙiri kamannin ku

Don gina hoton docker, gudu a cikin tushen ma'ajiyar: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Ta hanyar tsoho, an gina hoton bisa ga hoton store/intersystems/iris-community:2019.4.0.383.0, duk da haka zaku iya canza wannan ta hanyar saita ma'auni IMAGE.
Don ginawa daga InterSystems IRIS, gudanar da: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy: latest ".

Bayan haka zaku iya gudanar da hoton docker:

docker run -d 
  -p 52773:52773 
  -v /<HOST-DIR-WITH-iris.key>/:/mount 
  --name irispy 
  intersystemscommunity/irispy:latest 
  --key /mount/iris.key

Idan kana amfani da hoto dangane da InterSystems IRIS Community Edition, zaku iya barin maɓallin.

comments

  • Tsarin gwaji isc.py.test.Process yana adana adadin hotuna zuwa kundin adireshi na wucin gadi. Kuna iya canza wannan hanyar zuwa wurin da aka ɗora. Don yin wannan, shirya saitin WorkingDir Ƙayyadaddun littafin da aka ɗora.
  • Don samun dama ga tafiyar tasha: docker exec -it irispy sh.
  • Samun dama ga Portal Management System ta hanyar shiga SuperUser/SYS.
  • Don tsayar da kwandon, gudu: docker stop irispy && docker rm --force irispy.

Tabbatar da shigarwa

Da zarar kun shigar da Python Gateway, yana da kyau a duba cewa yana aiki. Yi wannan lambar a cikin InterSystems IRIS m:

set sc = ##class(isc.py.Callout).Setup() 
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var

Sakamakon yakamata ya kasance: HELLO - Python m darajar x. Idan halin dawowa sc kuskure ne ko var komai, duba Karatu - Sashen magance matsala.

API

An shigar da Ƙofar Python kuma kun tabbatar yana aiki. Lokaci ya yi da za a fara amfani da shi!
Babban hanyar sadarwa zuwa Python shine isc.py.Main. Yana ba da ƙungiyoyin hanyoyi masu zuwa (duk dawowa %Status):

  • Code Kisa
  • Canja wurin bayanai
  • Talakawa

Code Kisa

Waɗannan hanyoyin suna ba ku damar aiwatar da lambar Python na sabani.

SimpleString

SimpleString - wannan ita ce babbar hanya. Yana ɗaukar dalilai na zaɓi guda 4:

  • code - layin code don aiwatarwa. Halin ciyarwar layi: $c(10).
  • returnVariable - sunan mai canzawa don dawowa.
  • serialization - yadda ake serialize returnVariable. 0 - kirtani (tsoho), 1 - repr.
  • result - ByRef yana nufin maɓalli wanda aka rubuta ƙimar cikinsa returnVariable.

A sama mun yi:

set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).

A cikin wannan misali, mun sanya wa maballin Python x ma'ana Hello kuma suna son dawo da darajar ma'aunin Python x zuwa madaidaicin ObjectScript var.

ExecuteCode

ExecuteCode shine mafi aminci kuma mafi ƙarancin ƙuntatawa SimpleString.
Layuka a cikin dandali na InterSystems IRIS suna iyakance ga haruffa 3, kuma idan kuna son aiwatar da guntun lamba mai tsayi, kuna buƙatar amfani da zaren.
An yarda da dalilai guda biyu:

  • code - layi ko rafi na lambar Python da za a aiwatar.
  • variable - (na zaɓi) yana ba da sakamakon kisa code wannan Python variable.

Misali don amfani:

set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").

A cikin wannan misali, muna ninka 2 ta 3 kuma muna rubuta sakamakon zuwa ma'aunin Python y.

Canja wurin bayanai

Canja bayanai zuwa kuma daga Python.

Python -> InterSystems IRIS

Akwai hanyoyi guda 4 don samun ƙimar madaidaicin Python a cikin InterSystems IRIS, dangane da jerin abubuwan da kuke buƙata:

  • String don sauƙaƙan nau'ikan bayanai da cirewa.
  • Repr don adana abubuwa masu sauƙi da cirewa.
  • JSON don sauƙin sarrafa bayanai akan InterSystems IRIS gefen.
  • Pickle don ajiye abubuwa.

Waɗannan hanyoyin suna ba ku damar dawo da masu canji daga Python azaman kirtani ko rafi.

  • GetVariable(variable, serialization, .stream, useString) - samu serialization m variable в stream. Idan useString shine 1 kuma ana sanya serialization akan zaren, sa'an nan kuma a mayar da zaren ba rafi ba.
  • GetVariableJson(variable, .stream, useString) - sami JSON serialization na wani m.
  • GetVariablePickle(variable, .stream, useString, useDill) -samu Pickle (ko Dill) serialization na ma'auni.

Mu yi ƙoƙarin samun canjin mu y.

set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6

InterSystems IRIS -> Python

Ana loda bayanai daga InterSystems IRIS zuwa Python.

  • ExecuteQuery(query, variable, type, namespace) - Yana haifar da saitin bayanai (pandas dataframe ko list) daga tambayar sql kuma saita shi zuwa madaidaicin Python variable. Jakar filastik isc.py dole ne a samu a yankin namespace - za a aiwatar da buƙatar a can.
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - Loads duniya data global daga subscription start to end a cikin Python azaman nau'in canjin yanayi type: listko pandas dataframe. Bayanin dalilai na zaɓi mask da kuma labels samuwa a cikin takardun aji da ma'ajiya Dokokin Canja wurin bayanai.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - lodi class data class daga id start to end a cikin Python azaman nau'in canjin yanayi type: listko pandas dataframe. properties - jeri (rabu ta hanyar waƙafi) na kaddarorin aji waɗanda ke buƙatar loda su cikin saitin bayanai. Masks suna tallafawa * и ?. Na asali - * (duk kaddarorin). Dukiya %%CLASSNAME watsi.
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - lodin bayanan tebur table daga id start to end in Python.

ExecuteQuery - duniya (duk wani madaidaicin tambayar SQL za a wuce zuwa Python). Duk da haka, ExecuteGlobal da kuma nannade shi ExecuteClass и ExecuteTable aiki tare da adadin hani. Suna da sauri da yawa (sau 3-5 da sauri fiye da direban ODBC kuma sau 20 cikin sauri ExecuteQuery). Karin bayani a Dokokin Canja wurin bayanai.
Duk waɗannan hanyoyin suna tallafawa canja wurin bayanai daga kowane yanki. Jakar filastik isc.py dole ne a samu a yankin da aka yi niyya.

ExecuteQuery

ExecuteQuery(request, variable, type, namespace) - canja wurin sakamakon kowane madaidaicin tambayar SQL zuwa Python. Wannan ita ce hanya mafi saurin canja wurin bayanai. Yi amfani da shi idan ExecuteGlobal kuma ba a samun nandayen sa.

Hujja:

  • query - sql tambaya.
  • variable - sunan Python variable wanda aka rubuta bayanan a ciki.
  • type - list ya da Panda dataframe.
  • namespace - yankin da za a aiwatar da bukatar.

Gudanar da Duniya

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - wucewa duniya a Python.

Hujja:

  • global - duniya suna ba tare da ^
  • variable - sunan Python variable wanda aka rubuta bayanan a ciki.
  • type - list ya da Panda dataframe.
  • start - rubutun farko na duniya. Lallai %Integer.
  • end - rubutun karshe na duniya. Lallai %Integer.
  • mask - abin rufe fuska darajar duniya. Abin rufe fuska na iya zama guntu fiye da adadin filayen a cikin duniya (wanda a ciki za a tsallake filayen a karshen). Yadda za a tsara abin rufe fuska:
    • + wuce darajar kamar yadda yake.
    • - tsallake darajar.
    • b - nau'in Boolean (0 - False, duk sauran - True).
    • d - Kwanan wata (daga $horolog, akan Windows daga 1970, akan Linux daga 1900).
    • t - Lokaci ($ horolog, seconds bayan tsakar dare).
    • m - Tambarin lokaci (tsarin kirtani SHEKARU-wata-RANAR HOUR: MINNUTE: BIYU).
  • labels - % Jerin sunayen ginshiƙi. Abu na farko shine sunan rubutun.
  • namespace - yankin da za a aiwatar da bukatar.

ExecuteClass

Kunna ExecuteGlobal. Dangane da ma'anar aji, yana shirya kira ExecuteGlobal kuma ya kira shi.

ExecuteClass(class, variable, type, start, end, properties, namespace) - wuce bayanan aji a Python.

Hujja:

  • class - sunan aji
  • variable - sunan Python variable wanda aka rubuta bayanan a ciki.
  • type - list ya da Panda dataframe.
  • start - farawa ID.
  • end - karshe Id
  • properties - jeri (rabu ta hanyar waƙafi) na kaddarorin aji waɗanda ke buƙatar loda su cikin saitin bayanai. Masks suna tallafawa * и ?. Na asali - * (duk kaddarorin). Dukiya %%CLASSNAME watsi.
  • namespace - yankin da za a aiwatar da bukatar.

An wuce duk kaddarorin kamar yadda suke banda nau'in kaddarorin %Date, %Time, %Boolean и %TimeStamp - ana canza su zuwa azuzuwan Python daidai.

ExecutTable

Kunna ExecuteClass. Fassara sunan tebur zuwa sunan aji da kira ExecuteClass. Sa hannu:

ExecuteTable(table, variable, type, start, end, properties, namespace) - mika bayanan tebur zuwa Python.

Hujja:

  • table - sunan tebur.
    Duk sauran gardama an wuce su kamar yadda ake so ExecuteClass.

Bayanan kula

  • ExecuteGlobal, ExecuteClass и ExecuteTable yi aiki daidai da sauri.
  • ExecuteGlobal Sau 20 da sauri fiye da ExecuteQuery akan manyan saitunan bayanai (lokacin canja wuri> 0.01 seconds).
  • ExecuteGlobal, ExecuteClass и ExecuteTable aiki a kan duniya tare da wannan tsari: ^global(key) = $lb(prop1, prop2, ..., propN) inda key - lamba.
  • domin ExecuteGlobal, ExecuteClass и ExecuteTable goyon bayan kewayon dabi'u %Date yayi daidai da kewayo mktime kuma ya dogara da OS (windows: 1970-01-01. Linux 1900-01-01, mac). Amfani %TimeStampdon canja wurin bayanai a wajen wannan kewayon ko amfani da pandas dataframe saboda wannan iyakancewar jeri ne kawai.
  • domin ExecuteGlobal, ExecuteClass и ExecuteTable duk gardama sai dai tushen bayanai (na duniya, aji ko tebur) da kuma masu canji na zaɓi ne.

misalai

Gwajin aji isc.py.test.Mutum ya ƙunshi hanyar da ke nuna duk zaɓuɓɓukan canja wurin bayanai:

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)

Kira hanyar do ##class(isc.py.test.Person).Test() don ganin yadda duk hanyoyin canja wurin bayanai ke aiki.

Hanyoyin Taimako

  • GetVariableInfo(variable, serialization, .defined, .type, .length) - sami bayanai game da mabambanta: ko an ayyana shi, ajinsa da tsayin serialization.
  • GetVariableDefined(variable, .defined) - ko an ayyana ma'auni.
  • GetVariableType(variable, .type) - sami ajin mai canzawa.
  • GetStatus() - samu kuma cire keɓantawar ƙarshe a gefen Python.
  • GetModuleInfo(module, .imported, .alias) - sami m module da matsayi shigo da.
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - samun bayanai game da aikin.

Haɗin kai

Kun koyi yadda ake kiran Python Gateway daga tashar, yanzu bari mu fara amfani da shi wajen samarwa. Tushen yin hulɗa da Python a wannan yanayin shine isc.py.ens.Operation. Yana ba mu damar:

  • Yi code a cikin Python
  • Ajiye/Mayar da mahallin Python
  • Load da karɓar bayanai daga Python

Ainihin, aikin Python ya ƙare isc.py.Main. Aiki isc.py.ens.Operation yana ba da damar yin hulɗa tare da tsarin Python daga samfuran InterSystems IRIS. Ana goyan bayan tambayoyi biyar:

  • isc.py.msg.ExecutionRequest don aiwatar da lambar Python. Yana dawowa isc.py.msg.ExecutionResponse tare da sakamakon kisa da ƙimar masu canjin da ake nema.
  • isc.py.msg.StreamExecutionRequest don aiwatar da lambar Python. Yana dawowa isc.py.msg.StreamExecutionResponse sakamakon kisa da kimar masu canjin da ake nema. Analogue isc.py.msg.ExecutionRequest, amma yana karba da dawo da rafuka maimakon kirtani.
  • isc.py.msg.QueryRequest don watsa sakamakon aiwatar da tambayar SQL. Yana dawowa Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest don wucewa bayanan duniya / aji / tebur. Yana dawowa Ens.Response.
  • isc.py.msg.SaveRequest don adana mahallin Python. Yana dawowa Ens.StringResponse tare da mahallin ID.
  • isc.py.msg.RestoreRequest don dawo da mahallin Python.

    Bugu da ƙari, isc.py.ens.Operation yana da saituna guda biyu:

    • Initializer - zaɓin aji wanda ke aiwatar da haɗin gwiwa isc.py.init.Abstract. Ana iya amfani da shi don loda ayyuka, kayayyaki, azuzuwan, da sauransu. Ana aiwatar da shi sau ɗaya lokacin da aikin ya fara.
    • PythonLib - (Linux kawai) idan kun ga kurakurai lokacin lodawa, saita ƙimar sa zuwa libpython3.6m.so ko ma a cikin cikakkiyar hanyar zuwa ɗakin karatu na Python.

Ƙirƙirar hanyoyin kasuwanci

Akwai nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan iri biyu ne:

  • isc.py.ens.ProcessUtils yana ba ku damar cire bayanan bayanai daga ayyuka tare da canji mai ma'ana.
  • isc.py.util.BPEmulator yana sauƙaƙa gwada hanyoyin kasuwanci tare da Python. Yana iya aiwatar da tsarin kasuwanci (Python sassa) a cikin tsari na yanzu.

Sauya Sauyawa

Duk hanyoyin kasuwanci da aka gada daga isc.py.ens.ProcessUtils, iya amfani da hanyar GetAnnotation(name) don samun ƙimar bayanin ayyukan da sunansa. Bayanin ayyukan zai iya ƙunsar masu canji waɗanda za a ƙididdige su a gefen InterSystems IRIS kafin a wuce su zuwa Python. Anan ga ma'anar canji mai canzawa:

  • ${class:method:arg1:...:argN} - hanyar kira
  • #{expr} - aiwatar da lamba a cikin yaren ObjectScript.

Ana samun misali a cikin tsarin kasuwancin gwaji isc.py.test.Process, misali, a cikin aiki Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). A cikin wannan misali:

  • #{process.WorkDirectory} ya dawo da kayan aikin WorkDirectory na abu process, wanda shine misalin ajin isc.py.test.Process wadanda. tsarin kasuwanci na yanzu.
  • ${%PopulateUtils:Integer:1:100} kira hanya Integer aji %PopulateUtils, masu wuce gona da iri 1 и 100, maido da adadin bazuwar a cikin kewayon 1...100.

Gwada tsarin kasuwanci

Samfuran gwaji da hanyoyin gwaji na kasuwanci suna samuwa ta tsohuwa azaman ɓangare na Ƙofar Python. Don amfani da su:

  1. A cikin OS Terminal, gudanar: pip install pandas matplotlib seaborn.
  2. A cikin InterSystems IRIS m, gudanar: do ##class(isc.py.test.CannibalizationData).Import() don cike bayanan gwaji.
  3. Kaddamar da samfurori isc.py.test.Production.
  4. Aika nau'in nema Ens.Request в isc.py.test.Process.

Bari mu ga yadda duka ke aiki tare. Bude isc.py.test.Process a cikin editan BPL:

Ƙofar Python a cikin InterSystems IRIS

Code Kisa

Babban kalubalen shine aiwatar da lambar Python:

Ƙofar Python a cikin InterSystems IRIS

An yi amfani da tambaya isc.py.msg.ExecutionRequest, ga kaddarorinsa:

  • Code - Python code.
  • SeparateLines - ko don raba lambar zuwa layi don aiwatarwa. $c(10) (n) ana amfani da shi don raba igiyoyi. Lura cewa ba a ba da shawarar aiwatar da saƙon gaba ɗaya ba, wannan aikin an yi niyya ne kawai don aiwatarwa def da makamantan maganganu masu yawa. Default 0.
  • Variables - jerin waƙafi na masu canji waɗanda za a ƙara zuwa martani.
  • Serialization - Yadda za a jera masu canji waɗanda muke son dawowa. Zabuka: Str, Repr, JSON, Pickle и Dill, tsoho Str.

A cikin yanayinmu, muna saita dukiya kawai Code, don haka duk sauran kaddarorin suna amfani da tsoffin ƙima. Mun saita shi ta hanyar kira process.GetAnnotation("Import pandas"), wanda a lokacin aiki yana mayar da bayanin bayan an yi canji mai ma'ana. Bayan duk, da code import pandas as pd za a wuce zuwa Python. GetAnnotation na iya zama da amfani don samun rubutun Python mai layi daya, amma babu wani hani akan wannan hanyar samun lambar. Kuna iya saita kayan Code ta kowace hanya dace a gare ku.

Samun Sauyi

Wani kalubale mai ban sha'awa ta amfani da shi isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Ƙofar Python a cikin InterSystems IRIS

Yana ƙididdige Matrix Correlation a gefen Python kuma yana fitar da m corrmat komawa zuwa InterSystems IRIS a tsarin JSON ta hanyar saita kaddarorin buƙatun:

  • Variables: "corrmat"
  • Serialization: "JSON"

Za mu iya ganin sakamako a cikin Kayayyakin Kayayyakin Kayayyakin Kayayyaki:

Ƙofar Python a cikin InterSystems IRIS

Kuma idan muna buƙatar wannan ƙimar a cikin BP, zamu iya samun ta kamar haka: callresponse.Variables.GetAt("corrmat").

Canja wurin bayanai

Na gaba, bari muyi magana game da canja wurin bayanai daga InterSystems IRIS zuwa Python; duk buƙatun canja wurin bayanai suna aiwatar da ƙirar isc.py.msg.DataRequestwanda ke ba da kaddarorin masu zuwa:

  • Variable - wani nau'in Python wanda aka rubuta bayanai a cikinsa.
  • Type - m iri: dataframe (pandas dataframe) ko list.
  • Namespace - yankin da muke karɓar bayanai. Jakar filastik isc.py ya kamata a samu a wannan yanki. Wannan yana iya zama yanki ba tare da tallafin samfur ba.

Dangane da wannan keɓancewa, ana aiwatar da nau'ikan buƙatun guda 4:

  • isc.py.msg.QueryRequest - saita dukiya Query don aika tambayar SQL.
  • isc.py.msg.ClassRequest - saita dukiya Class don wuce bayanan aji.
  • isc.py.msg.TableRequest - saita dukiya Table don canja wurin bayanan tebur.
  • isc.py.msg.GlobalRequest - saita dukiya Global don canja wurin bayanai na duniya.

A cikin tsarin gwaji, duba aikin RAWinda isc.py.msg.QueryRequest aka nuna a aikace.

Ƙofar Python a cikin InterSystems IRIS

Ajiye/Mayar da Maganar Python

A ƙarshe, za mu iya ajiye mahallin Python a cikin InterSystems IRIS, don yin wannan za mu aika isc.py.msg.SaveRequest tare da jayayya:

  • Mask - Masu canji kawai waɗanda suka dace da abin rufe fuska an ajiye su. Tallafawa * и ?... Misali: "Data*, Figure?"... Default *.
  • MaxLength - Matsakaicin tsayin madaidaicin da aka adana. Idan serialization na wani m ya fi tsayi, za a yi watsi da shi. Saita zuwa 0 don samun masu canji na kowane tsayi. Default $$$MaxStringLength.
  • Name - Sunan yanayi (na zaɓi).
  • Description - Bayanin mahallin (na zaɓi).

Komawa Ens.StringResponse с Id mahallin da aka ajiye. A cikin tsarin gwaji, duba aikin Save Context.

Buƙatun mai alaƙa isc.py.msg.RestoreRequest Loads mahallin daga InterSystems IRIS zuwa Python:

  • ContextId - mai gano mahallin.
  • Clear - share mahallin kafin maidowa.

Jupyter Notebook

Jupyter Notebook buɗaɗɗen aikace-aikacen gidan yanar gizo ne wanda ke ba ku damar ƙirƙira da buga littattafan rubutu waɗanda ke ɗauke da lamba, abubuwan gani, da rubutu. Ƙofar Python yana ba ku damar dubawa da shirya ayyukan BPL a cikin hanyar Jupyter Notebook. Lura cewa ana amfani da mai aiwatar da Python 3 na yau da kullun.

Wannan tsawo yana ɗauka cewa bayanan sun ƙunshi lambar Python kuma suna amfani da sunayen ayyuka azaman taken da suka gabata. Yanzu yana yiwuwa a haɓaka hanyoyin kasuwanci na PythonGateway a cikin Jupyter Notebook. Ga abin da zai yiwu:

  • Ƙirƙiri sababbin hanyoyin kasuwanci
  • Share hanyoyin kasuwanci
  • Ƙirƙiri sababbin ayyuka
  • Canja ayyuka
  • Share ayyuka

a nan demo video. Kuma ƴan hotunan kariyar kwamfuta:

Tsari Explorer

Ƙofar Python a cikin InterSystems IRIS

Editan tsari

Ƙofar Python a cikin InterSystems IRIS

saitin

  1. Kuna buƙatar InterSystems IRIS 2019.2+.
  2. Shigar PythonGateway v0.8+ (kawai ana buƙata isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints и isc.py.ens.ProcessUtils).
  3. Sabunta lambar ObjectScript daga ma'ajiyar.
  4. Kisa do ##class(isc.py.util.Jupyter).Install() kuma ku bi abubuwan da suka faru.

Rubutun.

binciken

MLToolkit saitin kayan aiki ne wanda burinsu shine haɗa samfura da mahallin ma'amala ta yadda za'a iya amfani da samfuran da aka gina cikin sauƙi kai tsaye a cikin kasuwancin ku. Python Gateway wani ɓangare ne na MLToolkit kuma yana ba da haɗin kai tare da yaren Python, yana ba ku damar tsara duk wani algorithms koyo na injin da aka kirkira a Python (babban muhalli ga masana kimiyyar bayanai da yawa), yi amfani da ɗakunan karatu da yawa da aka ƙera don ƙirƙirar daidaitawa da sauri, ƙirar robotic AI / ML mafita akan dandalin InterSystems IRIS.

nassoshi

MLToolkit

Ƙungiyar mai amfani da MLToolkit wani ma'ajin GitHub mai zaman kansa wanda aka ƙirƙira azaman ɓangare na ƙungiyar GitHub ta InterSystems. An yi niyya don masu amfani da waje waɗanda suka girka, koyo, ko kuma suna amfani da kayan aikin MLToolkit, gami da Ƙofar Python. Ƙungiyar tana da adadin aiwatar da shari'o'i (tare da lambar tushe da bayanan gwaji) a fagen tallace-tallace, masana'antu, magunguna da sauran masana'antu da yawa. Don shiga Ƙungiyar Masu Amfani da Kayan Aikin Kayan Aikin ML, da fatan za a aika gajeriyar imel zuwa adireshin da ke gaba: [email kariya] kuma sun haɗa da waɗannan bayanai a cikin wasiƙar ku:

  • GitHub sunan mai amfani
  • Ƙungiya (kuna aiki ko karatu)
  • Matsayi (ainihin matsayin ku a cikin ƙungiyar ku, ko dai "Student" ko "mai zaman kansa").
  • kasar

Ga waɗanda suka karanta labarin kuma suna da sha'awar iyawar InterSystems IRIS azaman dandamali don haɓakawa ko ɗaukar nauyin bayanan ɗan adam da injunan koyon injin, muna gayyatar ku don tattauna yuwuwar yanayin yanayin da ke da sha'awar kasuwancin ku. Za mu yi farin cikin nazarin bukatun kamfanin ku kuma tare da ƙayyade tsarin aiki; Tuntuɓi adireshin imel na ƙungiyar ƙwararrun AI/ML - [email kariya].

source: www.habr.com

Add a comment