Ev gotar li ser Python Gateway, projeyek civaka çavkaniya vekirî ya ji bo platforma daneya InterSystems IRIS e. Ev proje dihêle hûn her algorîtmayên fêrbûna makîneyê yên ku li Python-ê hatine afirandin (hawirdora sereke ji bo gelek Zanyarên Daneyê) organîze bikin, gelek pirtûkxaneyên amade bikar bînin da ku bi lez çareseriyên AI / ML-ya analîtîk ên adaptîv, robotîkî li ser platforma InterSystems IRIS biafirînin. Di vê gotarê de, ez ê nîşanî we bidim ka InterSystems IRIS çawa dikare pêvajoyên Python birêxistin bike, veguheztina daneya du-alî ya bi bandor pêk bîne, û pêvajoyên karsaziya aqilmend biafirîne.
Plan
Pîrozbahiyê
Amûrên.
Lêkirinî.
API
Hevkarîbûn.
Jupyter Notebook.
Encamên
Girêdanên.
M.L.Toolkit.
Pîrozbahiyê
Python zimanek bernamesaziya astek bilind,-armanca gelemperî ye ku li ser baştirkirina hilberîna pêşdebir û xwendina kodê ye. Di vê rêze gotaran de, ez ê li ser îmkanên karanîna zimanê Python li ser platforma InterSystems IRIS biaxivim, dema ku mebesta sereke ya vê gotarê karanîna Python wekî zimanek ji bo çêkirin û sepandina modelên fêrbûna makîneyê ye.
Fêrbûna makîneyê (ML) çînek rêbazên îstîxbarata sûnî ye, ku taybetmendiya wê ne çareseriya rasterast a pirsgirêkê ye, lê fêrbûna di pêvajoya çareserkirina gelek pirsgirêkên wekhev de ye.
Algorîtma û modelên fêrbûna makîneyê her ku diçe berbelavtir dibin. Gelek sedemên vê yekê hene, lê ew hemî bi gihîştin, sadebûn û gihîştina encamên pratîk ve tê. Ma kombûn an tewra modelkirina tora neuralî teknolojiyek nû ye?
Helbet na, lê îro ji bo xebitandina yek modelê ne hewce ye ku bi sed hezaran rêzikên kodê binivîsin û lêçûnên çêkirin û karanîna modelan her ku diçe piçûktir û piçûktir dibe.
Amûr pêşve diçin - her çend ku em ne xwediyê amûrên AI/ML yên bi tevahî GUI ne, pêşkeftina ku me bi gelek çînên din ên pergalên agahdariyê yên mîna BI-yê (ji nivîsandina kodê heya karanîna çarçove û çareseriyên mîhengkirî yên oriented GUI) dîtiye, di heman demê de tê dîtin. di amûrên çêkirina AI / ML de. Me berê qonaxa nivîsandina kodê derbas kiriye û îro em çarçoweyan ji bo çêkirin û perwerdekirina modelan bikar tînin.
Pêşveçûnên din, wek şiyana belavkirina modelek pêş-perwerdekirî ku bikarhênerê dawî divê bi tenê perwerdehiya modelê li ser daneyên xweyên taybetî biqedîne, di heman demê de destpêkirina sepandina fêrbûna makîneyê jî hêsantir dike. Van pêşkeftinan fêrbûna fêrbûna makîneyê, hem ji bo pisporan û hem jî ji bo pargîdaniyan bi tevahî hêsantir dike.
Li aliyê din, em bêtir û bêtir daneyan berhev dikin. Bi platformek daneya yekbûyî ya wekî InterSystems IRIS, hemî ev agahdarî dikarin tavilê werin amadekirin û wekî têketinê ji bo modelên fêrbûna makîneyê werin bikar anîn.
Bi derbasbûna ewr re, destpêkirina projeyên AI/ML ji berê hêsantir e. Em tenê dikarin çavkaniyên ku em hewce ne bixwin. Digel vê yekê, bi saya paralelîzasyona ku ji hêla platformên ewr ve hatî pêşkêş kirin, em dikarin dema wendakirinê xilas bikin.
Lê li ser encamên? Li vir tişt tevlihevtir dibin. Ji bo çêkirina modelan gelek amûr hene, ku ez ê paşê li ser wan nîqaş bikim. Avakirina modelek baş ne hêsan e, lê paşê çi? Qezenckirina ji karanîna modelê ji hêla karsaziyek ve jî karek ne hindik e. Koka pirsgirêkê veqetandina barkêşên kar analîtîk û danûstendinê û modelên daneyê ye. Dema ku em modelek perwerde dikin, em bi gelemperî li ser daneyên dîrokî dikin. Lê cîhê modela hatî çêkirin di pêvajoya daneya danûstendinê de ye. Ger em rojê carekê wê bimeşînin modela vedîtina danûstendina sextekar a çêtirîn çi ye? Scammers demeke dirêj bi pereyan hiştine. Pêdivî ye ku em modelê li ser daneyên dîrokî perwerde bikin, lê di heman demê de pêdivî ye ku em wê di demek rast de li ser daneyên nû yên hatinî jî bicîh bikin da ku pêvajoyên karsaziya me li gorî pêşbîniyên ku ji hêla modelê ve hatine çêkirin tevbigerin.
ML Toolkit amûrek e ku tenê wiya dike: modelan li hev tîne û hawîrdorek danûstendinê da ku modelên ku hûn ava dikin bi hêsanî rasterast di pêvajoyên karsaziya we de werin bikar anîn. Python Gateway beşek ji Amûra ML-ê ye û bi zimanê Python re entegrasyonê peyda dike (wekî R Gateway, ku beşek ji Amûrên ML-ê ye bi zimanê R re entegrasyonê peyda dike).
Amûr
Berî ku em berdewam bikin, ez dixwazim çend amûr û pirtûkxaneyên Python-ê yên ku em ê paşê bikar bînin vebêjim.
ji teknolojiya
Python zimanek bernamesaziyê ya şirovekirî, mebesta gelemperî, asta bilind e. Avantaja sereke ya zimên pirtûkxaneyek mezin a pirtûkxaneyên matematîkî, ML û AI-yê ye. Mîna ObjectScript, ew zimanek objekt-oriented e, lê her tişt bi dînamîk tê pênase kirin, ne statîk. Her weha her tişt objeyek e. Gotarên paşerojê bi ziman re nasnameyek derbas dibe. Heke hûn dixwazin dest bi fêrbûnê bikin, ez pêşniyar dikim ku bi dest pê bikin belgekirin.
IDE: Ez bikar tînim PyCharm, lê bi gelemperî много. Heke hûn Atelier bikar tînin, ji bo pêşdebirên Python pêvekek Eclipse heye. Heke hûn VS Code bikar tînin, wê hingê ji bo Python dirêjkirinek heye.
Notebook: Li şûna IDE, hûn dikarin nivîsarên xwe di notebookên serhêl de binivîsin û parve bikin. Ya herî populer ji wan e jupyter.
Pirtûkxane
Li vir navnîşek (beş) pirtûkxaneyên fêrbûna makîneyê heye:
Teknolojiyên AI / ML karsaziyê bikêrtir û guncantir dike. Wekî din, îro van teknolojiyên pêşdebirin û bicîh kirin hêsantir dibin. Li ser teknolojiyên AI/ML fêr bibin û ka ew çawa dikarin alîkariya rêxistina we bikin ku mezin bibe.
mîhengê
Gelek awayên sazkirin û karanîna Python Gateway hene:
OS
Windows
Linux
Mac
Docker
Wêne ji DockerHub bikar bînin
Awira xwe biafirînin
Bêyî rêbaza sazkirinê, hûn ê koda çavkaniyê hewce bikin. Tenê cîhê dakêşana kodê ye rûpela weşanên. Ew serbestberdanên stabîl ên ceribandinî vedihewîne, tenê ya herî paşîn bigirin. Heya niha ew 0.8 e, lê bi demê re dê yên nû hebin. Depoyê klon nekin/dakêşînin, serbestberdana herî dawî dakêşin.
OS
Ger hûn Python Gateway li ser pergalek xebitandinê saz dikin, wê hingê pêşî (bêyî pergala xebitandinê) hûn ê hewce bikin ku Python saz bikin. Ji bo vê:
Koda ObjectScript dakêşin (ango. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) ji her deverê bi hilberan re. Ger hûn dixwazin herêmek heyî ku hilberan piştgirî bike, bimeşînin: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
Cîh banga DLL/SO/DYLIB ji bo peldankê bin mînaka weya InterSystems IRIS. Pêdivî ye ku pelê pirtûkxaneyê di riya ku ji hêla vegerî ve hatî vegerandin de hebe write ##class(isc.py.Callout).GetLib().
Windows
Piştrast bike ku guherbara jîngehê ye PYTHONHOME xalên Python 3.6.7.
Piştrast bike ku guherbara jîngehê pergalê ye PATH guherbarekê dihewîne PYTHONHOME (an pelrêça ku ew nîşan dide).
Linux (Debian/Ubuntu)
Kontrol bikin ka guhêrbara jîngehê ye PATH tîne /usr/lib и /usr/lib/x86_64-linux-gnu. Pelê bikar bînin /etc/environment ji bo danîna guherbarên jîngehê.
Di doza çewtiyên undefined symbol: _Py_TrueStruct mîhengê danîn PythonLib. jî di Readme e beşa Troubleshooting hene.
Mac
Niha tenê ji python 3.6.7 piştgirî tê kirin python.org. Guherbar kontrol bikin PATH.
Ger we guhêrbarên hawîrdorê guhertiye, hilbera xwe ya InterSystems ji nû ve bidin destpêkirin.
Docker
Bikaranîna konteyneran çend avantajên xwe hene:
Portability
Bandor
Insulasyon
sivikî
Immutability
Vê kontrol bikin rêze gotaran ji bo bêtir agahdarî li ser karanîna Docker bi hilberên InterSystems re.
Hemî avahiyên Python Gateway niha li ser konteynerê ne. 2019.4.
Wêneyê qedandî
Rev: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestji bo dakêşin û xebitandina Python Gateway bi InterSystems IRIS Community Edition. Navê pêger.
Awira xwe biafirînin
Ji bo avakirina wêneyek docker, di root depoyê de bimeşînin: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Bi xwerû, wêne li ser bingeha wêneyê hatî çêkirin store/intersystems/iris-community:2019.4.0.383.0, lê belê hûn dikarin vê bi danîna guhêrbar biguherînin IMAGE.
Ji bo avakirina ji InterSystems IRIS dimeşîne: `avakirina dokerê --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag navsystemscommunity/irispy: herî dawî'.
Heke hûn wêneyek li ser bingeha InterSystems IRIS Community Edition bikar tînin, hûn ne hewce ne ku mifteyek diyar bikin.
Comments
Pêvajoya Testê isc.py.test.Process hejmarek wêneyan li pelrêçek demkî tomar dike. Dibe ku hûn bixwazin vê rêyê bi pelrêçek siwarkirî biguherînin. Ji bo vê yekê, mîhengê biguherînin WorkingDir destnîşankirina pelrêça siwarkirî.
Ji bo gihîştina termînalê, bixebitin: docker exec -it irispy sh.
Gihîştina Portalê Rêvebiriya Pergalê bi têketinê SuperUser/SYS.
Ji bo rawestandina konteynerek, birevin: docker stop irispy && docker rm --force irispy.
Kontrolkirina sazkirinê
Gava ku we Python Gateway saz kir, hêja ye ku hûn kontrol bikin ku ew dixebite. Vê kodê di termînala InterSystems IRIS de bimeşînin:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var
Python Gateway hatiye sazkirin û we piştrast kir ku ew dixebite. Wext e ku meriv dest bi karanîna wê bike!
Navbera sereke ya Python e isc.py.Main. Ew komên rêbazên jêrîn pêşkêşî dike (hemî vedigerin %Status):
îdamkirina kodê
Veguhertina danûstendinê
Şîrketa girêdayî
îdamkirina kodê
Van rêbazan dihêlin ku hûn koda Python-a keyfî bicîh bînin.
SimpleString
SimpleString rêbaza sereke ye. Ew 4 argumanên vebijarkî digire:
code rêzika kodê ye ku ji bo darvekirinê ye. Karaktera xwarina rêzê: $c(10).
result - ByRef referansa guherbara ku nirx tê de hatiye nivîsandin returnVariable.
Li jor me kiriye:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
Di vê nimûneyê de, em ji guhêrbarek Python re destnîşan dikin x wateya Hello û dixwazin nirxa guhêrbarek Python vegerînin x ji guhêrbarek ObjectScript re var.
ExecuteCode
ExecuteCode alternatîfek ewledar û kêmtir sînordar e SimpleString.
Xêzên di platforma InterSystems IRIS de bi 3 karakteran têne sînorkirin, û heke hûn dixwazin perçeyek kodê dirêjtir bikin, hûn hewce ne ku çeman bikar bînin.
Ew du argûman digire:
code - xêzek an çemek koda Python ku were darve kirin.
variable - (vebijarkî) encama darvekirinê destnîşan dike code ev guhêrbar Python.
Pêşniyar bikin ku bikar bînin:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").
Di vê nimûneyê de, em 2 bi 3 zêde dikin û encamê di guherbarek Python de hilînin y.
Veguhertina danûstendinê
Daneyên ji Python û ji Python re derbas bikin.
Python -> InterSystems IRIS
Li InterSystems IRIS 4 away hene ku hûn nirxa guhêrbarek Python bistînin, li gorî serialîzasyona ku hûn hewce ne:
String ji bo celebên daneyên hêsan û xeletkirinê.
Repr ji bo hilanîna tiştên hêsan û debugging.
JSON ji bo manîpulasyona hêsan a daneyê li ser milê InterSystems IRIS.
Pickle ji bo rizgarkirina tiştan.
Van rêbazan dihêle hûn guhêrbaran ji Python-ê wekî rêzek an wekî çeman bistînin.
GetVariable(variable, serialization, .stream, useString) - bigirin serialization têgûherr variable в stream. Ger useString e 1 û serialization di xêzekê de tê danîn, paşê a string vedigere, ne stream.
GetVariableJson(variable, .stream, useString) - serialîzasyona JSON a guhêrbar bistînin.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
InterSystems IRIS -> Python
Daneyên ji InterSystems IRIS di Python de bar dike.
ExecuteQuery(query, variable, type, namespace) - databasek (pandas dataframe an list) ji lêpirsîna sql û wê li guhêrbara python saz bikin variable. Çenteyê plastîk isc.py divê li herêmê hebin namespace - Daxwaz dê li wir pêk were.
ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - Daneyên gerdûnî bar dike global ji abonetiyê start ber end di Python de wekî guherbarek celeb type: list, an jî panda dataframe. Danasîna argumanên vebijarkî mask û labels di belge û depoya polê de heye Belgeyên Veguheztina Daneyê.
ExecuteClass(class, variable, type, start, end, properties, namespace) - Daneyên polê bar dike class ji id start ber end di Python de wekî guherbarek celeb type: list, an jî panda dataframe. properties - navnîşa (ji hêla komê veqetandî) taybetmendiyên polê yên ku di nav databasê de bêne barkirin. Masks piştgirî kirin * и ?. Pêşbirk - * (hemû taybetmendiyên). Mal %%CLASSNAME paşguh kirin.
ExecuteTable(table, variable, type, start, end, properties, namespace) - Daneyên tabloyê bar dike table ji id start ber end li python.
ExecuteQuery - gerdûnî (her pirsek derbasdar a SQL dê ji Python re were derbas kirin). Lebê, ExecuteGlobal û pêlên wî ExecuteClass и ExecuteTable bi çend sînoran re kar bikin. Ew pir zûtir in (3-5 carî ji ajokera ODBC û 20 carî zûtir ji ExecuteQuery). Agahiyên bêtir li Belgeyên Veguheztina Daneyê.
Hemî van rêbazan veguheztina daneyan ji her deverê piştgirî dikin. Çenteyê plastîk isc.py divê li qada hedef hebe.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace) - derbaskirina encamên her pirsek SQL ya derbasdar ji Python re. Ev rêbaza veguhastina daneyê ya herî hêdî ye. Heke bikar bînin ExecuteGlobal û pêçanên wê peyda nabin.
Argument:
query - pirsa sql.
variable - navê guhêrbara Python ku dane tê nivîsandin.
variable - navê guhêrbara Python ku dane tê nivîsandin.
type - list an jî panda dataframe.
start - yekem abonetiya gerdûnî. Pêdivî ye %Integer.
end abonetiya dawî ya gerdûnî ye. Pêdivî ye %Integer.
mask - maskeya nirxên gerdûnî. Mask dikare ji hejmara zeviyên gerdûnî kurttir be (di vê rewşê de dê zeviyên li dawiyê werin paşguh kirin). Meriv çawa maskê format dike:
+ nirxê wekî xwe derbas bikin.
- nirx derbas bike.
b - Tîpa Boolean (0 - False, hemû yên mayî - True).
d - Dîrok (ji $ horolog, li ser Windows ji 1970, li Linux ji 1900).
t - Dem ($horolog, çirkeyên piştî nîvê şevê).
m - Demjimêr (SAL-MEH-ROJ SAET: DEQE: DUYEMÎN rêzika formatê).
labels - %Lîsteya navên stûnan. Hêmana yekem navê binnivîsê ye.
namespace - qada ku dê daxwaz lê were bicihanîn.
ExecuteClass
pêça ExecuteGlobal. Li ser bingeha pênaseya polê bangek amade dike ExecuteGlobal û gazî wî dike.
ExecuteClass(class, variable, type, start, end, properties, namespace) - Daneyên dersê ji Python re derbas dikin.
Argument:
class - navê polê
variable - navê guhêrbara Python ku dane tê nivîsandin.
type - list an jî panda dataframe.
start - Destpêkirina Id.
end - Nasnameya dawî
properties - navnîşa (ji hêla komê veqetandî) taybetmendiyên polê yên ku di nav databasê de bêne barkirin. Masks piştgirî kirin * и ?. Pêşbirk - * (hemû taybetmendiyên). Mal %%CLASSNAME paşguh kirin.
namespace - qada ku dê daxwaz lê were bicihanîn.
Hemî taybetmendî wekî xwe têne derbas kirin ji bilî taybetmendiyên celeb %Date, %Time, %Boolean и %TimeStamp - ew li çînên Python-ê yên têkildar têne veguheztin.
ExecuteTable
pêça ExecuteClass. Navê sifrê werdigerîne navek polê û bang dike ExecuteClass. Destnîşan:
ExecuteTable(table, variable, type, start, end, properties, namespace) - Daneyên tabloyê ji Python re derbas dikin.
Argument:
table - navê maseyê.
Hemî argumanên din wekî ku têne derbas kirin. ExecuteClass.
Nîşe
ExecuteGlobal, ExecuteClass и ExecuteTable bi heman lez dixebitin.
ExecuteGlobal 20 caran zûtir ji ExecuteQuery li ser danûstendinên mezin (dema veguheztinê > 0.01 çirke).
ExecuteGlobal, ExecuteClass и ExecuteTable li ser gerdûnên bi vê strukturê bixebitin: ^global(key) = $lb(prop1, prop2, ..., propN) ko key yekjimar e.
bo ExecuteGlobal, ExecuteClass и ExecuteTable range nirxê piştgirî %Date bi rêzê re têkildar e mktime û bi OS-ê ve girêdayî yewindows: 1970-01-01, linux 1900-01-01, mac). Bikaranîn %TimeStampda ku daneyan li derveyî vê rêzê derbas bikin an jî dataframe pandayan wekî bikar bînin ev sînor tenê ji bo navnîşê ye.
bo ExecuteGlobal, ExecuteClass и ExecuteTable hemî arguman ji bilî çavkaniya daneyê (gerdûnî, çîn an tablo) û guhêrbar vebijarkî ne.
wergerandî
çîna testê isc.py.test.Person rêbazek heye ku hemî vebijarkên veguheztina daneyê destnîşan dike:
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)
rêbaza banga do ##class(isc.py.test.Person).Test() ji bo ku hûn bibînin ka hemî awayên veguheztina daneyê çawa dixebitin.
Rêbazên Alîkar
GetVariableInfo(variable, serialization, .defined, .type, .length) - di derbarê guhêrbar de agahdarî bistînin: ka ew diyarkirî ye, çîn û dirêjahiya serialkirinê.
GetVariableDefined(variable, .defined) - gelo guhêrbar hatiye diyarkirin.
GetStatus() - îstîsna paşîn a li aliyê Python-ê bistînin û rakin.
GetModuleInfo(module, .imported, .alias) - guherbara modulê bistînin û statûya îtxal bikin.
GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - agahdariya li ser fonksiyonê bistînin.
Hevkarîbûn
Hûn fêr bûne ka meriv çawa ji termînalê gazî Python Gateway dike, naha em dest bi karanîna wê di hilberînê de bikin. Bingeha têkiliya bi Python re di vê modê de ye isc.py.ens.Operation. Ew destûrê dide me:
Koda Python bicîh bikin
Têkoşîna Python hilînin / vegerînin
Daneyên ji Python barkirin û bistînin
Di bingeh de, operasyonek Pyhton dorpêk e isc.py.Main. Emelî isc.py.ens.Operation destûrê dide danûstendinê bi pêvajoya Python re ji hilberên InterSystems IRIS. Pênc daxwaz têne piştgirî kirin:
isc.py.msg.ExecutionRequest ji bo pêkanîna koda Python. vedigere isc.py.msg.ExecutionResponse bi encama darvekirinê û nirxên guhêrbarên daxwazkirî re.
isc.py.msg.StreamExecutionRequest ji bo pêkanîna koda Python. vedigere isc.py.msg.StreamExecutionResponse encama darvekirinê û nirxên guhêrbarên daxwazkirî. analog isc.py.msg.ExecutionRequest, lê di şûna rêzan de herikan qebûl dike û vedigerîne.
isc.py.msg.QueryRequest ji bo veguheztina encama pêkanîna pirsek SQL. vedigere Ens.Response.
isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest ku daneyên gerdûnî / çîn / sifrê derbas bikin. vedigere Ens.Response.
isc.py.msg.SaveRequest ji bo naveroka Python xilas bike. vedigere Ens.StringResponse bi nasnameya kontekstê.
isc.py.msg.RestoreRequest ji bo vegerandina çarçoveya Python.
Herweha, isc.py.ens.Operation du mîheng hene:
Initializer - Hilbijartina pola ku pêvekê pêk tîne isc.py.init.Abstract. Ew dikare ji bo barkirina fonksiyon, modul, çîn û yên wekî wan were bikar anîn. Dema ku pêvajo dest pê dike ew yek carek tê darve kirin.
PythonLib - (Tenê Linux) heke hûn xeletiyên bootê bibînin, nirxa wê saz bikin libpython3.6m.so an jî di riya tevahî ya pirtûkxaneya Python de.
Afirandina pêvajoyên karsaziyê
Du çîn hene ku pêşveçûna pêvajoyên karsaziyê hêsan dikin:
isc.py.ens.ProcessUtils destûrê dide te ku hûn şîroveyan ji çalakiyên bi veguheztina guhêrbar derxînin.
isc.py.util.BPEmulator ceribandina pêvajoyên karsaziyê bi Python re hêsan dike. Ew dikare di pêvajoya heyî de pêvajoyek karsaziyê (parçeyên Python) bimeşîne.
Cîgira guherbar
Hemî pêvajoyên karsaziyê ji mîras in isc.py.ens.ProcessUtils, dikarin rêbazê bikar bînin GetAnnotation(name) ji bo ku nirxa annotationek bi navê xwe bistînin. Annotation çalakiyê dibe ku guhêrbarên ku dê ji hêla InterSystems IRIS ve bêne nirxandin berî ku ji Python re derbas bibin hene. Li vir hevoksaziya ji bo veguheztina guhêrbar heye:
${class:method:arg1:...:argN} - banga rêbazê
#{expr} - kodê di zimanê ObjectScript de bicîh bikin.
Mînakek di pêvajoya karsaziya ceribandinê de heye isc.py.test.ProcessJi bo nimûne, di çalakiyê de Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Di vê nimûneyê de:
#{process.WorkDirectory} taybetmendiya WorkDirectory ya objeyê vedigerîne process, ku mînakek polê ye isc.py.test.Process ewan. pêvajoya karsaziya heyî.
${%PopulateUtils:Integer:1:100} rêbazek bang dike Integer çîn %PopulateUtils, derbaskirina argumanan 1 и 100, di nav rêzê de jimareyek bêkêmasî vedigerîne 1...100.
Pêvajoya karsaziyê test bikin
Hilberîna ceribandinê û pêvajoya karsaziya ceribandinê ji hêla xwerû ve wekî beşek ji Python Gateway heye. Ji bo bikaranîna wan:
Di xebitandina termînala OS-ê de: pip install pandas matplotlib seaborn.
Di termînala IRIS ya InterSystems de, bixebitin: do ##class(isc.py.test.CannibalizationData).Import() da ku daneyên testê dagire.
Cureyê daxwaznameyê bişînin Ens.Request в isc.py.test.Process.
Ka em bibînin ka ew hemî bi hev re çawa dixebite. Vekirî isc.py.test.Process di edîtorê BPL de:
îdamkirina kodê
Banga herî girîng pêkanîna koda Python e:
Daxwaz tê bikaranîn isc.py.msg.ExecutionRequest, li vir taybetmendiyên wê hene:
Code - Koda Python.
SeparateLines - gelo ji bo darvekirinê kodê di nav rêzan de parçe bikin. $c(10) (n) ji bo veqetandina rêzan tê bikaranîn. Bala xwe bidinê ku NE tê pêşniyar kirin ku meriv bi yekcarê tevahiya peyamê bişopîne, ev fonksiyon tenê ji bo pêvajoyê ye def û bêjeyên pirreng ên mîna hev. Destçûnî 0.
Variables lîsteyek guhêrbarên veqetandî ye ku dê li bersivê were zêdekirin.
Serialization - Meriv çawa guhêrbarên ku em dixwazin vegerînin serialîze bikin. Vebijêrk: Str, Repr, JSON, Pickle и Dill, default Str.
Di doza me de, me tenê xanî destnîşan kir Code, da ku hemî taybetmendiyên din nirxên xweyên xwerû bikar bînin. Me bi telefonê saz kir process.GetAnnotation("Import pandas"), ku di dema xebitandinê de piştî ku guheztina guhêrbar tê kirin annotasyonek vedigerîne. Di dawiyê de kod import pandas as pd dê ji Python re derbas bibe. GetAnnotation dikare ji bo wergirtina nivîsarên Python-ê yên pir-xêz bikêr be, lê di vî awayê wergirtina kodê de ti sînorkirin tune. Hûn dikarin xanî saz bikin Code bi her awayî ji bo we rehet e.
Girtina Guherbaran
Pirsgirêkek din a balkêş bikar tîne isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:
Ew Matrixa Têkiliyê li aliyê Python hesab dike û guhêrbar derdixe corrmat bi danîna taybetmendiyên daxwaznameyê vegere InterSystems IRIS di formata JSON de:
Variables: "corrmat"
Serialization: "JSON"
Em dikarin encamên di Visual Trace de bibînin:
Û heke em di BP-ê de vê nirxê hewce ne, ew dikare bi vî rengî were bidestxistin: callresponse.Variables.GetAt("corrmat").
Veguhertina danûstendinê
Dûv re, bila em li ser veguheztina daneyan ji InterSystems IRIS bo Python biaxivin, hemî daxwazên veguheztina daneyê pêvekê bicîh dikin isc.py.msg.DataRequest, ku taybetmendiyên jêrîn peyda dike:
Variable guhêrbarek Python e ku dane tê nivîsandin.
Type - type variable: dataframe (pandas dataframe) an list.
Namespace - herêma ku em jê daneyan distînin. Çenteyê plastîk isc.py divê di vî warî de hebin. Ev dibe ku herêmek bêyî piştgiriya hilberê be.
Li ser bingeha vê navberê, 4 çînên daxwazan têne bicîh kirin:
isc.py.msg.QueryRequest - milkê danîn Query ji bo şandina pirsek SQL.
isc.py.msg.ClassRequest - milkê danîn Class ku daneyên polê derbas bikin.
isc.py.msg.TableRequest - milkê danîn Table ku daneyên sifrê derbas bikin.
isc.py.msg.GlobalRequest - milkê danîn Global ji bo veguhestina daneyan li cîhanê.
Di pêvajoya testê de, li çalakiyê binêrin RAWko isc.py.msg.QueryRequest di çalakiyê de tê nîşandan.
Tomarkirin / Vegerandina Pêvekek Python
Di dawiyê de, em dikarin çarçoveya Python-ê di InterSystems IRIS de hilînin, ji bo vê yekê bikin, bişînin isc.py.msg.SaveRequest bi argumanan:
Mask - Tenê guhêrbarên ku maskê têr dikin têne tomar kirin. Piştgirî kirin * и ?... Mînak: "Data*, Figure?"... Destçûnî *.
MaxLength - Dirêjahiya herî zêde ya guherbara hilanîn. Ger serialîzasyona guhêrbar dirêjtir be, wê hingê ew ê were paşguh kirin. Ji bo guhêrbarên her dirêjahî bistînin 0 destnîşan bikin. Destçûnî $$$MaxStringLength.
Name - Navê naverokê (vebijarkî).
Description - Danasîna çarçoveyê (vebijarkî).
Vedigere Ens.StringResponse с Id çarçoveya rizgar kirin. Di pêvajoya testê de, li çalakiyê binêrin Save Context.
Daxwaza têkildar isc.py.msg.RestoreRequest çarçoveyek ji InterSystems IRIS li Python bar dike:
ContextId nasnameya kontekstê ye.
Clear - Berî vesazkirinê çarçovê paqij bikin.
Jupyter Notebook
Jupyter Notebook serîlêdanek webê ya çavkaniyek vekirî ye ku destûrê dide te ku hûn notebookên ku tê de kod, dîmen û nivîs hene biafirînin û biweşînin. Python Gateway dihêle hûn pêvajoyên BPL-ê wekî Notebookek Jupyter bibînin û biguherînin. Têbînî ku îcrakarê birêkûpêk Python 3 niha tê bikar anîn.
Ev pêvek texmîn dike ku şirove koda Python-ê dihewîne û navên çalakiyê wekî sernavên pêşîn bikar tîne. Naha gengaz e ku meriv pêvajoyên karsaziya PythonGateway di Jupyter Notebook de pêşve bibe. Li vir çi gengaz e:
MLToolkit komek amûran e ku armanc dike ku modelan û hawîrdorek danûstendinê bihevre bike da ku modelên çêkirî bi hêsanî rasterast di pêvajoyên karsaziya we de werin bikar anîn. Python Gateway beşek ji MLToolkit-ê ye û bi zimanê Python re entegrasyonê peyda dike, ku dihêle hûn her algorîtmayên fêrbûna makîneyê yên ku li Python-ê hatine afirandin (hawirdora bingehîn ji bo gelek Zanyarên Daneyê) organîze bikin, gelek pirtûkxaneyên amade bikar bînin da ku zû biafirînin AI-ya analîtîk a adapteyî, robotîkî / Çareseriyên ML li ser platforma InterSystems IRIS.
Koma bikarhênerê MLToolkit depoyek GitHub ya taybet e ku wekî beşek ji rêxistina GitHub ya pargîdanî ya InterSystems hatî afirandin. Ew ji bikarhênerên derveyî yên ku saz dikin, fêr dibin, an jî berê xwe didin pêkhateyên MLToolkit, tevî Python Gateway, têne navnîş kirin. Kom di warên kirrûbirra, çêkirinê, derman û gelek pîşesaziyên din de hejmarek dozên hatine bicîh kirin (bi koda çavkaniyê û daneyên ceribandinê). Ji bo ku hûn beşdarî koma bikarhênerê ML Toolkit bibin, ji kerema xwe e-nameyek kurt bişînin navnîşana jêrîn: [email parastî] û di nameya xwe de agahdariya jêrîn bicîh bikin:
Navê bikarhêner GitHub
Rêxistin (hûn dixebitin an dixwînin)
Position (helwesta weya rastîn di rêxistina we de, an "Xwendekar" an "Serbixwe").
welat
Ji bo kesên ku gotar xwendiye û bi InterSystems IRIS re eleqedar in wekî platformek ji bo pêşdebirin an mêvandariya mekanîzmayên fêrbûna makîneyê û îstîxbarata sûnî, em we vedixwînin ku hûn senaryoyên mimkun ên balkêş ên pargîdaniya we nîqaş bikin. Em ê bi hêsanî hewcedariyên pargîdaniya we analîz bikin û bi hev re plansaziyek çalakiyê diyar bikin; navnîşana e-nameya têkiliyê ya koma meya pisporê AI/ML - [email parastî].