Artikel ieu ngeunaan Python Gateway, proyék komunitas open source pikeun platform data InterSystems IRIS. Proyék ieu ngamungkinkeun anjeun pikeun ngatur algoritma pembelajaran mesin anu diciptakeun dina Python (lingkungan utama pikeun seueur Data Élmuwan), ngagunakeun seueur perpustakaan anu siap-siap pikeun gancang nyiptakeun solusi AI / ML analitik robotic adaptif dina platform InterSystems IRIS. Dina tulisan ieu, kuring bakal nunjukkeun kumaha InterSystems IRIS tiasa ngatur prosés dina Python, éfisién komunikasi data dua arah, sareng nyiptakeun prosés bisnis anu cerdas.
Rencanana
Bubuka.
Parabot.
Pamasangan.
API.
Interoperabilitas.
Notebook Jupyter.
Conclusions.
Tumbu.
MLToolkit.
perkenalan
Python mangrupikeun basa pamrograman tingkat luhur, tujuan umum anu ditujukeun pikeun ningkatkeun produktivitas pamekar sareng kabacaan kode. Dina séri artikel ieu, kuring bakal ngabahas kamungkinan ngagunakeun Python dina platform InterSystems IRIS, kalayan fokus utama tulisan ieu nyaéta ngagunakeun Python salaku basa pikeun nyiptakeun sareng ngajalankeun modél pembelajaran mesin.
Pembelajaran mesin (ML) mangrupikeun kelas metode intelijen buatan, anu ciri anu sanés mangrupikeun solusi langsung tina masalah, tapi diajar dina prosés ngarengsekeun seueur masalah anu sami.
Algoritma sareng modél pembelajaran mesin janten langkung umum. Aya seueur alesan pikeun ieu, tapi éta sadayana turun kana aksésibilitas, kesederhanaan sareng ngahontal hasil praktis. Naha clustering atanapi bahkan model jaringan saraf mangrupikeun téknologi énggal?
Tangtosna henteu, tapi ayeuna henteu kedah nyerat ratusan rébu garis kode pikeun ngajalankeun modél tunggal, sareng biaya nyiptakeun sareng ngagunakeun modél janten sakedik.
Parabot ngembang - bari urang teu boga pinuh GUI-centric AI / ML parabot, kamajuan urang geus katempo ku loba kelas séjén sistem informasi, kayaning BI (ti nulis kode nepi ka ngagunakeun frameworks na GUI-centric solusi configurable), nyaeta. ogé dititénan dina parabot pikeun nyieun AI / ML. Kami parantos ngalangkungan tahapan nyerat kode sareng ayeuna kami nganggo kerangka pikeun ngawangun sareng ngalatih modél.
Perbaikan sanésna, sapertos kamampuan pikeun ngadistribusikaeun modél anu tos dilatih dimana pangguna akhir ngan saukur kedah ngabéréskeun palatihan modél dina data khususna, ogé ngagampangkeun pikeun ngamimitian diajar mesin. Kamajuan ieu ngajantenkeun diajar mesin diajar langkung gampang pikeun profésional sareng perusahaan umumna.
Di sisi anu sanésna, kami ngumpulkeun langkung seueur data. Kalayan platform data ngahiji sapertos InterSystems IRIS, sadaya inpormasi ieu tiasa langsung disiapkeun sareng dianggo salaku input pikeun modél pembelajaran mesin.
Kalayan pindah ka awan, ngaluncurkeun proyék AI / ML janten langkung gampang ti kantos. Urang ukur bisa meakeun sumberdaya urang butuh. Sumawona, hatur nuhun kana parallelization ditawarkeun ku platform awan, urang tiasa ngahemat waktos spent.
Tapi kumaha hasilna? Ieu tempat hal jadi leuwih pajeulit. Aya seueur alat pikeun ngawangun modél, anu bakal kuring bahas salajengna. Ngawangun modél anu saé henteu gampang, tapi kumaha salajengna? Ngahasilkeun kauntungan tina ngagunakeun modél bisnis ogé mangrupikeun tugas anu henteu sepele. Akar masalahna nyaéta pamisahan beban kerja analitis sareng transaksional, sareng modél data. Nalika urang ngalatih modél, urang biasana ngalakukeun dina data sajarah. Tapi tempat pikeun modél anu diwangun nyaéta dina ngolah data transaksional. Naon gunana modél deteksi transaksi curang anu pangsaéna upami urang ngajalankeunana sakali sapoé? The scammers geus lila ditinggalkeun mawa duit. Urang kedah ngalatih modél dina data sajarah, tapi urang ogé kedah nerapkeunana sacara real waktos dina data énggal anu énggal supados prosés bisnis urang tiasa ngalaksanakeun prediksi anu dilakukeun ku modél.
ML Toolkit mangrupikeun sakumpulan alat anu tujuanana pikeun ngalakukeun éta: ngahijikeun modél sareng lingkungan transaksional supados modél anu diwangun tiasa gampang dianggo langsung dina prosés bisnis anjeun. Python gateway mangrupa bagian tina ML Toolkit jeung nyadiakeun integrasi jeung basa Python (sarupa kumaha R gateway, jadi bagian tina ML Toolkit nyadiakeun integrasi jeung basa Sunda).
Parabot
Sateuacan urang neraskeun, Abdi hoyong ngajelaskeun sababaraha alat Python sareng perpustakaan anu bakal kami anggo engké.
téknologi
Python mangrupikeun basa pamrograman anu diinterpretasi, tingkat luhur, tujuan umum. Kauntungan utama basa nyaéta perpustakaan matematika, ML sareng AI anu ageung. Sapertos ObjectScript, éta mangrupikeun basa anu berorientasi obyék, tapi sadayana dihartikeun sacara dinamis tinimbang statis. Ogé sagalana mangrupa obyék. Engké artikel nganggap familiarity ngaliwatan basa. Upami anjeun hoyong ngamimitian diajar, kuring nyarankeun dimimitian ku dokuméntasi.
IDE: Kuring make PyCharm, tapi sacara umum aranjeunna много. Upami anjeun nganggo Atelier, aya plugin Eclipse pikeun pamekar Python. Upami anjeun nganggo VS Code, aya ekstensi pikeun Python.
Notebook: Gantina IDE, anjeun tiasa nyerat sareng ngabagi skrip anjeun dina buku catetan online. Nu pang populerna di antarana nyaéta jupyter.
Perpustakaan
Ieu daptar (henteu lengkep) perpustakaan mesin learning:
Téknologi AI/ML ngajantenkeun bisnis langkung éfisién sareng adaptasi. Sumawona, ayeuna téknologi ieu janten langkung gampang dikembangkeun sareng diimplementasikeun. Mimitian diajar ngeunaan téknologi AI/ML sareng kumaha aranjeunna tiasa ngabantosan organisasi anjeun tumbuh.
setting
Aya sababaraha cara pikeun masang sareng nganggo Python Gateway:
OS
Windows
Linux
Mac
Docker
Anggo gambar tina DockerHub
Jieun katingal anjeun sorangan
Henteu paduli metode pamasangan, anjeun peryogi kode sumber. Hiji-hijina tempat pikeun ngundeur kode téh kaca release. Éta ngandung sékrési stabil anu diuji, ngan ukur anu énggal. Di momen éta 0.8, tapi kana waktu bakal aya nu anyar. Ulah clone / ngundeur gudang, undeur release panganyarna.
OS
Upami anjeun masang Python Gateway dina sistem operasi, maka mimitina (paduli sistem operasi) anjeun kedah masang Python. Kanggo ieu:
Unduh kodeu ObjectScript (ie. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) ka wewengkon mana wae nu mibanda produk. Upami anjeun hoyong daérah anu tos aya pikeun ngadukung produk, jalankeun: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
Tempat callout DLL/SO/DYLIB kana map bin conto InterSystems IRIS anjeun. file perpustakaan kudu sadia dina jalur balik write ##class(isc.py.Callout).GetLib().
Windows
Pastikeun variabel lingkungan PYTHONHOME nunjuk ka Python 3.6.7.
Pastikeun variabel lingkungan sistem PATH ngandung variabel PYTHONHOME (atanapi diréktori anu ditunjuk).
Linux (Debian/Ubuntu)
Pariksa yén variabel lingkungan nyaéta PATH ngandung /usr/lib и /usr/lib/x86_64-linux-gnu. Paké file /etc/environment pikeun nyetel variabel lingkungan.
Bisi aya kasalahan undefined symbol: _Py_TrueStruct nyetel setelan PythonLib. oge di readme aya bagian Troubleshooting.
Mac
Ayeuna ngan Python 3.6.7 dirojong python.org. Pariksa variabel PATH.
Upami anjeun ngarobih variabel lingkungan, balikan deui produk InterSystems anjeun.
Docker
Ngagunakeun wadahna boga sababaraha kaunggulan:
Portability
éféktivitas
penyekatan
énténg
Immutability
Pariksa ieu runtuyan artikel kanggo inpormasi anu langkung lengkep ihwal ngagunakeun Docker sareng produk InterSystems.
Kabéh Python Gateway ngawangun ayeuna wadahna dumasar 2019.4.
Gambar siap
ngajalankeun: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestpikeun ngundeur tur ngajalankeun Python Gateway kalawan InterSystems IRIS Komunitas Edition. Éta hungkul.
Jieun katingal anjeun sorangan
Pikeun ngawangun gambar docker, jalankeun dina akar gudang: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Sacara standar, gambar diwangun dumasar kana gambar store/intersystems/iris-community:2019.4.0.383.0, Tapi anjeun bisa ngarobah ieu ku netepkeun variabel IMAGE.
Pikeun ngawangun ti InterSystems IRIS, jalankeun: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy: latest ".
Saatos ieu anjeun tiasa ngajalankeun gambar docker:
Upami anjeun nganggo gambar dumasar kana InterSystems IRIS Community Edition, anjeun tiasa ngaleungitkeun konci éta.
koméntar
Prosés tés isc.py.test.Process nyimpen sababaraha gambar ka diréktori samentara. Anjeun meureun hoyong ngarobah jalur ieu ka diréktori dipasang. Jang ngalampahkeun ieu, edit setelan WorkingDir nangtukeun diréktori dipasang.
Pikeun ngakses terminal ngajalankeun: docker exec -it irispy sh.
Aksés ka Portal Manajemén Sistem ku login SuperUser/SYS.
Sakali anjeun tos dipasang Python Gateway, éta patut pariksa yen eta jalan. Jalankeun kode ieu dina terminal InterSystems IRIS:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var
hasilna kedah kieu: HELLO - Nilai variabel Python x. Lamun status mulang sc mangrupa kasalahan atawa var kosong, cek Readme - Bagian ngungkulan.
API
Python gateway dipasang jeung anjeun geus diverifikasi yén gawéna. Waktosna pikeun ngamimitian ngagunakeunana!
Antarbeungeut utama pikeun Python nyaéta isc.py.Main. Ieu nawiskeun grup metode di handap ieu (sadayana balik %Status):
Kode Palaksanaan
Mindahkeun data
Pambantu
Kode Palaksanaan
Metoda ieu ngidinan Anjeun pikeun ngaéksekusi kode Python sawenang.
SimpleString
SimpleString - ieu métode utama. Butuh 4 argumen pilihan:
code - garis kode pikeun ngaéksekusi. Karakter feed garis: $c(10).
result - Rujukan ByRef kana variabel anu nilaina ditulis returnVariable.
Di luhur urang ngalakukeun:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
Dina conto ieu, urang napelkeun ka variabel Python x harti Hello sarta rék balik nilai variabel Python x kana variabel ObjectScript var.
ExecuteCode
ExecuteCode mangrupikeun alternatif anu langkung aman sareng kirang restrictive SimpleString.
Garis dina platform InterSystems IRIS dugi ka 3 karakter, sareng upami anjeun hoyong ngaéksekusi kode anu langkung panjang, anjeun kedah nganggo benang.
Dua argumen anu ditarima:
code - garis atawa aliran kode Python bakal dieksekusi.
variable - (opsional) napelkeun hasil palaksanaan code variabel Python ieu.
Conto ngagunakeun:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").
Dina conto ieu, urang kalikeun 2 ku 3 jeung nulis hasilna kana variabel Python y.
Mindahkeun data
Pas data ka sareng ti Python.
Python -> InterSystems IRIS
Aya 4 cara pikeun kéngingkeun nilai variabel Python dina InterSystems IRIS, gumantung kana serialisasi anu anjeun peryogikeun:
String pikeun tipe data basajan tur debugging.
Repr pikeun nyimpen objék basajan tur debugging.
JSON pikeun manipulasi data gampang dina sisi InterSystems IRIS.
Pickle pikeun nyimpen objék.
Métode ieu ngamungkinkeun anjeun nyandak variabel tina Python salaku senar atanapi aliran.
GetVariable(variable, serialization, .stream, useString) - meunang serialization variabel variable в stream. Upami useString mangrupa 1 sarta serialization ieu disimpen dina senar a, lajeng string a balik teu stream a.
GetVariableJson(variable, .stream, useString) - kéngingkeun serialisasi JSON tina variabel.
Hayu urang coba pikeun meunangkeun variabel urang y.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
InterSystems IRIS -> Python
Ngamuat data tina InterSystems IRIS kana Python.
ExecuteQuery(query, variable, type, namespace) - nyiptakeun set data (pandas dataframe atawa list) tina query sql sareng nyetél kana variabel Python variable. Kantong plastik isc.py kudu sadia di wewengkon namespace - pamundut bakal dieksekusi dinya.
ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - beban data global global tina langganan start ka end dina Python salaku variabel tipe type: list, atawa panda dataframe. Pedaran argumen pilihan mask jeung labels sayogi dina dokuméntasi kelas sareng gudang Dokumén Transfer Data.
ExecuteClass(class, variable, type, start, end, properties, namespace) - ngamuat data kelas class ti id start ka end dina Python salaku variabel tipe type: list, atawa panda dataframe. properties - daptar (dipisahkeun ku koma) sipat kelas nu kudu dimuat kana set data. Topeng dirojong * и ?. Default - * (sagala sipat). Harta %%CLASSNAME teu dipaliré.
ExecuteTable(table, variable, type, start, end, properties, namespace) - ngamuat data tabel table ti id start ka end dina Python.
ExecuteQuery - universal (sakur query SQL bener bakal dibikeun ka Python). Sanajan kitu, ExecuteGlobal jeung bungkusna ExecuteClass и ExecuteTable dianggo kalayan sababaraha larangan. Aranjeunna langkung gancang (3-5 kali langkung gancang tibatan supir ODBC sareng 20 kali langkung gancang ExecuteQuery). Inpo leuwih lengkep di Dokumén Transfer Data.
Sadaya metode ieu ngadukung transfer data ti daérah mana waé. Kantong plastik isc.py kudu sadia di wewengkon sasaran.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace) - nransferkeun hasil naon waé query SQL anu leres ka Python. Ieu mangrupikeun metode transfer data anu paling laun. Anggo upami ExecuteGlobal sarta wrappers na teu sadia.
Argumen:
query - pamundut sql.
variable - nami variabel Python dimana datana ditulis.
type - list atawa Pandas dataframe.
namespace - wewengkon dimana pamundut bakal dieksekusi.
ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - ngalirkeun global di Python.
Argumen:
global - ngaran global tanpa ^
variable - nami variabel Python dimana datana ditulis.
type - list atawa Pandas dataframe.
start - langganan munggaran global. kuduna %Integer.
end - langganan panungtungan global. kuduna %Integer.
mask - topeng nilai global. Topeng tiasa langkung pondok tibatan jumlah widang di global (dina hal éta widang di tungtung bakal dilewatan). Kumaha pormat masker:
+ lulus nilai sakumaha anu kasebut.
- nilai skip.
b - Tipe Boolean (0 - False, kabéh sésana - True).
d — Tanggal (tina $horolog, dina Windows ti 1970, dina Linux ti 1900).
t - Waktos ($horolog, detik sanggeus tengah wengi).
m — Stempel waktos (format string YEAR-MONTH-DAY HOUR:MINUTE:SECOND).
labels — %Daptar ngaran kolom. Unsur kahiji nyaeta nami subscript.
namespace - wewengkon dimana pamundut bakal dieksekusi.
ExecuteClass
Bungkus deui ExecuteGlobal. Dumasar kana definisi kelas, nyiapkeun sauran ExecuteGlobal sarta nelepon anjeunna.
ExecuteClass(class, variable, type, start, end, properties, namespace) - ngalirkeun data kelas di Python.
Argumen:
class - ngaran kelas
variable - nami variabel Python dimana datana ditulis.
type - list atawa Pandas dataframe.
start - ngamimitian ID.
end - Id ahir
properties - daptar (dipisahkeun ku koma) sipat kelas nu kudu dimuat kana set data. Topeng dirojong * и ?. Default - * (sagala sipat). Harta %%CLASSNAME teu dipaliré.
namespace - wewengkon dimana pamundut bakal dieksekusi.
Sadaya sipat anu diliwatan sakumaha anu iwal tipe sipat %Date, %Time, %Boolean и %TimeStamp - aranjeunna dirobah jadi kelas Python pakait.
ExecuteTable
Bungkus deui ExecuteClass. Narjamahkeun nami tabel kana nami kelas sareng telepon ExecuteClass. tanda tangan:
ExecuteTable(table, variable, type, start, end, properties, namespace) - ngalirkeun data tabel ka Python.
Argumen:
table - ngaran méja.
Sadaya argumen anu sanés disayogikeun ExecuteClass.
Catetan
ExecuteGlobal, ExecuteClass и ExecuteTable gawéna sarua gancang.
ExecuteGlobal 20 kali leuwih gancang ti ExecuteQuery dina set data badag (waktu mindahkeun> 0.01 detik).
ExecuteGlobal, ExecuteClass и ExecuteTable dianggo dina globals kalawan struktur ieu: ^global(key) = $lb(prop1, prop2, ..., propN) di mana key - hiji integer.
keur ExecuteGlobal, ExecuteClass и ExecuteTable rentang dirojong tina nilai %Date pakait jeung rentang mktime sareng gumantung kana OS (jandela: 1970-01-01, linux 1900-01-01, Mac). Paké %TimeStamppikeun mindahkeun data luar rentang ieu atawa ngagunakeun pandas dataframe sabab ieu mangrupa watesan daptar wungkul.
keur ExecuteGlobal, ExecuteClass и ExecuteTable kabéh argumen iwal sumber data (global, kelas atawa tabel) jeung variabel anu pilihan.
conto
Kelas tés isc.py.test.Person ngandung metodeu anu nunjukkeun sadaya pilihan transfer data:
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)
Nelepon métode do ##class(isc.py.test.Person).Test() pikeun ningali kumaha sadaya metode transfer data jalan.
Métode Helper
GetVariableInfo(variable, serialization, .defined, .type, .length) - Kéngingkeun inpormasi ngeunaan variabel: naha éta ditetepkeun, kelasna sareng panjangna serialisasi.
GetVariableDefined(variable, .defined) - naha variabel diartikeun.
GetVariableType(variable, .type) - meunang kelas variabel.
GetStatus() - meunang jeung cabut iwal panungtungan di sisi Python.
GetModuleInfo(module, .imported, .alias) - Kéngingkeun variabel modul sareng status impor.
GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - meunang informasi ngeunaan fungsi.
Interoperabilitas
Anjeun parantos diajar kumaha nelepon Python Gateway tina terminal, ayeuna hayu urang mimitian nganggo éta dina produksi. Dasar pikeun berinteraksi sareng Python dina modeu ieu nyaéta isc.py.ens.Operation. Éta ngamungkinkeun urang:
Ngaéksekusi kode dina Python
Simpen / Mulangkeun konteks Python
Muat sareng nampi data tina Python
Dasarna, operasi Python mangrupa wrapper leuwih isc.py.Main. Operasi isc.py.ens.Operation nyadiakeun kamampuhan pikeun berinteraksi sareng prosés Python tina produk InterSystems IRIS. Lima patarosan dirojong:
isc.py.msg.ExecutionRequest pikeun ngaéksekusi kode Python. Mulih isc.py.msg.ExecutionResponse kalayan hasil palaksanaan sareng nilai-nilai variabel anu dipénta.
isc.py.msg.StreamExecutionRequest pikeun ngaéksekusi kode Python. Mulih isc.py.msg.StreamExecutionResponse hasil palaksanaan sareng nilai-nilai variabel anu dipénta. Analogna isc.py.msg.ExecutionRequest, tapi narima jeung mulangkeun aliran tinimbang string.
isc.py.msg.QueryRequest pikeun ngirimkeun hasil tina ngajalankeun query SQL. Mulih Ens.Response.
isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest pikeun ngalirkeun data global / kelas / méja. Mulih Ens.Response.
isc.py.msg.SaveRequest pikeun nyimpen konteks Python. Mulih Ens.StringResponse kalawan ID konteks.
isc.py.msg.RestoreRequest pikeun mulangkeun konteks Python.
Sajaba ti éta, isc.py.ens.Operation gaduh dua setélan:
Initializer - milih kelas anu ngalaksanakeun panganteur isc.py.init.Abstract. Éta tiasa dianggo pikeun ngamuat fungsi, modul, kelas, jsb. Éta dilaksanakeun sakali nalika prosésna dimimitian.
PythonLib - (Linux hungkul) upami anjeun ningali kasalahan nalika ngamuat, setel nilaina libpython3.6m.so atawa malah dina jalur pinuh ka perpustakaan Python.
Nyiptakeun prosés bisnis
Aya dua kelas sadia nu ngagampangkeun ngembangkeun prosés bisnis:
isc.py.ens.ProcessUtils ngamungkinkeun anjeun nimba anotasi tina kagiatan kalayan substitusi variabel.
isc.py.util.BPEmulator ngajadikeun eta gampang pikeun nguji prosés bisnis jeung Python. Éta tiasa ngalaksanakeun prosés bisnis (bagian Python) dina prosés ayeuna.
Substitusi Variabel
Sadaya prosés bisnis diwariskeun ti isc.py.ens.ProcessUtils, tiasa nganggo metodeu GetAnnotation(name) pikeun meunangkeun nilai annotation aktivitas ku ngaranna. Anotasi kagiatan tiasa ngandung variabel anu bakal diitung dina sisi InterSystems IRIS sateuacan dialihkeun ka Python. Ieu sintaksis pikeun substitusi variabel:
${class:method:arg1:...:argN} - métode panggero
#{expr} — ngajalankeun kode dina basa ObjectScript.
Hiji conto sadia dina prosés bisnis test isc.py.test.Process, contona, dina kagiatan Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Dina conto ieu:
#{process.WorkDirectory} mulih sipat WorkDirectory obyék process, nu mangrupa conto tina kelas isc.py.test.Process jelema. prosés bisnis ayeuna.
${%PopulateUtils:Integer:1:100} nelepon métode Integer класса %PopulateUtils, ngalirkeun argumen 1 и 100, mulangkeun integer acak dina rentang 1...100.
Nguji prosés bisnis
Produk tés sareng prosés bisnis tés sayogi sacara standar salaku bagian tina Gateway Python. Pikeun ngagunakeunana:
Dina terminal OS, jalankeun: pip install pandas matplotlib seaborn.
Dina terminal InterSystems IRIS, jalankeun: do ##class(isc.py.test.CannibalizationData).Import() pikeun ngeusian data tés.
produk peluncuran isc.py.test.Production.
Kirimkeun jinis pamundut Ens.Request в isc.py.test.Process.
Hayu urang tingali kumaha gawéna babarengan. Buka isc.py.test.Process dina editor BPL:
Kode Palaksanaan
Tangtangan anu paling penting nyaéta ngalaksanakeun kode Python:
Patarosan dipaké isc.py.msg.ExecutionRequest, ieu ciri-cirina:
Code - Kodeu Python.
SeparateLines - naha ngabagi kode kana garis pikeun palaksanaan. $c(10) (n) dipaké pikeun misahkeun string. Punten dicatet yén NOT dianjurkeun pikeun ngolah sakabéh pesen sakaligus, fungsi ieu ngan dimaksudkeun pikeun ngolah def jeung éksprési multiline sarupa. Default 0.
Variables - daptar variabel anu dipisahkeun koma anu bakal ditambah kana réspon.
Serialization - Kumaha serialize variabel nu urang rék balik. Pilihan: Str, Repr, JSON, Pickle и Dill, standar Str.
Dina kasus urang, urang ngan nyetel harta Code, jadi sakabeh sipat séjén ngagunakeun nilai standar. Urang nyetél éta ku nelepon process.GetAnnotation("Import pandas"), nu dina runtime mulih annotation sanggeus substitusi variabel geus dipigawé. Barina ogé, kode import pandas as pd bakal dibikeun ka Python. GetAnnotation bisa jadi mangpaat pikeun ménta Aksara Python multi-garis, tapi euweuh larangan dina metoda ieu pikeun meunangkeun kode. Anjeun tiasa nyetél harta Code dina sagala cara merenah pikeun anjeun.
Meunangkeun Variabel
tantangan sejen metot ngagunakeun isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:
Éta ngitung Matrix Korélasi dina sisi Python sareng ékstrak variabel corrmat balik deui ka InterSystems IRIS dina format JSON ku netepkeun sipat pamundut:
Variables: "corrmat"
Serialization: "JSON"
Urang tiasa ningali hasil dina Visual Trace:
Sareng upami urang peryogi nilai ieu dina BP, urang tiasa kéngingkeun sapertos kieu: callresponse.Variables.GetAt("corrmat").
Mindahkeun data
Salajengna, hayu urang ngobrol ngeunaan nransferkeun data tina InterSystems IRIS ka Python; sadaya pamundut pikeun mindahkeun data ngalaksanakeun antarmuka. isc.py.msg.DataRequestnu nyadiakeun sipat handap:
Variable - variabel Python dimana data ditulis.
Type - tipe variabel: dataframe (pandas dataframe) atawa list.
Namespace - wewengkon ti mana kami narima data. Kantong plastik isc.py kudu sadia di wewengkon ieu. Ieu bisa jadi wewengkon tanpa rojongan produk.
Dumasar panganteur ieu, 4 kelas requests dilaksanakeun:
isc.py.msg.QueryRequest - Nyetél harta Query pikeun ngirim query SQL.
isc.py.msg.ClassRequest - Nyetél harta Class pikeun lulus data kelas.
isc.py.msg.TableRequest - harta set Table pikeun mindahkeun data tabel.
isc.py.msg.GlobalRequest - harta set Global pikeun mindahkeun data global.
Dina prosés tés, tingali kagiatanana RAWdimana isc.py.msg.QueryRequest ditémbongkeun dina aksi.
Simpen / Malikkeun Konteks Python
Tungtungna, urang tiasa nyimpen konteks Python di InterSystems IRIS, pikeun ngalakukeun ieu kami bakal ngirim isc.py.msg.SaveRequest kalawan argumen:
Mask - Ngan ukur variabel anu cocog sareng topéng anu disimpen. Dirojong * и ?... Conto: "Data*, Figure?". Default *.
MaxLength - Panjang maksimum variabel disimpen. Upami serialisasi variabel langkung panjang, éta bakal dipaliré. Setel ka 0 pikeun kéngingkeun variabel tina panjangna naon waé. Default $$$MaxStringLength.
Name - Ngaran konteks (opsional).
Description - Pedaran kontéks (opsional).
Balik deui Ens.StringResponse с Id konteks disimpen. Dina prosés tés, tingali kagiatanana Save Context.
pamundut patali isc.py.msg.RestoreRequest beban konteks ti InterSystems IRIS kana Python:
ContextId - identifier konteks.
Clear - mupus kontéks sateuacan malikkeun.
Notebook Jupyter
Notebook Jupyter mangrupikeun aplikasi wéb open source anu ngamungkinkeun anjeun nyiptakeun sareng nyebarkeun buku catetan anu ngandung kode, visualisasi, sareng téks. Python Gateway ngamungkinkeun anjeun pikeun ningali sareng ngédit prosés BPL dina bentuk Jupyter Notebook. Punten dicatet yén palaksana Python 3 normal ayeuna dianggo.
Ekstensi ieu nganggap yén anotasi ngandung kode Python sareng nganggo nami kagiatan salaku judul sateuacana. Ayeuna tiasa ngembangkeun prosés bisnis PythonGateway dina Jupyter Notebook. Ieu naon anu mungkin:
MLToolkit mangrupikeun sakumpulan alat anu tujuanana pikeun ngagabungkeun modél sareng lingkungan transaksional supados modél anu diwangun tiasa gampang dianggo langsung dina prosés bisnis anjeun. Python Gateway mangrupikeun bagian tina MLToolkit sareng nyayogikeun integrasi sareng basa Python, ngamungkinkeun anjeun pikeun ngatur algoritma pembelajaran mesin anu diciptakeun dina Python (lingkungan utama pikeun seueur Data Élmuwan), ngagunakeun seueur perpustakaan anu siap-siap pikeun gancang nyiptakeun adaptif, robotic analitik AI / Solusi ML dina platform InterSystems IRIS.
Grup pangguna MLToolkit mangrupikeun gudang GitHub pribadi anu didamel salaku bagian tina organisasi GitHub perusahaan InterSystems. Éta dimaksudkeun pikeun pangguna éksternal anu masang, diajar, atanapi parantos nganggo komponén MLToolkit, kalebet Gateway Python. Grup ieu ngagaduhan sababaraha kasus anu dilaksanakeun (kalayan kode sumber sareng data uji) dina widang pamasaran, manufaktur, ubar sareng seueur industri anu sanés. Pikeun gabung ka Grup Pamaké ML Toolkit, punten kirimkeun email pondok ka alamat ieu: [email dijaga] sareng kalebet inpormasi ieu dina surat anjeun:
ngaran pamaké GitHub
Organisasi (anjeun damel atanapi diajar)
Posisi (posisi sabenerna anjeun dina organisasi anjeun, boh "Mahasiswa" atanapi "Mandiri").
nagara
Pikeun anu parantos maca tulisan sareng kabetot dina kamampuan InterSystems IRIS salaku platform pikeun ngembangkeun atanapi hosting intelijen buatan sareng mesin pembelajaran mesin, kami ngajak anjeun ngabahas kamungkinan skenario anu dipikaresep ku perusahaan anjeun. Kami bakal bagja pikeun nganalisis kabutuhan perusahaan anjeun sareng babarengan nangtukeun rencana aksi; Alamat email kontak tim ahli AI / ML kami - [email dijaga].