Tha an artaigil seo mu dheidhinn Python Gateway, pròiseact coimhearsnachd stòr fosgailte airson àrd-ùrlar dàta InterSystems IRIS. Leigidh am pròiseact seo leat algorithms ionnsachadh inneal sam bith a chaidh a chruthachadh ann am Python (am prìomh àrainneachd airson mòran de luchd-saidheans dàta) a chuir air dòigh), grunn leabharlannan deiseil a chleachdadh gus fuasglaidhean atharrachail, robotach AI / ML a chruthachadh gu sgiobalta air àrd-ùrlar InterSystems IRIS. San artaigil seo, seallaidh mi mar as urrainn do InterSystems IRIS pròiseasan a chuir air dòigh ann am Python, conaltradh èifeachdach a dhèanamh air dàta dà-shligheach, agus pròiseasan gnìomhachais tùrail a chruthachadh.
Plana
- Ro-ràdh
- Innealan.
- Stàladh
- API.
- Eadar-obrachaidh.
- Leabhar-nota Jupyter.
- Co-dhùnaidhean.
- Ceanglaichean.
- MLToolkit.
Ro-ràdh
Tha Python na chànan prògramaidh àrd-ìre, coitcheann a tha ag amas air cinneasachd luchd-leasachaidh agus comas leughaidh còd a leasachadh. Anns an t-sreath artaigilean seo, bruidhnidh mi mu na cothroman air Python a chleachdadh air an àrd-ùrlar InterSystems IRIS, le prìomh fhòcas an artaigil seo air cleachdadh Python mar chànan airson modalan ionnsachaidh innealan a chruthachadh agus a ruith.
Is e clas de dhòighean inntleachd fuadain a th’ ann an ionnsachadh inneal (ML), agus chan e am feart sònraichte sin fuasgladh dìreach air duilgheadas, ach ionnsachadh ann am pròiseas fuasgladh fhaighinn air mòran dhuilgheadasan coltach ris.
Tha algorithms ionnsachadh innealan agus modalan a’ fàs nas cumanta. Tha iomadh adhbhar ann airson seo, ach tha e uile an urra ri ruigsinneachd, sìmplidheachd agus coileanadh toraidhean practaigeach. A bheil cruinneachadh no eadhon lìonra neural a’ modaladh teicneòlas ùr?
Gu dearbh chan eil, ach an-diugh chan eil feum air na ceudan de mhìltean de loidhnichean còd a sgrìobhadh gus aon mhodail a ruith, agus tha cosgais cruthachadh agus cleachdadh mhodalan a ’fàs nas lugha agus nas lugha.
Tha innealan a’ tighinn air adhart - ged nach eil innealan AI/ML gu tur GUI-centric againn, tha an adhartas a chunnaic sinn le mòran chlasaichean eile de shiostaman fiosrachaidh, leithid BI (bho bhith a’ sgrìobhadh còd gu bhith a’ cleachdadh frèaman agus fuasglaidhean rèiteachaidh GUI-centric). cuideachd air fhaicinn ann an innealan airson AI/ML a chruthachadh. Tha sinn mu thràth air a dhol seachad air an ìre de chòd sgrìobhaidh agus an-diugh bidh sinn a’ cleachdadh frèaman airson modalan a thogail agus a thrèanadh.
Tha leasachaidhean eile, leithid an comas modal ro-thrèanadh a sgaoileadh far nach fheum an neach-cleachdaidh deireannach ach crìoch a chuir air trèanadh a’ mhodail air an dàta sònraichte aca, cuideachd ga dhèanamh nas fhasa tòiseachadh le ionnsachadh innealan. Tha na h-adhartasan sin a’ dèanamh ionnsachadh innealan ionnsachaidh gu math nas fhasa an dà chuid do phroifeiseantaich agus do chompanaidhean san fharsaingeachd.
Air an làimh eile, tha sinn a 'tional barrachd is barrachd dàta. Le àrd-ùrlar dàta aonaichte mar InterSystems IRIS, faodar am fiosrachadh seo gu lèir ullachadh sa bhad agus a chleachdadh mar chur-a-steach do mhodalan ionnsachaidh innealan.
Leis a’ ghluasad chun sgòth, tha cur air bhog pròiseactan AI/ML a’ fàs nas fhasa na bha e a-riamh. Chan urrainn dhuinn ach na goireasan a tha a dhìth oirnn ithe. A bharrachd air an sin, le taing don cho-shìnteadh a tha àrd-ùrlaran sgòthan a’ tabhann, is urrainn dhuinn ùine a shàbhaladh.
Ach dè mu dheidhinn na toraidhean? Seo far a bheil cùisean a’ fàs nas iom-fhillte. Tha mòran innealan ann airson modalan a thogail, air am bi mi a 'bruidhinn an ath rud. Chan eil e furasta modal math a thogail, ach dè an ath rud? Tha a bhith a’ dèanamh prothaid bho bhith a’ cleachdadh modail gnìomhachais cuideachd na obair nach eil cho beag. Is e freumh na trioblaid sgaradh eallach obrach mion-sgrùdaidh agus gnìomh, agus modalan dàta. Nuair a bhios sinn a’ trèanadh modail, mar as trice bidh sinn ga dhèanamh air dàta eachdraidheil. Ach tha an t-àite airson a’ mhodail thogte ann an giullachd dàta gnìomh. Dè cho math ’s a tha am modal lorg malairt meallta as fheàrr ma ruitheas sinn e uair san latha? Tha na sgamadairean air falbh o chionn fhada leis an airgead. Feumaidh sinn am modail a thrèanadh air dàta eachdraidheil, ach feumaidh sinn cuideachd a chuir an sàs ann an àm fìor air dàta ùr a tha a’ tighinn a-steach gus an urrainn dha ar pròiseasan gnìomhachais a bhith ag obair a rèir na ro-innse a rinn am modail.
Is e seata innealan a th’ ann an Inneal ML a tha ag amas air dìreach sin a dhèanamh: aonaich mhodalan agus àrainneachd gnìomhachd gus am bi e furasta na modalan togte a chleachdadh gu dìreach anns na pròiseasan gnìomhachais agad. Tha Python Gateway mar phàirt den ML Toolkit agus a’ toirt seachad amalachadh leis a’ chànan Python (coltach ri mar a tha R Gateway, le bhith mar phàirt den ML Toolkit a’ toirt seachad amalachadh leis a’ chànan R).
Pasgan-obrach
Mus lean sinn air adhart, bu mhath leam cunntas a thoirt air beagan innealan Python agus leabharlannan a chleachdas sinn nas fhaide air adhart.
de theicneòlas
- Tha Python na chànan prògramaidh eadar-mhìnichte, àrd-ìre, coitcheann. Is e prìomh bhuannachd a’ chànain an leabharlann mòr aige de leabharlannan matamataigeach, ML agus AI. Coltach ri ObjectScript, is e cànan a tha ag amas air cuspair a th’ ann, ach tha a h-uile dad air a mhìneachadh gu dinamach seach gu statach. Cuideachd tha a h-uile dad na nì. Tha artaigilean nas fhaide air adhart a’ gabhail ris gu bheil eòlas a’ dol seachad air a’ chànan. Ma tha thu airson tòiseachadh air ionnsachadh, tha mi a’ moladh tòiseachadh le .
- Airson na h-eacarsaichean a leanas againn, seata .
- IDE: Bidh mi a 'cleachdadh , ach san fharsaingeachd tha iad . Ma chleachdas tu Atelier, tha plugan Eclipse ann airson luchd-leasachaidh Python. Ma tha thu a’ cleachdadh Còd VS, tha leudachadh ann airson Python.
- Leabhar-nota: An àite IDE, faodaidh tu na sgriobtaichean agad a sgrìobhadh agus a cho-roinn ann an leabhraichean notaichean air-loidhne. Is e am fear as mòr-chòrdte dhiubh .
Leabharlannan
Seo liosta (neo-iomlan) de leabharlannan ionnsachadh innealan:
- - pasgan bunaiteach airson àireamhachadh mionaideach.
- - structaran dàta àrd-choileanaidh agus innealan sgrùdaidh dàta.
- - cruthachadh grafaichean.
- - fradharc dàta stèidhichte air matplotlib.
- - dòighean ionnsachaidh inneal.
- - algorithms ionnsachadh innealan taobh a-staigh frèam modh-obrach àrdachadh caisead.
- —NLP.
- - lìonraidhean neural.
- - àrd-ùrlar airson modalan ionnsachaidh inneal a chruthachadh.
- na àrd-ùrlar airson modalan ionnsachaidh inneal a chruthachadh, le fòcas air Python.
- - PMML bho dhiofar mhodalan.
Tha teicneòlasan AI/ML a’ dèanamh gnìomhachas nas èifeachdaiche agus nas sùbailte. A bharrachd air an sin, an-diugh tha na teicneòlasan sin a’ fàs nas fhasa a leasachadh agus a bhuileachadh. Tòisich ag ionnsachadh mu theicneòlasan AI / ML agus mar as urrainn dhaibh do bhuidheann a chuideachadh gus fàs.
suidheachadh
Tha grunn dhòighean ann air Python Gateway a stàladh agus a chleachdadh:
- OS
- Windows
- Linux
- Mac
- Docker
- Cleachd dealbh bho DockerHub
- Cruthaich do shealladh fhèin
Ge bith dè an dòigh stàlaidh, feumaidh tu an còd stòr. Is e an aon àite airson an còd a luchdachadh sìos . Tha fiosan seasmhach deuchainn ann, dìreach gabh am fear as ùire. Aig an àm seo tha e 0.8, ach thar ùine bidh feadhainn ùra ann. Na dèan clonadh/luchdaich sìos an stòr-tasgaidh, luchdaich sìos am brath as ùire.
OS
Ma tha thu a’ stàladh Python Gateway air siostam-obrachaidh, feumaidh tu Python a stàladh an toiseach (ge bith dè an siostam-obrachaidh). Airson seo:
- . Thathas a’ moladh Python a stàladh san eòlaire bunaiteach.
- Stàlaich am modal
dill:pip install dill. - Luchdaich sìos an còd ObjectScript (i.e.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) gu raon sam bith le bathar. Ma tha thu ag iarraidh raon a tha ann mu thràth airson taic a thoirt do thoraidhean, ruith:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1). - Àite gu pasgan
binan eisimpleir InterSystems IRIS agad. Feumaidh faidhle an leabharlainn a bhith ri fhaighinn san t-slighe air aiswrite ##class(isc.py.Callout).GetLib().
Windows
- Dèan cinnteach gu bheil an àrainneachd caochlaideach
PYTHONHOMEpuingean gu Python 3.6.7. - Dèan cinnteach gu bheil caochladair àrainneachd an t-siostaim
PATHtha caochladair annPYTHONHOME(no an eòlaire air a bheil e a’ comharrachadh).
Linux (Debian/Ubuntu)
- Dèan cinnteach gu bheil an caochladair àrainneachd
PATHtha ann/usr/libи/usr/lib/x86_64-linux-gnu. Cleachd faidhle/etc/environmentgus caochladairean àrainneachd a shuidheachadh. - Ann an cùis mhearachdan
undefined symbol: _Py_TrueStructsuidhich an suidheachadhPythonLib. cuideachd ann an tha earrann Fuasgladh dhuilgheadasan ann.
Mac
- An-dràsta chan eil ach Python 3.6.7 a’ faighinn taic . Thoir sùil air a’ chaochladair
PATH.
Ma dh’ atharraich thu caochladairean àrainneachd, ath-thòisich an toradh InterSystems agad.
Docker
Tha grunn bhuannachdan aig cleachdadh soithichean:
- So-ghiùlain
- Èifeachdas
- Insulation
- Aotromachd
- Neo-sheasmhachd
Feuch seo airson tuilleadh fiosrachaidh mu bhith a’ cleachdadh Docker le toraidhean InterSystems.
Tha a h-uile togalach Python Gateway an-dràsta stèidhichte air soithichean 2019.4.
Dealbh deiseil
Ruith: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestgus Python Gateway a luchdachadh sìos agus a ruith le InterSystems IRIS Community Edition. Sin e.
Cruthaich do shealladh fhèin
Gus ìomhaigh docker a thogail, ruith ann am freumh an stòr: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Gu gnàthach, tha an ìomhaigh air a thogail stèidhichte air an ìomhaigh store/intersystems/iris-community:2019.4.0.383.0, ach faodaidh tu seo atharrachadh le bhith a 'suidheachadh caochladair IMAGE.
Gus togail bho InterSystems IRIS, ruith: `docker build --build-arg IMAGE=store/intersystems/iris: 2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest".
Às deidh seo faodaidh tu an ìomhaigh docker a ruith:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.keyMa tha thu a’ cleachdadh ìomhaigh stèidhichte air InterSystems IRIS Community Edition, faodaidh tu an iuchair fhàgail air falbh.
beachdan
- Pròiseas deuchainn
isc.py.test.Processa’ sàbhaladh grunn dhealbhan gu eòlaire sealach. Is dòcha gum bi thu airson an t-slighe seo atharrachadh dhan eòlaire air a chuir suas. Gus seo a dhèanamh, deasaich an suidheachadhWorkingDira' sònrachadh an eòlaire suidhichte. - Gus faighinn gu ruith Terminal:
docker exec -it irispy sh. - Cothrom air an t-Siostam Riaghlaidh Portal le logadh a-steach
SuperUser/SYS. - Gus stad a chur air a 'ghobhar, ruith:
docker stop irispy && docker rm --force irispy.
A 'dearbhadh an stàladh
Aon uair ‘s gu bheil thu air Python Gateway a chuir a-steach, is fhiach dèanamh cinnteach gu bheil e ag obair. Cuir an gnìomh a’ chòd seo anns a’ chrìoch InterSystems IRIS:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write varBu chòir an toradh a bhith: HELLO - luach caochlaideach Python x. Ma tha an inbhe tilleadh sc 's e mearachd no var falamh, seic .
API
Tha Python Gateway air a chuir a-steach agus tha thu air dearbhadh gu bheil e ag obair. Tha an t-àm ann tòiseachadh air a chleachdadh!
Is e am prìomh eadar-aghaidh airson Python isc.py.Main. Tha e a’ tabhann na buidhnean de dhòighean a leanas (tilleadh uile %Status):
- Cur an gnìomh Còd
- Transrachadh dàta
- Auxiliary
Cur an gnìomh Còd
Leigidh na modhan sin leat còd Python neo-riaghailteach a chuir an gnìomh.
Sreath sìmplidh
SimpleString - is e seo am prìomh dhòigh. Feumaidh e 4 argamaidean roghainneil:
code- loidhne còd ri chur an gnìomh. Caractar biadhaidh loidhne:$c(10).returnVariable- ainm a’ chaochladair ri thilleadh.serialization- mar a nì thu sreathachadhreturnVariable. 0 - sreang (àbhaisteach), 1 - ath-aithris.result— Iomradh ByRef air a’ chaochladair anns a bheil an luach sgrìobhtereturnVariable.
Gu h-àrd rinn sinn:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).San eisimpleir seo, bidh sinn a’ sònrachadh caochladair Python x ciallachadh Hello agus ag iarraidh luach caochladair Python a thilleadh x gu caochladair ObjectScript var.
Còd a chur an gnìomh
Tha ExecuteCode na roghainn eile nas sàbhailte agus nach eil cho cuingealaichte SimpleString.
Tha loidhnichean anns an àrd-ùrlar InterSystems IRIS cuingealaichte ri 3 caractar, agus ma tha thu airson pìos còd nas fhaide a chuir an gnìomh, feumaidh tu snàithleanan a chleachdadh.
Thathas a’ gabhail ri dà argamaid:
code- loidhne no sruth de chòd Python ri chur an gnìomh.variable- (roghainneil) a 'sònrachadh toradh cur gu bàscodean caochladair Python seo.
Eisimpleir airson a chleachdadh:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").San eisimpleir seo, bidh sinn ag iomadachadh 2 le 3 agus a’ sgrìobhadh an toradh gu caochladair Python y.
Transrachadh dàta
Cuir seachad dàta gu agus bho Python.
Python -> InterSystems IRIS
Tha dòighean 4 ann airson luach caochladair Python fhaighinn ann an InterSystems IRIS, a rèir an t-sreathachadh a dh’ fheumas tu:
Stringairson seòrsachan dàta sìmplidh agus debugging.Reprairson rudan sìmplidh a stòradh agus dì-bhugachadh.JSONairson làimhseachadh dàta furasta air taobh InterSystems IRIS.Pickleairson rudan a shàbhaladh.
Leigidh na modhan sin leat caochladairean fhaighinn air ais bho Python mar shreang no sruthan.
GetVariable(variable, serialization, .stream, useString)- faighserializationcaochlaideachvariableвstream. Ma thauseStringis 1 agus tha an t-sreathachadh air a chuir air sreang, an uairsin thèid sreang a thilleadh agus chan e sruth.GetVariableJson(variable, .stream, useString)- faigh sreathachadh JSON de chaochladair.GetVariablePickle(variable, .stream, useString, useDill)- faigh sreathadh Pickle (no Dill) de chaochladair.
Feuchaidh sinn ri ar caochladair fhaighinn y.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6InterSystems IRIS -> Python
A’ luchdachadh dàta bho InterSystems IRIS gu Python.
ExecuteQuery(query, variable, type, namespace)- a’ cruthachadh stòr-dàta (pandasdataframenolist) bhon cheist sql agus ga shuidheachadh gu caochladair Pythonvariable. Poca plastaigisc.pyfeumaidh a bhith ri fhaighinn san sgìrenamespace- thèid an t-iarrtas a chuir an gnìomh an sin.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)- a’ luchdachadh dàta cruinneglobalbho fho-sgrìobhadhstartguendann am Python mar chaochladair seòrsatype:list, no pandathandataframe. Tuairisgeul air argamaidean roghainneilmaskaguslabelsri fhaighinn ann an sgrìobhainnean clas agus stòr .ExecuteClass(class, variable, type, start, end, properties, namespace)- a’ luchdachadh dàta clasclassbho idstartguendann am Python mar chaochladair seòrsatype:list, no pandathandataframe.properties- liosta (air a sgaradh le cromag) de fheartan clas a dh’ fheumar a luchdachadh a-steach don t-seata dàta. Masgaichean le taic*и?. bunaiteach -*(gach seilbh). Seilbh%%CLASSNAMEair an dearmad.ExecuteTable(table, variable, type, start, end, properties, namespace)- a 'luchdachadh dàta clàrtablebho idstartguendann am Python.
ExecuteQuery - uile-choitcheann (thèid ceist SQL ceart sam bith a chuir gu Python). Ach, ExecuteGlobal agus a luchd-gleidhidh ExecuteClass и ExecuteTable obrachadh le grunn chuingealachaidhean. Tha iad tòrr nas luaithe (3-5 tursan nas luaithe na an draibhear ODBC agus 20 tursan nas luaithe ExecuteQuery). Tuilleadh fiosrachaidh aig .
Bidh na dòighean sin uile a’ toirt taic do ghluasad dàta bho raon sam bith. Poca plastaig isc.py feumaidh a bhith ri fhaighinn san raon targaid.
Cuir an gnìomh Ceist
ExecuteQuery(request, variable, type, namespace) - a’ gluasad toraidhean ceist SQL ceart gu Python. Is e seo an dòigh gluasad dàta as slaodaiche. Cleachd e ma tha ExecuteGlobal agus chan eil a luchd-gleidhidh rim faighinn.
Argumaidean:
query- ceist sql.variable- ainm an caochladair Python anns a bheil an dàta sgrìobhte.type-listno Pandasdataframe.namespace- an raon anns an tèid an t-iarrtas a chur an gnìomh.
Cur an gnìomh Global
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - a’ dol seachad air cruinne ann am Python.
Argumaidean:
global- ainm cruinne gun^variable- ainm an caochladair Python anns a bheil an dàta sgrìobhte.type-listno Pandasdataframe.start- a’ chiad fho-sgrìobhadh den t-saoghal. Gu feum%Integer.end- an fho-sgrìobhadh mu dheireadh den t-saoghal. Gu feum%Integer.mask- masg luach cruinneil. Faodaidh am masg a bhith nas giorra na an àireamh de raointean air feadh na cruinne (anns an t-suidheachadh sin thèid na raointean aig an deireadh a leum). Mar a chuireas tu cruth air masg:+cuir seachad an luach mar a tha.-skip luach.b- seòrsa Boolean (0-False, an còrr -True).d- Ceann-latha (bho $ horolog, air Windows bho 1970, air Linux bho 1900).t- Ùine ($ horolog, diogan às deidh meadhan oidhche).m- Stampa-ama (sreang cruth BLIADHNA-MÌOS-LATHA UAIR: GEÀRR-CHUNNTAS: DARA).
labels— % Liosta ainmean nan colbhan. Is e a’ chiad eileamaid ainm an fho-sgrìobhaidh.namespace- an raon anns an tèid an t-iarrtas a chur an gnìomh.
Clas a chur gu bàs
Còmhdaich thairis ExecuteGlobal. Stèidhichte air mìneachadh a 'chlas, ag ullachadh gairm ExecuteGlobal agus ga ghairm.
ExecuteClass(class, variable, type, start, end, properties, namespace) - a’ dol seachad air dàta clas ann am Python.
Argumaidean:
class- ainm clasvariable- ainm an caochladair Python anns a bheil an dàta sgrìobhte.type-listno Pandasdataframe.start- ID tòiseachaidh.end— Id deireannachproperties- liosta (air a sgaradh le cromag) de fheartan clas a dh’ fheumar a luchdachadh a-steach don t-seata dàta. Masgaichean le taic*и?. bunaiteach -*(gach seilbh). Seilbh%%CLASSNAMEair an dearmad.namespace- an raon anns an tèid an t-iarrtas a chur an gnìomh.
Thèid a h-uile seilbh seachad mar a tha ach a-mhàin togalaichean seòrsa %Date, %Time, %Boolean и %TimeStamp - tha iad air an tionndadh gu na clasaichean Python co-fhreagarrach.
Clàr-gnìomha
Còmhdaich thairis ExecuteClass. Ag eadar-theangachadh ainm a’ chlàir gu ainm a’ chlas agus fiosan ExecuteClass. Ainm-sgrìobhte:
ExecuteTable(table, variable, type, start, end, properties, namespace) - a’ toirt seachad dàta bùird gu Python.
Argumaidean:
table- ainm clàr.
Tha a h-uile argamaid eile air a dhol seachad mar a thaExecuteClass.
Notaichean
ExecuteGlobal,ExecuteClassиExecuteTableobraich a cheart cho luath.ExecuteGlobal20 tursan nas luaithe naExecuteQueryair seataichean dàta mòra (ùine gluasaid> 0.01 diogan).ExecuteGlobal,ExecuteClassиExecuteTableobair air cruinne-cè leis an structar seo:^global(key) = $lb(prop1, prop2, ..., propN)far a bheilkey- iomlanachd.- airson
ExecuteGlobal,ExecuteClassиExecuteTableraon de luachan le taic%Datea 'freagairt ris an raonmktimeagus tha e an urra ris an OS (meud: 1970-01-01, 1900-01-01, ). Cleachd%TimeStampgus dàta a ghluasad taobh a-muigh an raoin seo no cleachd pandas dataframe oir is e cuingealachadh liosta a-mhàin a tha seo. - airson
ExecuteGlobal,ExecuteClassиExecuteTabletha a h-uile argamaid ach a-mhàin an stòr dàta (cruinneil, clas no clàr) agus caochlaideach roghainneil.
eisimpleirean
Clas deuchainn tha dòigh ann a sheallas a h-uile roghainn gluasad dàta:
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)Call an dòigh-obrach do ##class(isc.py.test.Person).Test() gus faicinn mar a tha a h-uile modh gluasad dàta ag obair.
Dòighean cuideachaidh
GetVariableInfo(variable, serialization, .defined, .type, .length)- faigh fiosrachadh mun chaochladair: ge bith a bheil e air a mhìneachadh, a chlas agus fad sreathachaidh.GetVariableDefined(variable, .defined)- a bheil an caochladair air a mhìneachadh.GetVariableType(variable, .type)- faigh clas an caochlaideach.GetStatus()- faigh agus thoir air falbh an eisgeachd mu dheireadh air taobh Python.GetModuleInfo(module, .imported, .alias)- faigh inbhe caochlaideach modal agus in-mhalairt.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)- faigh fiosrachadh mun ghnìomh.
Eadar-obrachaidh
Tha thu air ionnsachadh mar a chuireas tu fios gu Python Gateway bhon cheann-uidhe, a-nis tòisichidh sinn ga chleachdadh ann an riochdachadh. Is e am bunait airson eadar-obrachadh le Python sa mhodh seo isc.py.ens.Operation. Tha e a’ leigeil leinn:
- Cuir an gnìomh còd ann am Python
- Sàbhail / thoir air ais co-theacsa Python
- Luchdaich agus faigh dàta bho Python
Gu bunaiteach, tha gnìomhachd Python na chòmhdach thairis isc.py.Main. Obrachaidh isc.py.ens.Operation a’ toirt seachad comas eadar-obrachadh le pròiseas Python bho thoraidhean InterSystems IRIS. Tha còig ceistean a’ faighinn taic:
isc.py.msg.ExecutionRequestgus còd Python a chuir an gnìomh. Tilleadhisc.py.msg.ExecutionResponseleis an toradh cur gu bàs agus luachan nan caochladairean a chaidh iarraidh.isc.py.msg.StreamExecutionRequestgus còd Python a chuir an gnìomh. Tilleadhisc.py.msg.StreamExecutionResponsetoradh coileanadh agus luachan nan caochladairean a chaidh iarraidh. Analogisc.py.msg.ExecutionRequest, ach a’ gabhail ri agus a’ tilleadh sruthan an àite sreangan.isc.py.msg.QueryRequestgus toradh cur an gnìomh ceist SQL a thar-chuir. TilleadhEns.Response.isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequestairson a bhith a’ dol seachad air dàta cruinne/clas/clàir. TilleadhEns.Response.isc.py.msg.SaveRequestgus co-theacs Python a shàbhaladh. TilleadhEns.StringResponsele ID co-theacsa.isc.py.msg.RestoreRequestgus co-theacs Python a thoirt air ais.A bharrachd air sin,
isc.py.ens.Operationtha dà shuidheachadh ann:Initializer- a’ taghadh clas a chuireas an eadar-aghaidh an gnìomhisc.py.init.Abstract. Faodar a chleachdadh airson gnìomhan, modalan, clasaichean, msaa a luchdachadh. Tha e air a chur an gnìomh aon uair nuair a thòisicheas am pròiseas.PythonLib- (Linux a-mhàin) ma chì thu mearachdan nuair a bhios tu a’ luchdachadh, suidhich a luach gulibpython3.6m.sono eadhon anns an t-slighe slàn gu leabharlann Python.
Cruthachadh pròiseasan gnìomhachais
Tha dà chlas ann a chuidicheas le bhith a’ leasachadh phròiseasan gnìomhachais:
isc.py.ens.ProcessUtilsa’ leigeil leat notaichean a tharraing à gnìomhan le ionadachadh caochlaideach.isc.py.util.BPEmulatorga dhèanamh furasta pròiseasan gnìomhachais a dhearbhadh le Python. Faodaidh e pròiseas gnìomhachais (pàirtean Python) a chuir an gnìomh sa phròiseas gnàthach.
Ionadail caochlaideach
A h-uile pròiseas gnìomhachais a thàinig bho isc.py.ens.ProcessUtils, is urrainn am modh a chleachdadh GetAnnotation(name) gus luach nota gnìomhachd fhaighinn leis an ainm. Faodaidh caochladairean a bhith anns an nota gnìomhachd a thèid a thomhas air taobh InterSystems IRIS mus tèid a chuir gu Python. Seo an co-chòrdadh airson ionadachadh caochlaideach:
${class:method:arg1:...:argN}- gairm modh#{expr}- cuir an gnìomh còd ann an cànan ObjectScript.
Tha eisimpleir ri fhaighinn anns a 'phròiseas gnìomhachais deuchainn isc.py.test.Process, mar eisimpleir, ann an gnìomhachd Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Anns an eisimpleir seo:
#{process.WorkDirectory}a’ tilleadh seilbh WorkDirectory an nìprocess, a tha na eisimpleir den chlasisc.py.test.Processiadsan. pròiseas gnìomhachais làithreach.${%PopulateUtils:Integer:1:100}gairm modhIntegerclas%PopulateUtils, argamaidean a’ dol seachad1и100, a 'tilleadh àireamhair air thuaiream san raon1...100.
Dèan deuchainn air pròiseas gnìomhachais
Tha toraidhean deuchainn agus pròiseasan gnìomhachais deuchainn rim faighinn gu bunaiteach mar phàirt de Gateway Python. Airson an cleachdadh:
- Ann an ceann-uidhe an OS, ruith:
pip install pandas matplotlib seaborn. - Ann an ceann-uidhe InterSystems IRIS, ruith:
do ##class(isc.py.test.CannibalizationData).Import()gus dàta deuchainn a lìonadh. - Cur air bhog bathar
isc.py.test.Production. - Cuir an seòrsa iarrtas
Ens.Requestвisc.py.test.Process.
Chì sinn mar a tha e uile ag obair còmhla. Fosgailte isc.py.test.Process ann an deasaiche BPL:

Cur an gnìomh Còd
Is e an dùbhlan as cudromaiche còd Python a chuir an gnìomh:

Ceist air a chleachdadh isc.py.msg.ExecutionRequest, seo na feartan aige:
Code- Còd Python.SeparateLines- am bu chòir an còd a roinn ann an loidhnichean airson a chuir gu bàs.$c(10)(n) air a chleachdadh airson sreangan a sgaradh. Thoir an aire nach eilear a’ moladh an teachdaireachd gu lèir a phròiseasadh aig an aon àm, chan eil an gnìomh seo ach airson a phròiseasadhdefagus abairtean ioma-loidhne coltach ris. Deònach0.Variables- liosta de chaochladairean le cromag a thèid a chur ris an fhreagairt.Serialization- Mar a nì thu sreath de na caochladairean a tha sinn airson a thilleadh. Roghainnean:Str,Repr,JSON,PickleиDill, bunaiteachStr.
Anns a 'chùis againn, cha bhith sinn a' suidheachadh ach an t-seilbh Code, mar sin bidh a h-uile seilbh eile a’ cleachdadh nan luachan bunaiteach. Shuidhich sinn e le bhith a 'gairm process.GetAnnotation("Import pandas"), a thilleas aig àm ruith nota às deidh ionadachadh caochlaideach a dhèanamh. Às dèidh na h-uile, an còd import pandas as pd thèid a thoirt gu Python. GetAnnotation dh’ fhaodadh gum biodh e feumail airson sgriobtaichean Python ioma-loidhne fhaighinn, ach chan eil bacadh sam bith air an dòigh seo air còd fhaighinn. Faodaidh tu an t-seilbh a shuidheachadh Code ann an dòigh sam bith a tha iomchaidh dhut.
A' faighinn caochlaidhean
Dùbhlan inntinneach eile a 'cleachdadh isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Bidh e a’ tomhas a’ Mhatrix Co-dhàimh air taobh Python agus a’ toirt a-mach an caochladair corrmat air ais gu InterSystems IRIS ann an cruth JSON le bhith a’ suidheachadh feartan an iarrtais:
Variables:"corrmat"Serialization:"JSON"
Chì sinn na toraidhean ann an Visual Trace:

Agus ma tha feum againn air an luach seo anns a’ BP, gheibh sinn e mar seo: callresponse.Variables.GetAt("corrmat").
Transrachadh dàta
An ath rud, bruidhnidh sinn mu bhith a’ gluasad dàta bho InterSystems IRIS gu Python; bidh a h-uile iarrtas airson gluasad dàta a’ cur an eadar-aghaidh an gnìomh isc.py.msg.DataRequesta tha a 'toirt seachad na feartan a leanas:
Variable- caochladair Python anns a bheil dàta air a sgrìobhadh.Type- seòrsa caochlaideach:dataframe(frèam dàta pandathan) nolist.Namespace- an raon bhon a gheibh sinn dàta. Poca plastaigisc.pybu chòir a bhith ri fhaighinn san raon seo. Faodaidh seo a bhith na raon gun taic toraidh.
Stèidhichte air an eadar-aghaidh seo, tha 4 clasaichean iarrtasan air an cur an gnìomh:
isc.py.msg.QueryRequest- suidhich an t-seilbhQuerygus ceist SQL a chuir.isc.py.msg.ClassRequest- suidhich an t-seilbhClassgus dàta clas a thoirt seachad.isc.py.msg.TableRequest- seilbh stèidhichteTablegus dàta clàr a ghluasad.isc.py.msg.GlobalRequest- seilbh stèidhichteGlobalairson gluasad dàta cruinneil.
Anns a 'phròiseas deuchainn, thoir sùil air a' ghnìomhachd RAWcàite isc.py.msg.QueryRequest air a thaisbeanadh ann an gnìomh.

Sàbhaladh/Ath-nuadhachadh Co-theacsa Python
Mu dheireadh, is urrainn dhuinn an co-theacsa Python a shàbhaladh ann an InterSystems IRIS, gus seo a dhèanamh cuiridh sinn isc.py.msg.SaveRequest le argamaidean:
Mask- Chan eil ach caochladairean a tha a rèir an masg air an sàbhaladh. Le taic*и?. Eisimpleir:"Data*, Figure?". Deònach*.MaxLength- An fhad as motha den chaochladair a chaidh a stòradh. Ma tha sreathachadh caochladair nas fhaide, thèid a leigeil seachad. Suidhich gu 0 gus caochladairean de dh'fhaid sam bith fhaighinn. Deònach$$$MaxStringLength.Name- Ainm co-theacsa (roghainneil).Description- Tuairisgeul air a’ cho-theacsa (roghainneil).
Tilleadh Ens.StringResponse с Id co-theacs air a shàbhaladh. Anns a 'phròiseas deuchainn, thoir sùil air a' ghnìomhachd Save Context.
Iarrtas co-cheangailte isc.py.msg.RestoreRequest luchdaich co-theacsa bho InterSystems IRIS gu Python:
ContextId- aithnichear co-theacsa.Clear- soilleir an co-theacsa mus ath-nuadhachadh.
Leabhar-nota Jupyter
na aplacaid lìn le còd fosgailte a leigeas leat leabhraichean notaichean a chruthachadh agus fhoillseachadh anns a bheil còd, ìomhaighean agus teacsa. Leigidh Python Gateway leat pròiseasan BPL fhaicinn agus a dheasachadh ann an cruth Leabhar-nota Jupyter. Thoir an aire gu bheil an neach-tiomnaidh Python 3 àbhaisteach ga chleachdadh an-dràsta.
Tha an leudachadh seo a’ gabhail ris gu bheil còd Python ann an notaichean agus a’ cleachdadh ainmean gnìomhachd mar thiotalan roimhe. Tha e comasach a-nis pròiseasan gnìomhachais PythonGateway a leasachadh ann an Jupyter Notebook. Seo na tha comasach:
- Cruthaich pròiseasan gnìomhachais ùra
- Sguab às pròiseasan gnìomhachais
- Cruthaich gnìomhan ùra
- Atharraich gnìomhan
- Sguab às gnìomhan
an seo . Agus beagan dhealbhan-sgrìn:
Explorer pròiseas

Deasaiche phròiseas

suidheachadh
- Feumaidh tu InterSystems IRIS 2019.2+.
- Stàlaich PythonGateway v0.8+ (feumar a-mhàin
isc.py.util.Jupyter,isc.py.util.JupyterCheckpointsиisc.py.ens.ProcessUtils). - Ùraich an còd ObjectScript bhon stòr.
- Ruith
do ##class(isc.py.util.Jupyter).Install()agus lean na molaidhean.
.
toraidhean
Is e seata innealan a th’ ann am MLToolkit a tha ag amas air modalan agus àrainneachd gnìomhachd a chur còmhla gus am bi e furasta na modalan togte a chleachdadh gu dìreach anns na pròiseasan gnìomhachais agad. Tha Python Gateway mar phàirt de MLToolkit agus a’ toirt seachad aonachadh leis a’ chànan Python, a’ toirt cothrom dhut algorithms ionnsachadh inneal sam bith a chaidh a chruthachadh ann am Python (am prìomh àrainneachd airson mòran de luchd-saidheans dàta) a chuir air dòigh), grunn leabharlannan deiseil a chleachdadh gus AI / anailis robotach atharrachail a chruthachadh gu luath. Fuasglaidhean ML air àrd-ùrlar InterSystems IRIS.
iomraidhean
MLToolkit
Tha am buidheann luchd-cleachdaidh MLToolkit na ionad-tasgaidh prìobhaideach GitHub a chaidh a chruthachadh mar phàirt de bhuidheann corporra InterSystems GitHub. Tha e airson luchd-cleachdaidh bhon taobh a-muigh a bhios a’ stàladh, ag ionnsachadh, no a’ cleachdadh co-phàirtean MLToolkit mu thràth, a’ toirt a-steach Geata Python. Tha grunn chùisean gnìomhaichte aig a’ bhuidheann (le còd stòr agus dàta deuchainn) ann an raointean margaidheachd, saothrachadh, cungaidh-leigheis agus mòran ghnìomhachasan eile. Airson ballrachd a thoirt do Bhuidheann Luchd-cleachdaidh ML Toolkit, feuch an cuir thu post-d goirid chun t-seòladh a leanas: agus cuir a-steach am fiosrachadh a leanas nad litir:
- Ainm-cleachdaidh GitHub
- Eagrachadh (tha thu ag obair no ag ionnsachadh)
- Dreuchd (an fhìor shuidheachadh agad sa bhuidheann agad, an dàrna cuid “Oileanach” no “Neo-eisimeileach”).
- dùthaich
Dhaibhsan a tha air an artaigil a leughadh agus aig a bheil ùidh ann an comasan InterSystems IRIS mar àrd-ùrlar airson a bhith a’ leasachadh no a’ toirt aoigheachd do inntleachd fuadain agus einnseanan ionnsachaidh innealan, tha sinn a’ toirt cuireadh dhut beachdachadh air suidheachaidhean a dh’ fhaodadh a bhith inntinneach don iomairt agad. Bidh sinn toilichte mion-sgrùdadh a dhèanamh air feumalachdan a’ chompanaidh agad agus plana gnìomh a cho-dhùnadh; Cuir fios gu seòladh puist-d ar sgioba eòlaichean AI/ML - .
Source: www.habr.com
