ʻO kēia ʻatikala e pili ana iā Python Gateway, kahi papahana kaiāulu open source no ka paepae ʻikepili InterSystems IRIS. Hāʻawi kēia papahana iā ʻoe e hoʻonohonoho i nā algorithm aʻo mīkini i hana ʻia ma Python (ke kaiapuni nui no ka nui o Data Scientists), e hoʻohana i nā hale waihona puke i mākaukau e hana wikiwiki i nā hoʻonā AI / ML analytical robotic ma ke kahua InterSystems IRIS. Ma kēia ʻatikala, e hōʻike wau iā ʻoe pehea e hiki ai i InterSystems IRIS ke hoʻonohonoho i nā kaʻina Python, hoʻokō pono i ka hoʻoili ʻikepili ʻelua ala, a hana i nā kaʻina ʻoihana akamai.
E hoʻolālā
- Hoʻomau
- Mea hana.
- Ke hoʻonohonoho ʻana
- API.
- Hoʻohana like.
- ʻO Jupyter Notebook.
- Nā hopena.
- Nā loulou.
- M.L.Toolkit.
Hōʻike
ʻO Python kahi ʻōlelo hoʻolālā kiʻekiʻe kiʻekiʻe, e pili ana i ka hoʻomaikaʻi ʻana i ka huahana a me ka heluhelu ʻana i nā code. Ma kēia pūʻulu ʻatikala, e kamaʻilio wau e pili ana i ka hiki ke hoʻohana i ka ʻōlelo Python ma ka InterSystems IRIS platform, ʻoiai ke kumu nui o kēia ʻatikala ʻo ka hoʻohana ʻana iā Python ma ke ʻano he ʻōlelo no ka hana ʻana a me ka hoʻohana ʻana i nā hiʻohiʻona aʻo mīkini.
ʻO ke aʻo ʻana o ka mīkini (ML) kahi papa o nā ʻano hana naʻauao, ʻo ka hiʻohiʻona ʻaʻole ia ka hopena pololei o kahi pilikia, akā ke aʻo ʻana i ke kaʻina o ka hoʻoponopono ʻana i nā pilikia like.
ʻO nā algorithm aʻo mīkini a me nā hiʻohiʻona e lilo i mea maʻamau. Nui nā kumu no kēia, akā e hele mai nā mea āpau i ka hiki, ka maʻalahi, a me ka loaʻa ʻana o nā hopena kūpono. He ʻenehana hou paha ka clustering a i ʻole ka neural network?
ʻOiaʻiʻo ʻaʻole, akā i kēia mau lā ʻaʻole pono e kākau i nā haneli haneli o nā laina code e holo ai i hoʻokahi hiʻohiʻona, a ke liʻiliʻi a liʻiliʻi nā kumukūʻai o ka hana ʻana a me ka hoʻohana ʻana i nā hiʻohiʻona.
Ke ulu nei nā mea hana - ʻoiai ʻaʻole kā mākou mau mea hana AI/ML e pili ana i ka GUI, ʻike ʻia ka holomua a mākou i ʻike ai me nā ʻano papa ʻike ʻē aʻe e like me BI (mai ke kākau ʻana i ka code a hiki i ka hoʻohana ʻana i nā frameworks a me GUI oriented configurable solutions). i nā mea hana hana AI/ML. Ua hala mua mākou i ka pae o ke kākau ʻana i nā code a i kēia lā ke hoʻohana nei mākou i nā frameworks no ke kūkulu ʻana a me ke aʻo ʻana i nā kumu hoʻohālike.
ʻO nā hoʻomaikaʻi ʻē aʻe, e like me ka hiki ke hoʻolaha i kahi hoʻohālike i hoʻomaʻamaʻa mua ʻia kahi e hoʻopau ai ka mea hoʻohana hope i ka hoʻomaʻamaʻa ʻana i ke kumu hoʻohālike ma kā lākou ʻikepili kikoʻī, e maʻalahi hoʻi i ka hoʻomaka ʻana i ke aʻo ʻana i ka mīkini. ʻO kēia mau holomua e maʻalahi ke aʻo ʻana i ka mīkini, no ka poʻe loea a no nā ʻoihana holoʻokoʻa.
Ma kekahi ʻaoʻao, hōʻiliʻili mākou i nā ʻikepili hou aʻe. Me kahi kahua ʻikepili i hui pū ʻia e like me InterSystems IRIS, hiki ke hoʻomākaukau koke ʻia kēia ʻike āpau a hoʻohana ʻia i mea hoʻokomo no nā kumu hoʻohālike mīkini.
Me ka hoʻololi ʻana i ke ao, ʻoi aku ka maʻalahi o ka hoʻokuʻu ʻana i nā papahana AI/ML. Hiki iā mākou ke hoʻopau wale i nā kumuwaiwai a mākou e pono ai. Eia kekahi, mahalo i ka parallelization i hāʻawi ʻia e nā kapuaʻi kapuaʻi, hiki iā mākou ke mālama i ka manawa pau ʻole.
Akā pehea nā hopena? ʻO kēia kahi e paʻakikī ai nā mea. Nui nā mea hana no ke kūkulu ʻana i nā hiʻohiʻona, aʻu e kūkākūkā ai ma hope. ʻAʻole maʻalahi ke kūkulu ʻana i kahi kumu hoʻohālike maikaʻi, akā he aha ka mea e hiki mai ana? ʻO ka loaʻa kālā ʻana mai ka hoʻohana ʻana i ke kumu hoʻohālike e kahi ʻoihana he hana koʻikoʻi ʻole. ʻO ke kumu o ka pilikia, ʻo ia ka hoʻokaʻawale ʻana o nā haʻahaʻa hana analytical a transactional a me nā hiʻohiʻona ʻikepili. Ke hoʻomaʻamaʻa mākou i kahi kumu hoʻohālike, hana maʻamau mākou i ka ʻikepili mōʻaukala. Akā ʻo ka wahi no ke kumu hoʻohālike i kūkulu ʻia ma ka hoʻoili ʻikepili transactional. He aha ka maikaʻi o ke kumu hoʻohālike hoʻopunipuni hoʻopunipuni maikaʻi loa inā holo mākou i hoʻokahi manawa i ka lā? Ua haʻalele ka poʻe scammers me ke kālā. Pono mākou e hoʻomaʻamaʻa i ke kumu hoʻohālike i ka ʻikepili mōʻaukala, akā pono mākou e hoʻopili iā ia i ka manawa maoli ma nā ʻikepili hou e hiki mai ana i hiki i kā mākou ʻoihana ʻoihana ke hana e like me nā wānana i hana ʻia e ke kumu hoʻohālike.
ʻO ML Toolkit kahi mea hana pono e hana ai: e hui pū ana i nā hiʻohiʻona a me kahi kaiapuni kālepa i hiki ke hoʻohana pololei ʻia nā kumu hoʻohālike āu e kūkulu ai i kāu kaʻina ʻoihana. ʻO Python Gateway kahi ʻāpana o ka ML Toolkit a hāʻawi i ka hoʻohui ʻana me ka ʻōlelo Python (e like me R Gateway, ʻo ia kahi ʻāpana o ka ML Toolkit e hāʻawi i ka hoʻohui ʻana me ka ʻōlelo R).
Kākoʻo lāʻau
Ma mua o ka hoʻomau ʻana, makemake wau e wehewehe i kekahi mau mea hana Python a me nā hale waihona puke a mākou e hoʻohana ai ma hope.
o ka 'ike loea hou
- ʻO ka Python kahi ʻōlelo hoʻolālā kiʻekiʻe. ʻO ka pōmaikaʻi nui o ka ʻōlelo he hale waihona puke nui o ka makemakika, ML a me AI. E like me ObjectScript, he ʻōlelo pili i nā mea, akā ua wehewehe ʻia nā mea āpau me ka dynamically, ʻaʻole statically. He mea hoʻi nā mea a pau. Manaʻo nā ʻatikala ma hope i kahi kamaʻāina i ka ʻōlelo. Inā makemake ʻoe e hoʻomaka e aʻo, paipai wau e hoʻomaka me .
- No kā mākou hoʻomaʻamaʻa aʻe, hoʻonohonoho .
- IDE: Ke hoʻohana nei au , akā ma ka laulā . Inā ʻoe e hoʻohana ana iā Atelier, aia kahi plugin Eclipse no nā mea hoʻomohala Python. Inā ʻoe e hoʻohana ana i ka VS Code, a laila aia kahi hoʻonui no Python.
- Notebook: Ma kahi o kahi IDE, hiki iā ʻoe ke kākau a kaʻana like i kāu mau palapala ma nā puke puke pūnaewele. ʻO ka mea kaulana loa o lākou .
Waihona Puke
Eia kahi papa inoa (ʻāpana) o nā hale waihona puke aʻo mīkini:
- - he pūʻolo kumu no nā helu kikoʻī.
- - nā hoʻolālā ʻikepili hana kiʻekiʻe a me nā mea hana ʻikepili.
- - Ka hana ʻana i nā pakuhi.
- - ka ʻike ʻike ʻikepili e pili ana i ka matplotlib.
- - nā ʻano aʻo mīkini.
- - nā algorithm aʻo mīkini i loko o ke ʻano Gradient Boosting.
- — NLP.
- - nā pūnaewele neural.
- he kahua no ka hana ʻana i nā hiʻohiʻona aʻo mīkini.
- he kahua no ka hana ʻana i nā hiʻohiʻona aʻo mīkini e pili ana iā Python.
- - PMML mai nā hiʻohiʻona like ʻole.
Hiki i nā ʻenehana AI/ML ke hoʻoikaika i ka ʻoihana a hiki ke hoʻololi. Eia kekahi, i kēia lā ua maʻalahi kēia mau ʻenehana e hoʻomohala a hoʻokō. Hoʻomaka e aʻo e pili ana i nā ʻenehana AI/ML a pehea e hiki ai iā lākou ke kōkua i kāu hui e ulu.
Kāu Mau Koho Paʻamau
Nui nā ala e hoʻokomo a hoʻohana i ka Python Gateway:
- Kaukau
- Windows
- Linux
- Mac
- Docker
- E hoʻohana i ke kiʻi mai DockerHub
- E hana i kou nānā ponoʻī
Ma waho o ke ʻano o ka hoʻokomo ʻana, pono ʻoe i ke code kumu. ʻO kahi wale nō e hoʻoiho ai i ke code . Loaʻa iā ia nā hoʻokuʻu kūpaʻa i hoʻāʻo ʻia, e hopu wale i ka mea hou loa. I kēia manawa he 0.8, akā i ka manawa e loaʻa hou nā mea hou. Mai clone / hoʻoiho i ka waihona, hoʻoiho i ka hoʻokuʻu hou loa.
Kaukau
Inā ʻoe e kau nei i ka Python Gateway ma kahi ʻōnaehana hana, a laila ma mua (me ka ʻole o ka ʻōnaehana hana) pono ʻoe e hoʻokomo iā Python. No kēia:
- . Manaʻo ʻia e hoʻokomo iā Python i ka papa kuhikuhi paʻamau.
- E hoʻouka i ka module
dill:pip install dill. - Hoʻoiho i ke code ObjectScript (ʻo ia hoʻi.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) i kekahi wahi me nā huahana. Inā makemake ʻoe i kahi wahi e kākoʻo ai i nā huahana, holo:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1). - Wahi i ka waihona
binkāu laʻana InterSystems IRIS. Pono e loaʻa ka waihona waihona ma ke ala i hoʻihoʻi ʻia ewrite ##class(isc.py.Callout).GetLib().
Windows
- E hōʻoia i ka loli kaiapuni
PYTHONHOMEkuhikuhi iā Python 3.6.7. - E hōʻoia i ka loli kaiapuni ʻōnaehana
PATHloaʻa i kahi loliPYTHONHOME(a i ʻole ka papa kuhikuhi e kuhikuhi ai).
Linux (Debian/Ubuntu)
- E nānā inā he loli kaiapuni
PATHaia i loko/usr/libи/usr/lib/x86_64-linux-gnu. E hoʻohana i ka faila/etc/environmente hoʻonohonoho i nā mea hoʻololi kaiapuni. - Ina he hewa
undefined symbol: _Py_TrueStructhoʻonohonoho i ka hoʻonohonohoPythonLib. i loko nō hoʻi aia kahi ʻāpana Hoʻoponopono.
Mac
- I kēia manawa, kākoʻo wale ʻia ka python 3.6.7 mai . E nānā i ka mea hoʻololi
PATH.
Inā ua hoʻololi ʻoe i nā ʻano like ʻole, e hoʻomaka hou i kāu huahana InterSystems.
Docker
He nui nā pono o ka hoʻohana ʻana i nā ipu:
- Ka lawe ʻana
- Ke kūpono
- ʻO ka hoʻonani
- māmā
- Ka hoololi ole
E nānā i kēia no ka ʻike hou aku e pili ana i ka hoʻohana ʻana iā Docker me nā huahana InterSystems.
ʻO nā kūkulu Python Gateway āpau i kēia manawa i hoʻokumu ʻia i ka pahu. 2019.4.
Kiʻi i pau
Holo: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:lateste hoʻoiho a holo i ka Python Gateway me InterSystems IRIS Community Edition. ʻo ia wale nō.
E hana i kou nānā ponoʻī
No ke kūkulu ʻana i kahi kiʻi docker, holo i ke kumu o ka waihona: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Ma ka maʻamau, kūkulu ʻia ke kiʻi ma muli o ke kiʻi store/intersystems/iris-community:2019.4.0.383.0, akā naʻe hiki iā ʻoe ke hoʻololi i kēia ma ka hoʻonohonoho ʻana i ka loli IMAGE.
No ke kūkulu ʻana mai InterSystems IRIS holo: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest'.
Ma hope o kēlā, hiki iā ʻoe ke holo i ke kiʻi docker:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.keyInā hoʻohana ʻoe i kahi kiʻi e pili ana i InterSystems IRIS Community Edition, ʻaʻole pono ʻoe e kuhikuhi i kahi kī.
Comments
- Kaʻina Hoʻāʻo
isc.py.test.Processmālama i kekahi mau kiʻi i kahi papa kuhikuhi manawa. Makemake paha ʻoe e hoʻololi i kēia ala i kahi papa kuhikuhi i kau ʻia. No ka hana ʻana i kēia, hoʻoponopono i ka hoʻonohonohoWorkingDire kuhikuhi ana i ka papa kuhikuhi i kau ʻia. - No ke komo ʻana i ka terminal, holo:
docker exec -it irispy sh. - E komo i ka Portal Management System ma ke komo ʻana
SuperUser/SYS. - No ka hooki ʻana i kahi pahu, holo:
docker stop irispy && docker rm --force irispy.
Ke nānā nei i ka hoʻokomo
Ke hoʻokomo nei ʻoe i ka Python Gateway, pono e nānā i ka hana ʻana. E holo i kēia code ma ka InterSystems IRIS terminal:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write varPono ka hopena HELLO - ka waiwai o ka hoʻololi Python x. Inā ke kūlana hoʻihoʻi sc he kuhihewa paha var kaawale, nānā .
API
Hoʻokomo ʻia ʻo Python Gateway a ua hōʻoia ʻoe e hana ana. ʻO ka manawa e hoʻomaka ai e hoʻohana iā ia!
ʻO ke kikowaena nui o Python isc.py.Main. Hāʻawi ia i nā pūʻulu o nā ʻano (hoʻihoʻi a pau %Status):
- Hoʻokō code
- Hoʻolaha ka ʻike
- Kokua
Hoʻokō code
ʻAe kēia mau ala iā ʻoe e hoʻokō i ka code Python arbitrary.
SimpleString
SimpleString ʻo ia ke ala nui. Loaʻa iā 4 mau manaʻo hoʻopaʻapaʻa koho:
codeʻo ia ka laina code e hoʻokō ai. ʻAno hānai laina:$c(10).returnVariableʻo ia ka inoa o ka mea hoʻololi e hoʻi.serialization- pehea e hoʻolaha aireturnVariable. 0 - kaula (paʻamau), 1 - repr.result- ByRef e pili ana i ka loli kahi i kākau ʻia ai ka waiwaireturnVariable.
Ma luna aʻe ua hana mākou:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).Ma kēia hiʻohiʻona, hāʻawi mākou i kahi hoʻololi Python x ʻo keʻano Hello a makemake e hoʻihoʻi i ka waiwai o kahi hoʻololi Python x i kahi hoʻololi ObjectScript var.
Hoʻokō Code
ʻO ka ExecuteCode kahi ʻokoʻa palekana a ʻoi aku ka paʻa SimpleString.
ʻO nā laina ma ka InterSystems IRIS platform ua kaupalena ʻia i 3 mau huaʻōlelo, a inā makemake ʻoe e hoʻokō i kahi ʻāpana code lōʻihi, pono ʻoe e hoʻohana i nā kahawai.
Loaʻa i nā manaʻo ʻelua:
code- kahi kaula a i ʻole kahawai o Python code e hoʻokō ʻia.variable- (koho) hāʻawi i ka hopena o ka hoʻokōcodekeia hoololi Python.
Manaʻo e hoʻohana:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").Ma kēia laʻana, hoʻonui mākou i ka 2 me 3 a mālama i ka hopena i loko o kahi ʻano Python y.
Hoʻolaha ka ʻike
Hāʻawi i ka ʻikepili iā Python a mai.
Python -> InterSystems IRIS
Aia nā ala 4 e loaʻa ai ka waiwai o kahi ʻano Python ma InterSystems IRIS, e pili ana i ka serialization āu e pono ai:
Stringno nā ʻano ʻikepili maʻalahi a me ka debugging.Reprno ka mālama ʻana i nā mea maʻalahi a me ka debugging.JSONno ka hoʻololi maʻalahi o ka ʻikepili ma ka ʻaoʻao InterSystems IRIS.Picklee mālama i nā mea.
Hāʻawi kēia mau ala iā ʻoe e loaʻa i nā mea hoʻololi mai Python ma ke ʻano he kaula a i ʻole he kahawai.
GetVariable(variable, serialization, .stream, useString)- loaaserializationlolivariableвstream. ^ E Ha yM. InāuseStringʻo 1 a kau ʻia ka serialization i kahi kaula, a laila hoʻihoʻi ʻia kahi kaula, ʻaʻole kahi kahawai.GetVariableJson(variable, .stream, useString)- loaʻa iā JSON serialization o kahi loli.GetVariablePickle(variable, .stream, useString, useDill)-E kiʻi i ka serialization Pickle (a i ʻole Dill) o kahi loli.
E ho'āʻo kākou e kiʻi i kā mākou hoʻololi y.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6InterSystems IRIS -> Python
Ke hoʻouka nei i ka ʻikepili mai InterSystems IRIS i Python.
ExecuteQuery(query, variable, type, namespace)- hana i kahi waihona (pandasdataframeai ole ia,list) mai ka nīnau sql a hoʻonoho iā ia i ka hoʻololi pythonvariable. Eke 'ūlinaisc.pypono e loaa ma ia wahinamespace- e hoʻokō ʻia ka noi ma laila.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)- hoʻouka i ka ʻikepili honuaglobalmai ka palapala inoastarti lunaendma Python ma ke ʻano he ʻano hoʻololitype:list, a i ʻole nā pandasdataframe. ʻO ka wehewehe ʻana i nā manaʻo kohomaskalabelsloaʻa ma ka papa palapala a me ka waihona .ExecuteClass(class, variable, type, start, end, properties, namespace)- hoʻouka i ka ʻikepili papaclassmai idstarti lunaendma Python ma ke ʻano he ʻano hoʻololitype:list, a i ʻole nā pandasdataframe.properties— papa inoa (i hoʻokaʻawale ʻia e ke koma) o nā waiwai papa e hoʻouka ʻia i loko o ka waihona. Kākoʻo ʻia nā maka*и?. Paʻamau -*(mau waiwai a pau). Waiwai%%CLASSNAMEmālama ʻole ʻia.ExecuteTable(table, variable, type, start, end, properties, namespace)- hoʻouka i ka ʻikepili papatablemai idstarti lunaendi ka python.
ExecuteQuery - honua (e hāʻawi ʻia kekahi nīnau SQL kūpono iā Python). Eia naʻe, ExecuteGlobal a me kāna mau ʻōwili ExecuteClass и ExecuteTable hana me kekahi mau kapu. ʻOi aku ka wikiwiki o lākou (3-5 mau manawa ʻoi aku ka wikiwiki ma mua o ka mea hoʻokele ODBC a ʻoi aku ka wikiwiki o 20 mau manawa ma mua ExecuteQuery). ʻIke hou aku ma .
Kākoʻo kēia mau ʻano a pau i ka hoʻoili ʻana o ka ʻikepili mai kekahi wahi. Eke 'ūlina isc.py pono e loaʻa ma ka wahi i hoʻopaʻa ʻia.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace) - ka hāʻawi ʻana i nā hopena o kekahi nīnau SQL kūpono iā Python. ʻO kēia ke ʻano hoʻoili ʻikepili lohi loa. E hoʻohana inā ExecuteGlobal a ʻaʻole loaʻa kona mau ʻōwili.
Nā hoʻopaʻapaʻa:
query- sql nīnau.variable- ka inoa o ka helu Python kahi i kākau ʻia ai ka ʻikepili.type-lista i ʻole nā pandasdataframe.namespace- kahi e hoʻokō ʻia ai ka noi.
ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - hāʻawi i kahi honua iā Python.
Nā hoʻopaʻapaʻa:
globalʻo ia ka inoa o ka honua me ka ʻole^variable- ka inoa o ka helu Python kahi i kākau ʻia ai ka ʻikepili.type-lista i ʻole nā pandasdataframe.start- ka inoa mua o ka honua. Pono%Integer.endʻo ia ka inoa hope loa o ka honua. Pono%Integer.mask- pale o nā waiwai honua. ʻOi aku ka pōkole o ka mask ma mua o ka helu o nā kahua ma ka honua (ʻo ia ka mea e hoʻokuʻu ʻia nā kahua ma ka hopena). Pehea e hōʻano ai i ka mask:+e hāʻawi i ka waiwai e like me ia.-kālele waiwai.b— ʻAno Boolean (0-False, koena a pau -True).d— Lā (mai $horolog, ma Windows mai ka makahiki 1970, ma Linux mai ka makahiki 1900).t- Manawa ($horolog, kekona ma hope o ke aumoe).m— Palapala manawa (YEAR-MONTH-DAY HOUR:MINUTE:SECOND format string).
labels- %Papa inoa o nā kolamu. ʻO ka mea mua ka inoa o ka subscript.namespace- kahi e hoʻokō ʻia ai ka noi.
Papa Hoʻokō
e uhi mai ExecuteGlobal. Hoʻomākaukau i kahi kelepona ma muli o ka wehewehe papa ExecuteGlobal a kāhea aku iā ia.
ExecuteClass(class, variable, type, start, end, properties, namespace) - hāʻawi i ka ʻikepili papa iā Python.
Nā hoʻopaʻapaʻa:
class- inoa papavariable- ka inoa o ka helu Python kahi i kākau ʻia ai ka ʻikepili.type-lista i ʻole nā pandasdataframe.start— hoomaka Id.end- Id hope loaproperties— papa inoa (i hoʻokaʻawale ʻia e ke koma) o nā waiwai papa e hoʻouka ʻia i loko o ka waihona. Kākoʻo ʻia nā maka*и?. Paʻamau -*(mau waiwai a pau). Waiwai%%CLASSNAMEmālama ʻole ʻia.namespace- kahi e hoʻokō ʻia ai ka noi.
Hoʻoholo ʻia nā waiwai a pau koe wale nō nā ʻano waiwai %Date, %Time, %Boolean и %TimeStamp - ua hoʻohuli ʻia lākou i nā papa Python e pili ana.
Papa Hoʻokō
e uhi mai ExecuteClass. Unuhi i ka inoa papa i ka inoa papa a me nā kelepona ExecuteClass. pūlima:
ExecuteTable(table, variable, type, start, end, properties, namespace) - hāʻawi i ka ʻikepili papa iā Python.
Nā hoʻopaʻapaʻa:
table- inoa papa.
Hoʻoholo ʻia nā manaʻo ʻē aʻe a pau.ExecuteClass.
Nā Nānā
ExecuteGlobal,ExecuteClassиExecuteTablehana wikiwiki like.ExecuteGlobal20 manawa ʻoi aku ka wikiwiki ma mua oExecuteQueryma nā ʻikepili nui (ka manawa hoʻoili > 0.01 kekona).ExecuteGlobal,ExecuteClassиExecuteTablee hana ma ka honua me kēia ʻano:^global(key) = $lb(prop1, prop2, ..., propN)kahikeyhe huinahelu.- no ka mea,
ExecuteGlobal,ExecuteClassиExecuteTablelaulā waiwai kākoʻo%Datepili i ka laulāmktimea pili i ka OS: 1970-01-01, 1900-01-01, ). Hoʻohana%TimeStampe hele i ka ʻikepili ma waho o kēia pae a i ʻole e hoʻohana i ka ʻikepili pandas e like me no ka papa inoa wale no keia palena. - no ka mea,
ExecuteGlobal,ExecuteClassиExecuteTableʻO nā ʻōlelo hoʻopaʻapaʻa a pau koe ke kumu ʻikepili (ka honua, ka papa a i ʻole ka pākaukau) a me nā mea hoʻololi he koho.
examples
papa hoao Aia kekahi ala e hōʻike ana i nā koho hoʻoili ʻikepili a pau:
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)ʻano kelepona do ##class(isc.py.test.Person).Test() e ʻike i ka hana ʻana o nā ʻano hoʻoili ʻikepili āpau.
Nā ʻano kōkua
GetVariableInfo(variable, serialization, .defined, .type, .length)- e kiʻi i ka ʻike e pili ana i ka loli: inā paha i wehewehe ʻia, ka papa a me ka lōʻihi o ka serialization.GetVariableDefined(variable, .defined)- inā paha i wehewehe ʻia ka loli.GetVariableType(variable, .type)- e kiʻi i ka papa o ka hoʻololi.GetStatus()- e kiʻi a wehe i ka ʻokoʻa hope loa ma ka ʻaoʻao Python.GetModuleInfo(module, .imported, .alias)- e kiʻi i nā ʻano modula a me ke kūlana hoʻokomo.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)- loaʻa ka ʻike e pili ana i ka hana.
Interoperability
Ua aʻo ʻoe i ke kāhea ʻana iā Python Gateway mai ka pahu, e hoʻomaka kākou e hoʻohana iā ia i ka hana. ʻO ke kumu no ka launa pū ʻana me Python i kēia ʻano isc.py.ens.Operation. Hiki iā mākou ke:
- E hoʻokō i ka code Python
- Mālama / Hoʻihoʻi i ka pōʻaiapili Python
- Hoʻouka a loaʻa ka ʻikepili mai Python
ʻO ka mea maʻamau, ʻo kahi hana Pyhton kahi mea hoʻopili isc.py.Main. Hana isc.py.ens.Operation hiki i ka pilina me ke kaʻina hana Python mai nā huahana InterSystems IRIS. Kākoʻo ʻia nā noi ʻelima:
isc.py.msg.ExecutionRequeste hoʻokō i ka code Python. hoʻiisc.py.msg.ExecutionResponseme ka hopena hoʻokō a me nā waiwai o nā mea i noi ʻia.isc.py.msg.StreamExecutionRequeste hoʻokō i ka code Python. hoʻiisc.py.msg.StreamExecutionResponseka hopena o ka hoʻokō a me nā waiwai o nā mea i noi ʻia. Analogisc.py.msg.ExecutionRequest, akā ʻae a hoʻihoʻi i nā kahawai ma kahi o nā kaula.isc.py.msg.QueryRequeste hoʻololi i ka hopena o ka hoʻokō ʻana i kahi nīnau SQL. hoʻiEns.Response.isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequeste hele i ka ʻikepili honua/papa/papa. hoʻiEns.Response.isc.py.msg.SaveRequeste mālama i ka pōʻaiapili Python. hoʻiEns.StringResponseme ka ID pōʻaiapili.isc.py.msg.RestoreRequeste hoʻihoʻi i ka pōʻaiapili Python.Eia hou,
isc.py.ens.Operationʻelua mau hoʻonohonoho:Initializer- ke koho ʻana i kahi papa e hoʻokō i ka interfaceisc.py.init.Abstract. Hiki ke hoʻohana ʻia e hoʻouka i nā hana, nā modula, nā papa, a me nā mea like. Hoʻokō ʻia i hoʻokahi manawa ke hoʻomaka ke kaʻina hana.PythonLib— (no ka mea wale nō Linux) inā ʻike ʻoe i nā hewa i ka wā e hoʻouka ai, e hoʻonohonoho i kona waiwai ilibpython3.6m.soa i ʻole ma ke ala piha i ka waihona Python.
Ka hana ʻana i nā kaʻina hana ʻoihana
Aia nā papa ʻelua e hoʻomaʻamaʻa i ka hoʻomohala ʻana i nā kaʻina hana ʻoihana:
isc.py.ens.ProcessUtilshiki iā ʻoe ke unuhi i nā annotation mai nā hana me ka hoʻololi ʻana.isc.py.util.BPEmulatormaʻalahi ka hoʻāʻo ʻana i nā kaʻina ʻoihana me Python. Hiki iā ia ke hoʻokō i kahi kaʻina hana (Python parts) i ka hana o kēia manawa.
Hoʻololi hoʻololi
ʻO nā kaʻina hana ʻoihana a pau i hoʻoilina mai isc.py.ens.ProcessUtils, hiki ke hoʻohana i ke ʻano GetAnnotation(name) e kiʻi i ka waiwai o kahi hōʻike haʻawina ma kona inoa. Loaʻa paha i ka hōʻike haʻawina nā mea hoʻololi e loiloi ʻia ma ka ʻaoʻao InterSystems IRIS ma mua o ka hāʻawi ʻia ʻana iā Python. Eia ka syntax no ka hoololi ana.
${class:method:arg1:...:argN}- kahea ala#{expr}- hoʻokō i ke code ma ka ʻōlelo ObjectScript.
Loaʻa kahi laʻana ma ke kaʻina ʻoihana hoʻāʻo isc.py.test.Process, no ka laʻana, ma ka hana Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Ma kēia laʻana:
#{process.WorkDirectory}hoʻihoʻi i ka waiwai WorkDirectory o ka meaprocess, he mea ia o ka papaisc.py.test.Processka poe. kaʻina hana ʻoihana i kēia manawa.${%PopulateUtils:Integer:1:100}kahea i ke anoIntegerkeka%PopulateUtils, hoʻopaʻapaʻa hala1и100, e ho'iho'i ana i ka huina helu ma ka laula1...100.
E ho'āʻo i ka hana ʻoihana
Loaʻa ka hana hoʻokolohua a me ke kaʻina ʻoihana hoʻāʻo ma ke ʻano he ʻāpana o ka Python Gateway. No ka hoʻohana ʻana iā lākou:
- I ka OS terminal holo:
pip install pandas matplotlib seaborn. - Ma ka InterSystems IRIS terminal, holo:
do ##class(isc.py.test.CannibalizationData).Import()e hoʻopiha i ka ʻikepili hoʻāʻo. - Hoʻolaha i nā huahana
isc.py.test.Production. - Hoʻouna ʻano noi
Ens.Requestвisc.py.test.Process.
E ʻike kākou pehea e hana like ai. Wehe isc.py.test.Process ma ka mea hoʻoponopono BPL:

Hoʻokō code
ʻO ke kelepona koʻikoʻi ka hoʻokō ʻana i ka code Python:

Hoʻohana ʻia ke noi isc.py.msg.ExecutionRequest, eia kona mau waiwai:
Code— Code Python.SeparateLines- inā paha e hoʻokaʻawale i ke code i nā laina no ka hoʻokō.$c(10)(n) hoʻohana ʻia e hoʻokaʻawale i nā kaula. E hoʻomaopopo ʻaʻole ʻōlelo ʻia e hana i ka memo holoʻokoʻa i ka manawa hoʻokahi, no ka hana wale ʻana kēia hanadefa me nā huaʻōlelo multiline like. Default0.Variableshe papa inoa i hoʻokaʻawale ʻia i ke koma o nā mea hoʻololi e hoʻohui ʻia i ka pane.Serialization- Pehea e hoʻonohonoho ai i nā ʻano like ʻole a mākou e makemake ai e hoʻi. Nā koho:Str,Repr,JSON,PickleиDill, paʻamauStr.
I kā mākou hihia, hoʻonoho wale mākou i ka waiwai Code, no laila e hoʻohana nā waiwai ʻē aʻe i kā lākou mau waiwai paʻamau. Hoʻonohonoho mākou ma ke kelepona ʻana process.GetAnnotation("Import pandas"), i ka manawa holo e hoʻihoʻi i kahi hōʻike ma hope o ka hoʻokō ʻia ʻana o ka hoʻololi ʻana. ʻO ka hope ke code import pandas as pd e hāʻawi ʻia iā Python. GetAnnotation hiki ke hoʻohana no ka loaʻa ʻana o nā palapala Python multi-line, akā ʻaʻohe palena i kēia ala e loaʻa ai ke code. Hiki iā ʻoe ke hoʻonohonoho i ka waiwai Code ma kekahi ala kūpono iā ʻoe.
Loaʻa i nā mea hoʻololi
ʻO kekahi pilikia hoihoi e hoʻohana ana isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Heluhelu ia i ka Correlation Matrix ma ka ʻaoʻao Python a unuhi i ka loli corrmat hoʻi i InterSystems IRIS ma JSON format ma ka hoʻonohonoho ʻana i nā waiwai noi:
Variables:"corrmat"Serialization:"JSON"
Hiki iā mākou ke ʻike i nā hopena ma Visual Trace:

A inā makemake mākou i kēia waiwai i ka BP, hiki ke loaʻa e like me kēia: callresponse.Variables.GetAt("corrmat").
Hoʻolaha ka ʻike
Ma hope aʻe, e kamaʻilio e pili ana i ka hoʻoili ʻana i ka ʻikepili mai InterSystems IRIS i Python, nā noi hoʻoili ʻikepili āpau e hoʻokō i ka interface isc.py.msg.DataRequest, e hāʻawi ana i kēia mau waiwai:
Variablehe ʻano Python kahi i kākau ʻia ai ka ʻikepili.Type- ʻano hoʻololi:dataframe(pandas dataframe) a i ʻolelist.Namespace- kahi i loaʻa ai iā mākou ka ʻikepili. Eke 'ūlinaisc.pypono e loaa ma keia wahi. He wahi paha kēia me ke kākoʻo huahana ʻole.
Ma muli o kēia interface, hoʻokō ʻia nā papa noi 4:
isc.py.msg.QueryRequest- hoʻonohonoho waiwaiQuerye hoʻouna i kahi nīnau SQL.isc.py.msg.ClassRequest- hoʻonohonoho waiwaiClasse hele i ka ʻikepili papa.isc.py.msg.TableRequest- hoʻonohonoho waiwaiTablee hāʻawi i ka ʻikepili papa.isc.py.msg.GlobalRequest- hoʻonohonoho waiwaiGlobale hoʻoili i ka ʻikepili ma ka honua holoʻokoʻa.
Ma ke kaʻina hana ho'āʻo, e nānā i ka hana RAWkahi isc.py.msg.QueryRequest hōʻike ʻia ma ka hana.

Hoʻopaʻa a hoʻihoʻi hou i kahi ʻano Python
ʻO ka hope, hiki iā mākou ke mālama i ka pōʻaiapili Python ma InterSystems IRIS, e hana i kēia, hoʻouna isc.py.msg.SaveRequest me nā hoʻopaʻapaʻa:
Mask— Mālama wale ʻia nā mea hoʻololi e hoʻokō i ka mask. Kākoʻo ʻia*и?... Laʻana:"Data*, Figure?"... Default*.MaxLength— Ka lōʻihi loa o ka hoʻololi i mālama ʻia. Inā ʻoi aku ka lōʻihi o ka serialization o kahi loli, a laila e nānā ʻole ʻia. E hoʻonoho i ka 0 no ka loaʻa ʻana o nā loli o kēlā me kēia lōʻihi. Default$$$MaxStringLength.Name— Ka inoa o ke ano (koho).Description— Ka wehewehe ʻana o ka pōʻaiapili (koho).
Hoʻi mai Ens.StringResponse с Id pōʻaiapili mālama ʻia. Ma ke kaʻina hana ho'āʻo, e nānā i ka hana Save Context.
Noi pili isc.py.msg.RestoreRequest hoʻouka i kahi pōʻaiapili mai InterSystems IRIS i Python:
ContextIdʻo ia ka ʻike pōʻaiapili.Clear— wehe i ka pōʻaiapili ma mua o ka hoʻihoʻi ʻana.
Puke Memo Jupyter
He polokalamu punaewele punaewele e hiki ai iā ʻoe ke hana a hoʻopuka i nā puke me nā code, nā hiʻohiʻona, a me nā kikokikona. ʻAe ʻo Python Gateway iā ʻoe e nānā a hoʻoponopono i nā kaʻina BPL ma ke ʻano he Jupyter Notebook. E hoʻomanaʻo e hoʻohana ʻia nei ka mea hoʻokō Python 3 maʻamau.
Manaʻo kēia hoʻonui e loaʻa i nā annotation nā code Python a hoʻohana i nā inoa hana e like me nā poʻo inoa ma mua. I kēia manawa hiki ke hoʻomohala i nā kaʻina hana ʻoihana PythonGateway ma Jupyter Notebook. Eia ka mea hiki:
- E hana i nā kaʻina hana ʻoihana hou
- Holoi i nā kaʻina hana ʻoihana
- Hana i nā hana hou
- Hoʻololi i nā hana
- Holoi i nā hana
ʻaneʻi . A me kekahi mau screenshots:
Kaʻina hana Explorer

Hoʻoponopono kaʻina hana

Kāu Mau Koho Paʻamau
- Pono ʻoe i InterSystems IRIS 2019.2+.
- E hoʻouka i ka PythonGateway v0.8+ (koi wale
isc.py.util.Jupyter,isc.py.util.JupyterCheckpointsиisc.py.ens.ProcessUtils). - Hoʻohou i ka code ObjectScript mai ka waihona.
- Holo
do ##class(isc.py.util.Jupyter).Install()a hahai i nā kuhikuhi.
.
haʻina
ʻO MLToolkit kahi pūʻulu o nā mea hana e manaʻo nei e hoʻohui i nā hiʻohiʻona a me kahi kaiapuni kālepa i hiki ke hoʻohana maʻalahi i nā hiʻohiʻona i kūkulu ʻia i kāu kaʻina hana. ʻO Python Gateway kahi ʻāpana o MLToolkit a hāʻawi i ka hoʻohui ʻana me ka ʻōlelo Python, e ʻae iā ʻoe e hoʻonohonoho i nā algorithm aʻo mīkini i hana ʻia ma Python (ke kumu nui no nā ʻepekema Data he nui), e hoʻohana i nā hale waihona puke i mākaukau e hana wikiwiki i ka adaptive, robotic analytical AI / Nā hoʻonā ML ma ka InterSystems platform IRIS.
kūmole
MLTToolkit
ʻO ka hui mea hoʻohana MLToolkit kahi waihona GitHub pilikino i hana ʻia ma ke ʻano he ʻāpana o ka hui InterSystems hui GitHub. Hāʻawi ʻia ia i nā mea hoʻohana o waho e hoʻokomo, aʻo, a i ʻole e hoʻohana nei i nā ʻāpana MLToolkit, me ka Python Gateway. He nui nā hihia i hoʻokō ʻia e ka hui (me ka code kumu a me ka ʻikepili hōʻike) ma nā ʻoihana kūʻai, hana, lāʻau lapaʻau a me nā ʻoihana ʻē aʻe. No ke komo ʻana i ka hui mea hoʻohana ML Toolkit, e ʻoluʻolu e hoʻouna i kahi leka uila pōkole i kēia helu wahi: a e hoʻokomo i kēia ʻike i kāu leka:
- inoa inoa GitHub
- Hui (hana a aʻo paha ʻoe)
- Ke kūlana (kou kūlana maoli i kāu hui, ʻo "Haʻawina" a i ʻole "Kuʻokoʻa").
- aina
No ka poʻe i heluhelu i ka ʻatikala a makemake i InterSystems IRIS ma ke ʻano he kahua no ka hoʻomohala ʻana a i ʻole ka hoʻokipa ʻana i ka naʻauao artificial a me nā mīkini aʻo mīkini, kono mākou iā ʻoe e kūkākūkā i nā hiʻohiʻona hiki ke hoihoi i kāu ʻoihana. E kālele mākou i nā pono o kāu ʻoihana a hoʻoholo pū i kahi hoʻolālā hana; leka uila leka uila o kā mākou hui loea AI/ML - .
Source: www.habr.com
