ʻ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 palapala.
IDE: Ke hoʻohana nei au ʻO PyCharm, akā ma ka laulā he nui. 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 ʻO Jupyter.
Waihona Puke
Eia kahi papa inoa (ʻāpana) o nā hale waihona puke aʻo mīkini:
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 hoʻokuʻu ʻaoʻao. 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:
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 kahea DLL/SO/DYLIB i ka waihona bin kāu laʻana InterSystems IRIS. Pono e loaʻa ka waihona waihona ma ke ala i hoʻihoʻi ʻia e write ##class(isc.py.Callout).GetLib().
Windows
E hōʻoia i ka loli kaiapuni PYTHONHOME kuhikuhi iā Python 3.6.7.
E hōʻoia i ka loli kaiapuni ʻōnaehana PATH loaʻa i kahi loli PYTHONHOME (a i ʻole ka papa kuhikuhi e kuhikuhi ai).
Linux (Debian/Ubuntu)
E nānā inā he loli kaiapuni PATH aia i loko /usr/lib и /usr/lib/x86_64-linux-gnu. E hoʻohana i ka faila /etc/environment e hoʻonohonoho i nā mea hoʻololi kaiapuni.
Ina he hewa undefined symbol: _Py_TrueStruct hoʻonohonoho i ka hoʻonohonoho PythonLib. i loko nō hoʻi Heluhelu aia kahi ʻāpana Hoʻoponopono.
Mac
I kēia manawa, kākoʻo wale ʻia ka python 3.6.7 mai python.org. 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 he moʻo ʻatikala 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:
Inā 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.Process mā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ʻonohonoho WorkingDir e 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 var
Pono 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ā Readme—Pauku hoʻoponopono.
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 ai returnVariable. 0 - kaula (paʻamau), 1 - repr.
result - ByRef e pili ana i ka loli kahi i kākau ʻia ai ka waiwai returnVariable.
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ō code keia 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:
String no nā ʻano ʻikepili maʻalahi a me ka debugging.
Repr no ka mālama ʻana i nā mea maʻalahi a me ka debugging.
JSON no ka hoʻololi maʻalahi o ka ʻikepili ma ka ʻaoʻao InterSystems IRIS.
Pickle e 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) - loaa serialization loli variable в 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.
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
>6
InterSystems IRIS -> Python
Ke hoʻouka nei i ka ʻikepili mai InterSystems IRIS i Python.
ExecuteQuery(query, variable, type, namespace) - hana i kahi waihona (pandas dataframe ai ole ia, list) mai ka nīnau sql a hoʻonoho iā ia i ka hoʻololi python variable. Eke 'ūlina isc.py pono e loaa ma ia wahi namespace - e hoʻokō ʻia ka noi ma laila.
ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - hoʻouka i ka ʻikepili honua global mai ka palapala inoa start i luna end ma Python ma ke ʻano he ʻano hoʻololi type: list, a i ʻole nā pandas dataframe. ʻO ka wehewehe ʻana i nā manaʻo koho mask a labels loaʻa ma ka papa palapala a me ka waihona Nā palapala hoʻoili ʻikepili.
ExecuteClass(class, variable, type, start, end, properties, namespace) - hoʻouka i ka ʻikepili papa class mai id start i luna end ma Python ma ke ʻano he ʻano hoʻololi type: list, a i ʻole nā pandas dataframe. 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 %%CLASSNAME mālama ʻole ʻia.
ExecuteTable(table, variable, type, start, end, properties, namespace) - hoʻouka i ka ʻikepili papa table mai id start i luna end i 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 Nā palapala hoʻoili ʻikepili.
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.
variable - ka inoa o ka helu Python kahi i kākau ʻia ai ka ʻikepili.
type - list a i ʻole nā pandas dataframe.
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 — Ka lā (mai $horolog, ma Windows mai 1970, ma Linux mai 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 papa
variable - ka inoa o ka helu Python kahi i kākau ʻia ai ka ʻikepili.
type - list a i ʻole nā pandas dataframe.
start — hoomaka Id.
end - Id hope loa
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 %%CLASSNAME mā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.
ExecuteGlobal, ExecuteClass и ExecuteTable hana wikiwiki like.
ExecuteGlobal 20 manawa ʻoi aku ka wikiwiki ma mua o ExecuteQuery ma nā ʻikepili nui (ka manawa hoʻoili > 0.01 kekona).
ExecuteGlobal, ExecuteClass и ExecuteTable e hana ma ka honua me kēia ʻano: ^global(key) = $lb(prop1, prop2, ..., propN) kahi key he huinahelu.
no ka mea, ExecuteGlobal, ExecuteClass и ExecuteTable laulā waiwai kākoʻo %Date pili i ka laulā mktime a pili i ka OSmakani: 1970-01-01, makefile linux 1900-01-01, mac). 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 isc.py.test.Person 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.ExecutionRequest e hoʻokō i ka code Python. hoʻi isc.py.msg.ExecutionResponse me ka hopena hoʻokō a me nā waiwai o nā mea i noi ʻia.
isc.py.msg.StreamExecutionRequest e hoʻokō i ka code Python. hoʻi isc.py.msg.StreamExecutionResponse ka hopena o ka hoʻokō a me nā waiwai o nā mea i noi ʻia. Analog isc.py.msg.ExecutionRequest, akā ʻae a hoʻihoʻi i nā kahawai ma kahi o nā kaula.
isc.py.msg.QueryRequest e hoʻololi i ka hopena o ka hoʻokō ʻana i kahi nīnau SQL. hoʻi Ens.Response.
isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest e hele i ka ʻikepili honua/papa/papa. hoʻi Ens.Response.
isc.py.msg.SaveRequest e mālama i ka pōʻaiapili Python. hoʻi Ens.StringResponse me ka ID pōʻaiapili.
isc.py.msg.RestoreRequest e 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 interface isc.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 - (Linux wale nō) inā ʻike ʻoe i nā hewa boot, e hoʻonoho i kona waiwai i libpython3.6m.so a 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.ProcessUtils hiki iā ʻoe ke unuhi i nā annotation mai nā hana me ka hoʻololi ʻana.
isc.py.util.BPEmulator maʻ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 mea process, he mea ia o ka papa isc.py.test.Process ka poe. kaʻina hana ʻoihana i kēia manawa.
${%PopulateUtils:Integer:1:100} kahea i ke ano Integer keka %PopulateUtils, hoʻopaʻapaʻa hala 1 и 100, e ho'iho'i ana i ka huina helu ma ka laula 1...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 hana def a me nā huaʻōlelo multiline like. Default 0.
Variables he 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ʻamau Str.
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:
Variable he ʻano Python kahi i kākau ʻia ai ka ʻikepili.
Type - ʻano hoʻololi: dataframe (pandas dataframe) a i ʻole list.
Namespace - kahi i loaʻa ai iā mākou ka ʻikepili. Eke 'ūlina isc.py pono 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 waiwai Query e hoʻouna i kahi nīnau SQL.
isc.py.msg.ClassRequest - hoʻonohonoho waiwai Class e hele i ka ʻikepili papa.
isc.py.msg.TableRequest - hoʻonohonoho waiwai Table e hāʻawi i ka ʻikepili papa.
isc.py.msg.GlobalRequest - hoʻonohonoho waiwai Global e 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
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:
ʻ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.
ʻ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: [pale ʻia ka leka uila] 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 - [pale ʻia ka leka uila].