Geata Python ag InterSystems IRIS

Baineann an t-alt seo le Python Gateway, tionscadal pobail foinse oscailte don ardán sonraí InterSystems IRIS. Ligeann an tionscadal seo duit aon halgartaim meaisínfhoghlama a chruthaítear i Python (an príomhthimpeallacht do go leor Eolaithe Sonraí) a cheolfhoireann, úsáid a bhaint as go leor leabharlann réidh chun réitigh oiriúnaitheacha, robotic AI / ML anailíseacha a chruthú go tapa ar an ardán IRIS InterSystems. San Airteagal seo, taispeánfaidh mé duit conas is féidir le InterSystems IRIS próisis Python a stiúradh, aistriú sonraí dhá bhealach éifeachtach a dhéanamh, agus próisis ghnó cliste a chruthú.

Plean

  1. Réamhrá
  2. Uirlisí.
  3. Suiteáil.
  4. API.
  5. Idir-inoibritheacht.
  6. Leabhar nótaí Iúpatar.
  7. Conclúidí.
  8. Naisc.
  9. Foireann uirlisí M.L.

Réamhrá

Is teanga ríomhchlárúcháin ardleibhéil ilfheidhmeach é Python atá dírithe ar tháirgiúlacht fhorbróra agus inléiteacht cóid a fheabhsú. Sa tsraith alt seo, labhróidh mé faoi na féidearthachtaí a bhaineann le húsáid na teanga Python ar an ardán InterSystems IRIS, agus is é príomhfhócas an ailt seo úsáid Python mar theanga chun samhlacha meaisínfhoghlama a chruthú agus a chur i bhfeidhm.

Is éard atá i bhfoghlaim meaisín (ML) aicme modhanna hintleachta saorga, nach é an ghné shainiúil atá ann ná réiteach díreach na faidhbe, ach foghlaim sa phróiseas chun go leor fadhbanna den chineál céanna a réiteach.

Tá halgartaim agus samhlacha meaisínfhoghlama ag éirí níos coitianta. Tá go leor cúiseanna leis seo, ach baineann sé go léir le hinrochtaineacht, simplíocht, agus torthaí praiticiúla a bhaint amach. An teicneolaíocht nua é cnuasú nó fiú líonra néarúil a shamhaltú?

Ar ndóigh ní, ach sa lá atá inniu níl aon ghá leis na céadta mílte línte cód a scríobh chun múnla amháin a rith, agus tá na costais a bhaineann le samhlacha a chruthú agus a úsáid ag dul i laghad agus níos lú.

Tá uirlisí ag teacht chun cinn - cé nach bhfuil uirlisí AI/ML atá dírithe go hiomlán ar GUI againn, tá an dul chun cinn atá feicthe againn le go leor aicmí eile de chórais faisnéise cosúil le BI (ó chód a scríobh go creataí agus réitigh inchumraithe atá dírithe ar GUI) le feiceáil freisin. in uirlisí cruthú AI/ML. Táimid tar éis dul thar céim na scríbhneoireachta cód cheana féin agus inniu úsáidimid creataí chun samhlacha tógála agus oiliúna.

Feabhsuithe eile, ar nós an cumas chun samhail réamhoilte a iomadú nuair nach mór don úsáideoir deiridh ach oiliúint a chur ar an tsamhail ar a sonraí sonracha, a fhágann go mbeidh sé níos éasca tús a chur le foghlaim meaisín a chur i bhfeidhm. Fágann na dul chun cinn seo go bhfuil sé i bhfad níos éasca meaisínfhoghlaim a fhoghlaim, do dhaoine gairmiúla agus do chuideachtaí ina n-iomláine.

Ar an láimh eile, bailímid níos mó agus níos mó sonraí. Le ardán sonraí aontaithe ar nós InterSystems IRIS, is féidir an fhaisnéis seo go léir a ullmhú láithreach agus a úsáid mar ionchur do mhúnlaí meaisínfhoghlama.

Leis an aistriú go dtí an scamall, tá sé níos éasca ná riamh tionscadail AI/ML a sheoladh. Ní féidir linn ach na hacmhainní a theastaíonn uainn a ithe. Thairis sin, a bhuíochas leis an gcomhthreomhaireacht a thairgeann ardáin scamall, is féidir linn am amú a shábháil.

Ach cad faoi thorthaí? Seo nuair a éiríonn rudaí níos casta. Tá go leor uirlisí ann chun samhlacha a thógáil, a phléifidh mé seo chugainn. Níl sé éasca múnla maith a thógáil, ach cad eile? Is tasc neamhfhánach freisin é brabús a bhaint as úsáid na samhla ag gnó. Is é bun na faidhbe scaradh ualaí oibre anailíseacha agus idirbheartaíochta agus samhlacha sonraí. Nuair a dhéanaimid oiliúint ar mhúnla, de ghnáth déanaimid é ar shonraí stairiúla. Ach tá an áit don mhúnla tógtha i bpróiseáil sonraí idirbheartaíochta. Cén mhaith é an tsamhail braite idirbheart calaoiseach is fearr má rithimid é uair amháin sa lá? Is fada ó d’imigh na scamadóirí leis an airgead. Ní mór dúinn an tsamhail a oiliúint ar shonraí stairiúla, ach ní mór dúinn freisin é a chur i bhfeidhm i bhfíor-am ar shonraí nua atá ag teacht isteach ionas gur féidir lenár bpróisis ghnó gníomhú de réir na réamh-mheastacháin a dhéanann an tsamhail.

Is foireann uirlisí é ML Toolkit a dhéanann an méid seo a leanas: samhlacha a thabhairt le chéile agus timpeallacht idirbheartaíochta ionas gur féidir na samhlacha a thógann tú a úsáid go díreach go díreach i do phróisis ghnó. Tá Python Gateway mar chuid den Fhoireann Uirlisí ML agus soláthraíonn sé comhtháthú leis an dteanga Python (cosúil le R Gateway, toisc go bhfuil sé mar chuid den Fhoireann Uirlisí ML soláthraíonn sé comhtháthú leis an teanga R).

Foireann Uirlisí

Sula leanfaimid ar aghaidh, ba mhaith liom cur síos a dhéanamh ar roinnt uirlisí agus leabharlanna Python a bheidh á n-úsáid againn níos déanaí.

Teicneolaíocht

  • Is teanga ríomhchláraithe ardleibhéil ilfheidhme é Python. Is é príomhbhuntáiste na teanga leabharlann mhór de leabharlanna matamaitice, ML agus AI. Cosúil le ObjectScript, is teanga atá dírithe ar oibiachtaí í, ach sainmhínítear gach rud go dinimiciúil, ní go statach. Chomh maith leis sin is rud é gach rud. Glacann altanna níos deireanaí leis go bhfuil cur amach ar an teanga ag dul thar fóir. Más mian leat tosú ag foghlaim, molaim tosú le doiciméadú.
  • Le haghaidh ár cleachtaí seo chugainn, a leagtar Python 3.6.7 64 giotán.
  • IDE: Úsáidim PyCharm, ach go ginearálta много. Má tá Atelier á úsáid agat, tá breiseán Eclipse ann d’fhorbróirí Python. Má tá Cód VS á úsáid agat, tá síneadh ann do Python.
  • Leabhar nótaí: In ionad IDE, is féidir leat do scripteanna a scríobh agus a roinnt i leabhair nótaí ar líne. Is é an ceann is mó tóir acu Iúpatar.

Leabharlanna

Seo liosta (páirteach) de leabharlanna meaisínfhoghlama:

  • numpy — pacáiste bunúsach le haghaidh ríomhaireachtaí beachta.
  • Pandas — struchtúir sonraí ardfheidhmíochta agus uirlisí anailíse sonraí.
  • matplotlib - Cruthú cairteacha.
  • farraige - léirshamhlú sonraí bunaithe ar matplotlib.
  • Sclábhaí — modhanna meaisínfhoghlama.
  • XGBoost — halgartaim mheaisínfhoghlama laistigh den mhodheolaíocht Treisiú Grádán.
  • Gensim — NLP.
  • Keras - líonraí neural.
  • Sreabhadh teannas is ardán é chun samhlacha meaisínfhoghlama a chruthú.
  • PyTorch Is ardán é chun samhlacha meaisínfhoghlama a chruthú atá dírithe ar Python.
  • Nioca - PMML ó mhúnlaí éagsúla.

Déanann teicneolaíochtaí AI/ML gnó níos éifeachtaí agus níos inoiriúnaithe. Ina theannta sin, inniu tá na teicneolaíochtaí seo ag éirí níos éasca a fhorbairt agus a chur i bhfeidhm. Tosaigh ag foghlaim faoi theicneolaíochtaí AI/ML agus conas is féidir leo cabhrú le d’eagraíocht fás.

Suiteáil

Tá roinnt bealaí ann chun Python Gateway a shuiteáil agus a úsáid:

  • OS
    • Windows
    • Linux
    • poipín
  • dhugaire
    • Bain úsáid as an íomhá ó DockerHub
    • Cruthaigh do íomhá féin

Beag beann ar an modh suiteála, beidh an cód foinse uait. Is é an t-aon áit chun an cód a íoslódáil leathanach eisiúintí. Tá eisiúintí cobhsaí tástálaithe ann, níl le déanamh ach an ceann is déanaí a fháil. Faoi láthair tá sé 0.8, ach le himeacht ama beidh cinn nua. Ná clónáil/íoslódáil an stór, íoslódáil an t-eisiúint is déanaí.

OS

Má tá tú ag suiteáil Python Gateway ar chóras oibriúcháin, ansin ar dtús (beag beann ar an gcóras oibriúcháin) beidh ort Python a shuiteáil. Dó seo:

  1. Suiteáil Python 3.6.7 64-giotán. Moltar Python a shuiteáil sa chomhadlann réamhshocraithe.
  2. Suiteáil an modúl dill: pip install dill.
  3. Íoslódáil an cód ObjectScript (i.e. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) chuig aon limistéar ina bhfuil táirgí. Ar eagla go dteastaíonn uait réimse reatha chun tacú le táirgí, rith: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. Áit glao amach dll/SO/DYLIB chuig fillteán bin do shampla InterSystems IRIS. Caithfidh an comhad leabharlainne a bheith ar fáil sa chosán ar ais ag write ##class(isc.py.Callout).GetLib().

Windows

  1. Déan cinnte go bhfuil an athróg timpeallachta PYTHONHOME pointí go Python 3.6.7.
  2. Déan cinnte go bhfuil athróg timpeallacht an chórais PATH tá athróg PYTHONHOME (nó an t-eolaire a luann sé).

Linux (Debian/Ubuntu)

  1. Seiceáil an bhfuil an athróg timpeallachta PATH/usr/lib и /usr/lib/x86_64-linux-gnu. Úsáid Comhad /etc/environment chun athróga timpeallachta a shocrú.
  2. I gcás earráidí undefined symbol: _Py_TrueStruct socraigh an socrú PythonLib... freisin i EOLAIS tá roinn Fabhtcheartú.

poipín

  1. Faoi láthair ní thacaítear ach le python 3.6.7 ó python.org. Seiceáil Athróg PATH.

Má tá athróga timpeallachta athraithe agat, atosaigh do tháirge InterSystems.

dhugaire

Tá roinnt buntáistí ag baint le coimeádáin a úsáid:

  • Inaistritheacht
  • Éifeachtacht
  • Insliú
  • gile
  • Immutability

Seiceáil amach seo sraith alt le haghaidh tuilleadh eolais ar úsáid a bhaint as Docker le táirgí InterSystems.

Tá gach tógáil Python Gateway bunaithe ar choimeádán faoi láthair. 2019.4.

Íomhá críochnaithe

Rith: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latesta íoslódáil agus a rith Python Gateway le InterSystems IRIS Community Edition. Sin é an méid.

Cruthaigh do íomhá féin

Chun íomhá docker a thógáil, rith i bhfréamh an stór: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
De réir réamhshocraithe, tógtar an íomhá bunaithe ar an íomhá store/intersystems/iris-community:2019.4.0.383.0, áfach, is féidir leat é seo a athrú tríd an athróg a shocrú IMAGE.
Chun tógáil ó rith InterSystems IRIS: `dock build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest'.

Ina dhiaidh sin, is féidir leat an íomhá docker a rith:

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

Má tá íomhá bunaithe ar InterSystems IRIS Community Edition á úsáid agat, ní gá duit eochair a shonrú.

Comments

  • Próiseas Tástála isc.py.test.Process sábhálann sé roinnt íomhánna chuig eolaire sealadach. Seans gur mhaith leat an cosán seo a athrú go eolaire gléasta. Chun seo a dhéanamh, cuir an socrú in eagar WorkingDir ag sonrú an eolaire gléasta.
  • Chun rochtain a fháil ar an teirminéal, rith: docker exec -it irispy sh.
  • Rochtain ar an Tairseach Bainistíochta Córais trí logáil isteach SuperUser/SYS.
  • Chun coimeádán a stopadh, rith: docker stop irispy && docker rm --force irispy.

Seiceáil an tsuiteáil

Nuair a bheidh Python Gateway suiteáilte agat, is fiú a sheiceáil go bhfuil sé ag obair. Rith an cód seo i gcríochfort InterSystems IRIS:

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

Ba chóir go mbeadh an toradh HELLO - luach na hathróige Python x. Má tá an stádas ar ais sc is botún nó var folamh, seiceáil Readme - Rannóg um Fhabhtcheartú.

API

Tá Python Gateway suiteáilte agus tá sé deimhnithe agat go bhfuil sé ag obair. Am chun tosú á úsáid!
Is é an príomh-chomhéadan le Python isc.py.Main. Cuireann sé na grúpaí modhanna seo a leanas ar fáil (go léir ar ais %Status):

  • Cód a fhorghníomhú
  • Aistriú sonraí
  • Cúnta

Cód a fhorghníomhú

Ceadaíonn na modhanna seo duit cód Python treallach a fhorghníomhú.

Simplí String

SimpleString Is é an modh is mó. Tógann sé 4 argóint roghnacha:

  • code Is é an líne cód a fhorghníomhú. Carachtar fotha líne: $c(10).
  • returnVariable is ainm don athróg atá le tabhairt ar ais.
  • serialization - conas a serialize returnVariable. 0 - teaghrán (réamhshocraithe), 1 - repr.
  • result - ByRef tagairt don athróg ina bhfuil an luach scríofa returnVariable.

Thuas rinneamar:

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

Sa sampla seo, táimid ag sannadh do athróg Python x значение Hello agus ag iarraidh luach athróg Python a thabhairt ar ais x chuig athróg ObjectScript var.

Cód Rith

Is rogha eile níos sábháilte agus nach bhfuil chomh sriantach é ExecuteCode SimpleString.
Tá na línte san ardán InterSystems IRIS teoranta do 3 carachtar, agus más mian leat píosa cód níos faide a fhorghníomhú, ní mór duit sruthanna a úsáid.
Bíonn dhá argóint ann:

  • code — teaghrán nó sruth de chód Python le forghníomhú.
  • variable - (roghnach) sannann an toradh a fhorghníomhú code an athróg Python seo.

Mol úsáid a bhaint as:

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

Sa sampla seo, déanaimid 2 a iolrú faoi 3 agus an toradh a stóráil in athróg Python y.

Aistriú sonraí

Sonraí a chur ar aghaidh chuig agus ó Python.

Python -> InterSystems IRIS

Tá 4 bhealach ann chun luach athróg Python a fháil in InterSystems IRIS, ag brath ar an sraithiú a theastaíonn uait:

  • String le haghaidh cineálacha sonraí simplí agus dífhabhtaithe.
  • Repr chun rudaí simplí a stóráil agus dífhabhtaithe.
  • JSON chun sonraí a ionramháil go héasca ar thaobh IRIS InterSystems.
  • Pickle chun rudaí a shábháil.

Ligeann na modhanna seo duit athróga a fháil ó Python mar theaghrán nó mar shruthanna.

  • GetVariable(variable, serialization, .stream, useString) - fháil serialization athróg variable в stream. Dá useString Is é 1 agus cuirtear an sraithiú i sreang, ansin cuirtear sreang ar ais, ní sruth.
  • GetVariableJson(variable, .stream, useString) — faigh sraithiú athróige JSON.
  • GetVariablePickle(variable, .stream, useString, useDill) -Faigh sraithiú Pickle (nó Dill) d'athróg.

Déanaimis iarracht ár n-athróg a fháil y.

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

InterSystems IRIS -> Python

Sonraí á lódáil ó InterSystems IRIS go Python.

  • ExecuteQuery(query, variable, type, namespace) - cruthaíonn sé tacar sonraí (pandas dataframelist) ó cheist sql agus socraigh go hathróg python é variable. Mála plaisteach isc.py ar fáil sa cheantar namespace - déanfar an t-iarratas a fhorghníomhú ansin.
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - lódálann sé sonraí domhanda global ón síntiús start до end i Python mar athróg cineáil type: list, nó pandas dataframe. Cur síos ar argóintí roghnacha mask agus labels ar fáil i ndoiciméadú ranga agus i stór Doiciméid um Aistriú Sonraí.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - lódálann sé sonraí ranga class ó id start до end i Python mar athróg cineáil type: list, nó pandas dataframe. properties — liosta (scartha le camóg) de na hairíonna ranga atá le lódáil isteach sa tacar sonraí. Tacaítear le maisc * и ?. Réamhshocrú - * (gach maoin). Maoin %%CLASSNAME neamhaird.
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - lódálann sé sonraí tábla table ó id start до end i python.

ExecuteQuery - uilíoch (cuirfear aon cheist SQL bhailí ar aghaidh chuig Python). Ach, ExecuteGlobal agus a chuid wraps ExecuteClass и ExecuteTable oibriú le roinnt srianta. Tá siad i bhfad níos tapúla (3-5 huaire níos tapúla ná an tiománaí ODBC agus 20 uair níos tapúla ná ExecuteQuery). Tuilleadh eolais i Doiciméid um Aistriú Sonraí.
Tacaíonn na modhanna seo go léir le haistriú sonraí ó aon réimse. Mála plaisteach isc.py a bheith ar fáil sa sprioclimistéar.

Iarratas Rith

ExecuteQuery(request, variable, type, namespace) - torthaí aon cheiste bailí SQL a chur ar aghaidh chuig Python. Is é seo an modh aistrithe sonraí is moille. Úsáid é más rud é ExecuteGlobal agus níl a chuid cumhdaigh ar fáil.

Argóintí:

  • query - ceist sql.
  • variable - ainm na hathróige Python ina bhfuil na sonraí scríofa.
  • type - list nó pandas dataframe.
  • namespace - an limistéar ina ndéanfar an iarraidh a fhorghníomhú.

Rith Domhanda

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - domhanda a thabhairt do Python.

Argóintí:

  • global is ainm don domhanda gan ^
  • variable - ainm na hathróige Python ina bhfuil na sonraí scríofa.
  • type - list nó pandas dataframe.
  • start — an chéad fhoscríbhinn den chlár domhanda. Gá %Integer.
  • end Is é an síntiús deireanach den domhanda. Gá %Integer.
  • mask — masc na luachanna domhanda. Is féidir leis an masc a bheith níos giorra ná líon na réimsí sa domhan (agus sa chás sin déanfar na réimsí ag an deireadh a scipeáil). Conas an masc a fhormáidiú:
    • + pas a fháil sa luach mar atá.
    • - skip luach.
    • b — cineál Boole (0 - False, an chuid eile go léir - True).
    • d — Dáta (ó $horolog, ar Windows ó 1970, ar Linux ó 1900).
    • t - Am ($ horolog, soicind tar éis meán oíche).
    • m — Stampa ama (UAIREANTA BLIAIN-MÍ-LÁ: NÓIMÉAD: teaghrán formáide DARA).
  • labels - Liosta ainmneacha na gcolún. Is é an chéad eilimint ainm an tsíntiúis.
  • namespace - an limistéar ina ndéanfar an iarraidh a fhorghníomhú.

Aicme Rith

wrap thar ExecuteGlobal. Ullmhaíonn glao bunaithe ar shainiú an ranga ExecuteGlobal agus glaonna air.

ExecuteClass(class, variable, type, start, end, properties, namespace) - sonraí ranga a chur ar aghaidh chuig Python.

Argóintí:

  • class - ainm ranga
  • variable - ainm na hathróige Python ina bhfuil na sonraí scríofa.
  • type - list nó pandas dataframe.
  • start — ag tosú Id.
  • end - Id deiridh
  • properties — liosta (scartha le camóg) de na hairíonna ranga atá le lódáil isteach sa tacar sonraí. Tacaítear le maisc * и ?. Réamhshocrú - * (gach maoin). Maoin %%CLASSNAME neamhaird.
  • namespace - an limistéar ina ndéanfar an iarraidh a fhorghníomhú.

Rachaidh gach maoin ar aghaidh mar atá seachas maoine cineáil %Date, %Time, %Boolean и %TimeStamp - déantar iad a thiontú go dtí na ranganna Python comhfhreagracha.

ExecuteTable

wrap thar ExecuteClass. Aistrítear an t-ainm tábla ina ainm ranga agus glaonna ExecuteClass. Síniú:

ExecuteTable(table, variable, type, start, end, properties, namespace) - sonraí tábla a chur ar aghaidh chuig Python.

Argóintí:

  • table - ainm tábla.
    Ritear gach argóint eile mar atá. ExecuteClass.

Nótaí

  • ExecuteGlobal, ExecuteClass и ExecuteTable oibriú go cothrom tapaidh.
  • ExecuteGlobal 20 uair níos tapúla ná ExecuteQuery ar thacair shonraí mhóra (am aistrithe >0.01 soicind).
  • ExecuteGlobal, ExecuteClass и ExecuteTable obair ar dhomhanda leis an struchtúr seo: ^global(key) = $lb(prop1, prop2, ..., propN) i gcás key is slánuimhir.
  • Chun ExecuteGlobal, ExecuteClass и ExecuteTable raon luach tacaithe %Date fhreagraíonn don raon mktime agus braitheann sé ar an OSfuinneoga: 1970- 01-01, linux 1900-01-01, mac). Úsáid %TimeStampchun sonraí a chur ar aghaidh lasmuigh den raon seo nó úsáid fráma sonraí pandas mar níl an teorannú seo ach don liosta.
  • Chun ExecuteGlobal, ExecuteClass и ExecuteTable tá gach argóint seachas foinse sonraí (domhanda, aicme nó tábla) agus athróg roghnach.

Примеры

rang tástála isc.py.test.Duine tá modh ann a thaispeánann na roghanna aistrithe sonraí go léir:

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)

modh glaoch do ##class(isc.py.test.Person).Test() féachaint conas a oibríonn gach modh aistrithe sonraí.

Modhanna Cúntóra

  • GetVariableInfo(variable, serialization, .defined, .type, .length) - faisnéis a fháil faoin athróg: cibé an sainítear é, fad an aicme agus an tsrathaithe.
  • GetVariableDefined(variable, .defined) - an sainítear an athróg.
  • GetVariableType(variable, .type) - faigh aicme na hathróige.
  • GetStatus() - faigh agus bain an eisceacht dheireanach ar thaobh Python.
  • GetModuleInfo(module, .imported, .alias) — faigh stádas athraitheach modúl agus allmhairiú.
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - eolas a fháil faoin bhfeidhm.

Idir-inoibritheacht

D'fhoghlaim tú conas Python Gateway a ghlaoch ón teirminéal, anois déanaimis é a úsáid i dtáirgeadh. Is é an bunús le haghaidh idirghníomhú le Python sa mhodh seo isc.py.ens.Operation. Ligeann sé dúinn:

  • Rith Cód Python
  • Sábháil/Athchóirigh comhthéacs Python
  • Luchtaigh agus faigh sonraí ó Python

Go bunúsach, is cumhdach é oibríocht Pyhton isc.py.Main. Oibríocht isc.py.ens.Operation ceadaíonn sé idirghníomhú leis an bpróiseas Python ó tháirgí InterSystems IRIS. Tacaítear le cúig iarratas:

  • isc.py.msg.ExecutionRequest chun cód Python a fhorghníomhú. filleann isc.py.msg.ExecutionResponse leis an toradh forghníomhaithe agus luachanna na n-athróg iarrtha.
  • isc.py.msg.StreamExecutionRequest chun cód Python a fhorghníomhú. filleann isc.py.msg.StreamExecutionResponse toradh an fhorghníomhaithe agus luachanna na n-athróg iarrtha. Analógach isc.py.msg.ExecutionRequest, ach glacann sé agus cuireann sé sruthanna ar ais in ionad teaghráin.
  • isc.py.msg.QueryRequest chun toradh iarratais SQL a chur i gcrích a aistriú. filleann Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest sonraí domhanda/ranga/tábla a chur ar aghaidh. filleann Ens.Response.
  • isc.py.msg.SaveRequest chun comhthéacs Python a shábháil. filleann Ens.StringResponse le haitheantas comhthéacs.
  • isc.py.msg.RestoreRequest a chur ar ais ar an gcomhthéacs Python.

    Ina theannta sin, isc.py.ens.Operation tá dhá shocrú:

    • Initializer - rang a roghnú a chuireann an comhéadan i bhfeidhm isc.py.init.Abstract. Is féidir é a úsáid chun feidhmeanna, modúil, ranganna agus a leithéidí a luchtú. Déantar é a fhorghníomhú uair amháin nuair a thosaíonn an próiseas.
    • PythonLib - (Linux amháin) má fheiceann tú earráidí tosaithe, socraigh a luach go libpython3.6m.so nó fiú sa chosán iomlán chuig leabharlann Python.

Próisis ghnó a chruthú

Tá dhá rang ar fáil a éascaíonn forbairt próisis ghnó:

  • isc.py.ens.ProcessUtils ligeann sé duit nótaí a bhaint as gníomhaíochtaí le hionadú inathraithe.
  • isc.py.util.BPEmulator déanann sé éasca próisis ghnó a thástáil le Python. Is féidir leis próiseas gnó (páirteanna Python) a fhorghníomhú sa phróiseas reatha.

Ionadú inathraithe

Gach próiseas gnó a fuarthas le hoidhreacht ó isc.py.ens.ProcessUtils, is féidir leis an modh a úsáid GetAnnotation(name) chun luach nóta gníomhaíochta a fháil faoina ainm. Féadfaidh athróga a bheith san nóta gníomhaíochta a dhéanfar a mheas ar thaobh InterSystems IRIS sula gcuirfear ar aghaidh chuig Python iad. Seo é an chomhréir don ionadú inathraithe:

  • ${class:method:arg1:...:argN} - modh glaoch
  • #{expr} - cód a fhorghníomhú sa teanga ObjectScript.

Tá sampla ar fáil sa phróiseas gnó tástála isc.py.test.Process, mar shampla, i ngníomhaíocht Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Sa sampla seo:

  • #{process.WorkDirectory} cuireann sé maoin WorkDirectory an réada ar ais process, atá ina shampla den rang isc.py.test.Process siúd. próiseas gnó reatha.
  • ${%PopulateUtils:Integer:1:100} glaonna modh Integer rang %PopulateUtils, argóintí a rith 1 и 100, ag filleadh slánuimhir randamach sa raon 1...100.

Próiseas gnó a thástáil

Tá an próiseas táirgthe tástála agus gnó tástála ar fáil de réir réamhshocraithe mar chuid de Thairseach Python. Chun iad a úsáid:

  1. I rith teirminéil OS: pip install pandas matplotlib seaborn.
  2. I gcríochfort InterSystems IRIS, rith: do ##class(isc.py.test.CannibalizationData).Import() chun sonraí tástála a líonadh.
  3. Seoladh táirgí isc.py.test.Production.
  4. Seol cineál iarratais Ens.Request в isc.py.test.Process.

A ligean ar a fheiceáil conas a oibríonn sé go léir le chéile. Oscail isc.py.test.Process san eagarthóir BPL:

Geata Python ag InterSystems IRIS

Cód a fhorghníomhú

Is é an glao is tábhachtaí ná cód Python a fhorghníomhú:

Geata Python ag InterSystems IRIS

Iarratas a úsáideadh isc.py.msg.ExecutionRequest, seo a n-airíonna:

  • Code - Cód Python.
  • SeparateLines - cibé acu ar cheart an cód a roinnt ina línte lena fhorghníomhú. $c(10) (n) a úsáidtear chun teaghráin a scaradh. Tabhair faoi deara NACH moltar an teachtaireacht iomlán a phróiseáil ag an am céanna, níl an fheidhm seo ach le próiseáil def agus nathanna illíne comhchosúla. Réamhshocrú 0.
  • Variables is liosta athróg idir chamóg é a chuirfear leis an bhfreagra.
  • Serialization - Conas a serialize na hathróga ba mhaith linn a thabhairt ar ais. Roghanna: Str, Repr, JSON, Pickle и Dill, réamhshocraithe Str.

In ár gcás, ní dhéanaimid ach an mhaoin a shocrú Code, ionas go n-úsáideann gach maoin eile a luachanna réamhshocraithe. Chuireamar ar bun é trí ghlaoch process.GetAnnotation("Import pandas"), a sheolann nóta ar ais ag am rite tar éis ionadú inathraithe a dhéanamh. Ar deireadh an cód import pandas as pd a chur ar aghaidh chuig Python. GetAnnotation a bheith úsáideach chun scripteanna Python il-líne a fháil, ach níl aon srianta ar an mbealach seo chun cód a fháil. Is féidir leat an mhaoin a shocrú Code ar aon bhealach áisiúil duit.

Athróga a Fháil

Dúshlán suimiúil eile ag baint úsáide as isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Geata Python ag InterSystems IRIS

Ríomhann sé an Maitrís Comhghaoil ​​ar thaobh Python agus sleachta as an athróg corrmat ar ais go InterSystems IRIS i bhformáid JSON trí airíonna an iarratais a shocrú:

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

Is féidir linn na torthaí a fheiceáil in Visual Trace:

Geata Python ag InterSystems IRIS

Agus má tá an luach seo ag teastáil uainn sa BP, is féidir é a fháil mar seo: callresponse.Variables.GetAt("corrmat").

Aistriú sonraí

Ansin, déanaimis labhairt faoi shonraí a aistriú ó InterSystems IRIS go Python, cuireann gach iarratas aistrithe sonraí an comhéadan i bhfeidhm isc.py.msg.DataRequest, a sholáthraíonn na hairíonna seo a leanas:

  • Variable is athróg Python é a bhfuil na sonraí scríofa chuige.
  • Type - cineál athróg: dataframe (fráma sonraí pandas) nó list.
  • Namespace - an limistéar óna bhfaighimid sonraí. Mála plaisteach isc.py ar fáil sa réimse seo. D'fhéadfadh sé seo a bheith ina réimse gan tacaíocht táirge.

Bunaithe ar an gcomhéadan seo, cuirtear 4 aicme iarratas i bhfeidhm:

  • isc.py.msg.QueryRequest - maoin socraithe Query chun ceist SQL a sheoladh.
  • isc.py.msg.ClassRequest - maoin socraithe Class chun sonraí ranga a rith.
  • isc.py.msg.TableRequest - maoin socraithe Table chun sonraí tábla a chur ar aghaidh.
  • isc.py.msg.GlobalRequest - maoin socraithe Global chun sonraí a aistriú go domhanda.

Sa phróiseas tástála, féach ar an ngníomhaíocht RAWI gcás ina isc.py.msg.QueryRequest léirithe i ngníomh.

Geata Python ag InterSystems IRIS

Comhthéacs Python a shábháil/Athchóiriú

Ar deireadh, is féidir linn comhthéacs Python a stóráil in InterSystems IRIS, chun é seo a dhéanamh, seol isc.py.msg.SaveRequest le hargóintí:

  • Mask — Ní shábháiltear ach athróga a shásaíonn an masc. Tacaithe * и ?. Sampla: "Data*, Figure?"... Réamhshocrú *.
  • MaxLength — uasfhad na hathróige stóráilte. Má tá sraithiú athróg níos faide, déanfar neamhaird de. Socraigh ar 0 chun athróga d'aon fhad a fháil. Réamhshocrú $$$MaxStringLength.
  • Name — Ainm an chomhthéacs (roghnach).
  • Description — Cur síos ar an gcomhthéacs (roghnach).

Tuairisceáin Ens.StringResponse с Id comhthéacs shábháil. Sa phróiseas tástála, féach ar an ngníomhaíocht Save Context.

Iarratas gaolmhar isc.py.msg.RestoreRequest lódálann sé comhthéacs ó InterSystems IRIS go Python:

  • ContextId is é an t-aitheantóir comhthéacs.
  • Clear — an comhthéacs a shoiléiriú roimh athchóiriú.

Leabhar Nótaí Iúpatar

Leabhar Nótaí Iúpatar Is feidhmchlár gréasáin foinse oscailte é a ligeann duit leabhair nótaí a chruthú agus a fhoilsiú ina bhfuil cód, léirshamhlú agus téacs. Ligeann Python Gateway duit próisis BPL a fheiceáil agus a chur in eagar mar Leabhar Nótaí Jupyter. Tabhair faoi deara go bhfuil an seiceadóir Python 3 rialta á úsáid faoi láthair.

Glacann an breiseán seo leis go bhfuil cód Python sna nótaí agus go n-úsáideann siad ainmneacha gníomhaíochta mar theidil roimhe seo. Is féidir anois próisis ghnó PythonGateway a fhorbairt i Jupyter Notebook. Seo an méid is féidir:

  • Próisis ghnó nua a chruthú
  • Scrios próisis ghnó
  • Cruthaigh gníomhaíochtaí nua
  • Gníomhaíochtaí a athrú
  • Scrios gníomhaíochtaí

Anseo físeán taispeána. Agus roinnt screenshots:

Explorer Próiseas

Geata Python ag InterSystems IRIS

Eagarthóir próisis

Geata Python ag InterSystems IRIS

Suiteáil

  1. Beidh InterSystems IRIS 2019.2+ uait.
  2. Suiteáil PythonGateway v0.8+ (riachtanach amháin isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints и isc.py.ens.ProcessUtils).
  3. Nuashonraigh an cód ObjectScript ón stór.
  4. Forghníomhú do ##class(isc.py.util.Jupyter).Install() agus lean na leideanna.

Doiciméadú.

Torthaí

Is sraith uirlisí é MLToolkit a bhfuil sé mar aidhm aige samhlacha agus timpeallacht idirbheartaíochta a chur le chéile ionas gur féidir na samhlacha tógtha a úsáid go díreach go díreach i do phróisis ghnó. Is cuid de MLToolkit é Python Gateway agus cuireann sé comhtháthú leis an dteanga Python ar fáil, rud a ligeann duit aon halgartaim meaisínfhoghlama a chruthaítear i Python (an príomhthimpeallacht do go leor Eolaithe Sonraí), úsáid a bhaint as leabharlanna iomadúla réamhdhéanta chun AI / anailíseach oiriúnaitheach, robotic a chruthú go tapa. Réitigh ML ar an ardán InterSystems IRIS.

tagairtí

MLUirlisí

Is stór príobháideach GitHub é grúpa úsáideoirí MLToolkit a cruthaíodh mar chuid d’eagraíocht chorparáideach GitHub InterSystems. Tá sé dírithe ar úsáideoirí seachtracha atá ag suiteáil, ag foghlaim, nó ag baint úsáide as comhpháirteanna MLToolkit cheana féin, lena n-áirítear Python Gateway. Tá roinnt cásanna curtha i bhfeidhm ag an ngrúpa (le cód foinse agus sonraí tástála) i réimsí na margaíochta, na déantúsaíochta, na míochaine agus go leor tionscail eile. Chun páirt a ghlacadh sa ghrúpa úsáideoirí ML Toolkit, seol ríomhphost gearr chuig an seoladh seo a leanas: [ríomhphost faoi chosaint] agus cuir an t-eolas seo a leanas i do litir:

  • Ainm úsáideora GitHub
  • Eagraíocht (tá tú ag obair nó ag staidéar)
  • Post (do sheasamh iarbhír i d'eagraíocht, bíodh sé "Mac Léinn" nó "Neamhspleách").
  • Tír

Dóibh siúd a bhfuil an t-alt léite acu agus a bhfuil suim acu in InterSystems IRIS mar ardán chun hintleachta saorga agus meicníochtaí meaisínfhoghlama a fhorbairt nó a óstáil, tugaimid cuireadh duit cásanna féideartha spéise do d’fhiontar a phlé. Déanfaimid anailís go héasca ar riachtanais d'fhiontair agus déanfaimid plean gníomhaíochta a chinneadh i gcomhpháirt; seoladh ríomhphoist teagmhála ár sainghrúpa AI/ML - [ríomhphost faoi chosaint].

Foinse: will.com

Add a comment