Tämä artikkeli käsittelee Python Gatewaytä, avoimen lähdekoodin yhteisöprojektia InterSystems IRIS -tietoalustalle. Tämän projektin avulla voit organisoida mitä tahansa Pythonissa (monen tietotutkijan pääympäristö) luotuja koneoppimisalgoritmeja, käyttää lukuisia valmiita kirjastoja luodaksesi nopeasti mukautuvia, robottianalyyttisiä AI/ML-ratkaisuja InterSystems IRIS -alustalle. Tässä artikkelissa näytän sinulle, kuinka InterSystems IRIS voi ohjata Python-prosesseja, suorittaa tehokasta kaksisuuntaista viestintää ja luoda älykkäitä liiketoimintaprosesseja.
suunnitelma
Johdanto.
Työkalut.
Asennus.
API.
Yhteentoimivuus.
Jupyter muistikirja.
Johtopäätökset.
Linkit.
M.L.Toolkit.
Esittely
Python on korkeatasoinen, yleiskäyttöinen ohjelmointikieli, joka keskittyy kehittäjien tuottavuuden ja koodin luettavuuden parantamiseen. Tässä artikkelisarjassa puhun Python-kielen käyttömahdollisuuksista InterSystems IRIS -alustalla, kun taas tämän artikkelin pääpaino on Pythonin käyttö kielenä koneoppimismallien luomiseen ja soveltamiseen.
Koneoppiminen (ML) on tekoälymenetelmien luokka, jonka ominaispiirre ei ole ongelman suora ratkaisu, vaan oppiminen monien vastaavien ongelmien ratkaisuprosessissa.
Koneoppimisalgoritmit ja -mallit ovat yhä yleisempiä. Tähän on monia syitä, mutta kaikki riippuu saavutettavuudesta, yksinkertaisuudesta ja käytännön tulosten saavuttamisesta. Onko klusterointi tai jopa hermoverkkomallinnus uusi tekniikka?
Ei tietenkään, mutta nykyään ei tarvitse kirjoittaa satoja tuhansia koodirivejä yhden mallin ajamiseen, ja mallien luomisen ja käytön kustannukset pienenevät ja pienentyvät.
Työkalut kehittyvät – vaikka meillä ei ole täysin GUI-suuntautuneita AI/ML-työkaluja, on havaittavissa myös monien muiden tietojärjestelmäluokkien, kuten BI:n (koodin kirjoittamisesta kehysten ja GUI-suuntautuneiden konfiguroitavien ratkaisujen käyttöön) kohdalla havaittu edistys. AI/ML-luontityökaluissa. Olemme jo ohittaneet koodin kirjoittamisen vaiheen ja nykyään käytämme kehyksiä mallien rakentamiseen ja koulutukseen.
Muut parannukset, kuten kyky levittää esikoulutettua mallia, jossa loppukäyttäjän on yksinkertaisesti saatava mallin koulutukseen omiin tietoihinsa, helpottavat myös koneoppimisen aloittamista. Nämä edistysaskeleet tekevät koneoppimisen oppimisesta paljon helpompaa niin ammattilaisten kuin yritystenkin kannalta.
Toisaalta keräämme yhä enemmän dataa. Yhtenäisen tietoalustan, kuten InterSystems IRIS, avulla kaikki tämä tieto voidaan valmistaa välittömästi ja käyttää syötteenä koneoppimismalleihin.
Pilviin siirtymisen myötä AI/ML-projektien käynnistäminen on helpompaa kuin koskaan. Voimme kuluttaa vain tarvitsemamme resurssit. Lisäksi pilvialustojen tarjoaman rinnakkaisuuden ansiosta voimme säästää hukattua aikaa.
Mutta entä tulokset? Tässä asiat monimutkaistuvat. Mallien rakentamiseen on monia työkaluja, joista keskustelen seuraavaksi. Hyvän mallin rakentaminen ei ole helppoa, mutta mitä seuraavaksi? Yrityksen mallin käytöstä hyötyminen on myös ei-triviaali tehtävä. Ongelman ydin on analyyttisten ja transaktioiden työkuormien ja tietomallien erottaminen toisistaan. Kun koulutamme mallia, teemme sen yleensä historiallisten tietojen perusteella. Mutta rakennetun mallin paikka on transaktiotietojen käsittelyssä. Mitä hyötyä on parhaasta vilpillisten tapahtumien havaitsemismallista, jos käytämme sitä kerran päivässä? Huijarit ovat jo kauan sitten lähteneet rahojen kanssa. Meidän on koulutettava mallia historiatietoihin, mutta meidän on myös sovellettava sitä reaaliajassa uusiin saapuviin tietoihin, jotta liiketoimintaprosessimme voivat toimia mallin tekemien ennusteiden mukaisesti.
ML Toolkit on työkalupakki, joka tekee juuri sen: tuo mallit yhteen ja transaktioympäristön niin, että rakentamiasi malleja voidaan helposti käyttää suoraan liiketoimintaprosesseissasi. Python Gateway on osa ML-työkalupakkia ja tarjoaa integraation Python-kieleen (samanlainen kuin R Gateway, osa ML Toolkit -työkalua mahdollistaa integraation R-kieleen).
Työkalut
Ennen kuin jatkamme, haluaisin kuvailla muutamia Python-työkaluja ja kirjastoja, joita käytämme myöhemmin.
Tekniikka
Python on tulkittu, yleiskäyttöinen korkean tason ohjelmointikieli. Kielen tärkein etu on suuri matemaattisten, ML- ja AI-kirjastojen kirjasto. ObjectScriptin tavoin se on oliokieli, mutta kaikki määritellään dynaamisesti, ei staattisesti. Myös kaikki on esine. Myöhemmissä artikkeleissa oletetaan ohimenevän kielen tuntemusta. Jos haluat aloittaa oppimisen, suosittelen aloittamaan dokumentointi.
IDE: Käytän PyCharm, mutta yleisesti много. Jos käytät Atelieria, Python-kehittäjille on olemassa Eclipse-laajennus. Jos käytät VS-koodia, Pythonille on laajennus.
Muistikirja: IDE:n sijaan voit kirjoittaa ja jakaa skriptejäsi online-muistikirjoihin. Suosituin niistä on jupyter.
kirjastot
Tässä on (osittainen) luettelo koneoppimiskirjastoista:
AI/ML-tekniikat tekevät liiketoiminnasta tehokkaampaa ja mukautuvampaa. Lisäksi näitä teknologioita on nykyään entistä helpompi kehittää ja toteuttaa. Aloita oppiminen AI/ML-tekniikoista ja siitä, miten ne voivat auttaa organisaatiotasi kasvamaan.
Asennus
Python Gatewayn asentamiseen ja käyttämiseen on useita tapoja:
käyttöjärjestelmä
Windows
Linux
Mac
Satamatyöläinen
Käytä DockerHubin kuvaa
Luo oma ilme
Asennustavasta riippumatta tarvitset lähdekoodin. Ainoa paikka ladata koodi on julkaisujen sivu. Se sisältää testattuja vakaita julkaisuja, nappaa vain uusin. Tällä hetkellä se on 0.8, mutta ajan myötä tulee uusia. Älä kloonaa/lataa arkistoa, lataa uusin julkaisu.
käyttöjärjestelmä
Jos asennat Python Gatewayn käyttöjärjestelmään, sinun on ensin asennettava Python (käyttöjärjestelmästä riippumatta). Tätä varten:
Lataa ObjectScript-koodi (esim. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) mille tahansa alueelle, jolla on tuotteita. Jos haluat olemassa olevan alueen tukevan tuotteita, suorita: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
Paikka huomioteksti DLL/SO/DYLIB kansioon bin InterSystems IRIS -esiintymäsi. Kirjastotiedoston on oltava saatavilla palauttamassa polussa write ##class(isc.py.Callout).GetLib().
Windows
Varmista, että ympäristömuuttuja on PYTHONHOME viittaa Python 3.6.7:ään.
Varmista, että järjestelmäympäristömuuttuja on PATH sisältää muuttujan PYTHONHOME (tai hakemistoon, johon se viittaa).
Linux (Debian/Ubuntu)
Tarkista, onko ympäristömuuttuja PATH se sisältää /usr/lib и /usr/lib/x86_64-linux-gnu. Käytä tiedostoa /etc/environment ympäristömuuttujien asettamiseen.
Virheiden sattuessa undefined symbol: _Py_TrueStruct aseta asetus PythonLib... myös sisään Readme siellä on Vianetsintä-osio.
Mac
Tällä hetkellä vain python 3.6.7 on tuettu python.org. Tarkista muuttuja PATH.
Jos olet muuttanut ympäristömuuttujia, käynnistä InterSystems-tuote uudelleen.
Satamatyöläinen
Säiliöiden käytöllä on useita etuja:
Siirrettävyys
tehokkuuden
Eristys
keveys
Muuttumattomuus
Katso tämä artikkelisarja saadaksesi lisätietoja Dockerin käyttämisestä InterSystems-tuotteiden kanssa.
Kaikki Python Gateway -versiot ovat tällä hetkellä konttipohjaisia. 2019.4.
Valmis kuva
Juosta: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestPython Gatewayn lataamiseen ja suorittamiseen InterSystems IRIS Community Editionin kanssa. Siinä kaikki.
Luo oma ilme
Voit luoda telakointikuvan suorittamalla arkiston juuressa: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Oletusarvoisesti kuva rakennetaan kuvan perusteella store/intersystems/iris-community:2019.4.0.383.0, mutta voit muuttaa tätä asettamalla muuttujan IMAGE.
Luodaksesi InterSystems IRIS:stä: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest'.
Jos käytät InterSystems IRIS Community Editioniin perustuvaa kuvaa, sinun ei tarvitse määrittää avainta.
Kommentit
Testiprosessi isc.py.test.Process tallentaa useita kuvia väliaikaiseen hakemistoon. Haluat ehkä muuttaa tämän polun liitettyyn hakemistoon. Voit tehdä tämän muokkaamalla asetusta WorkingDir liitetyn hakemiston määrittäminen.
Kun olet asentanut Python Gatewayn, kannattaa tarkistaa, että se toimii. Suorita tämä koodi InterSystems IRIS -päätteessä:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var
Tuloksen pitäisi olla HELLO - Python-muuttujan arvo x. Jos palautustila sc on virhe tai var tyhjä, tarkista Lueminut—Vianetsintä-osio.
API
Python Gateway on asennettu ja olet varmistanut, että se toimii. Aika alkaa käyttää!
Pythonin pääkäyttöliittymä on isc.py.Main. Se tarjoaa seuraavat menetelmäryhmät (kaikki palauttavat %Status):
Koodin suoritus
Tiedonsiirto
avustavia
Koodin suoritus
Näiden menetelmien avulla voit suorittaa mielivaltaisen Python-koodin.
SimpleString
SimpleString on päämenetelmä. Se vaatii 4 valinnaista argumenttia:
code on suoritettava koodirivi. Rivinsyöttömerkki: $c(10).
result - ByRef viittaus muuttujaan, johon arvo kirjoitetaan returnVariable.
Yllä olemme tehneet:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
Tässä esimerkissä määritämme Python-muuttujan x значение Hello ja haluat palauttaa Python-muuttujan arvon x ObjectScript-muuttujaan var.
ExecuteCode
ExecuteCode on turvallisempi ja vähemmän rajoittava vaihtoehto SimpleString.
InterSystems IRIS -alustan rivit ovat rajoitettuja 3 641 144 merkkiin, ja jos haluat suorittaa pidemmän koodin, sinun on käytettävä streameja.
Se vaatii kaksi argumenttia:
code — suoritettava Python-koodin merkkijono tai virta.
variable - (valinnainen) määrittää suorituksen tuloksen code tämä Python-muuttuja.
Ehdota käyttöä:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").
Tässä esimerkissä kerromme 2 kolmella ja tallennamme tuloksen Python-muuttujaan y.
Tiedonsiirto
Siirrä tietoja Pythonille ja Pythonista.
Python -> InterSystems IRIS
Python-muuttujan arvon saamiseen InterSystems IRIS:ssä on neljällä tavalla, riippuen tarvitsemastasi sarjoituksesta:
String yksinkertaisia tietotyyppejä ja virheenkorjausta varten.
Repr yksinkertaisten kohteiden tallentamiseen ja virheenkorjaukseen.
JSON helpottaa tietojen käsittelyä InterSystems IRIS -puolella.
Pickle esineiden tallentamiseen.
Näiden menetelmien avulla voit vastaanottaa muuttujia Pythonista merkkijonona tai virtoina.
GetVariable(variable, serialization, .stream, useString) - saada serialization muuttuja variable в stream. jos useString on 1 ja serialisointi sijoitetaan merkkijonoon, sitten palautetaan merkkijono, ei virta.
GetVariableJson(variable, .stream, useString) - saada muuttujan JSON-serialisointi.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
InterSystems IRIS -> Python
Ladataan tietoja InterSystems IRIS:stä Pythoniin.
ExecuteQuery(query, variable, type, namespace) - luo tietojoukon (pandas dataframe tai list) sql-kyselystä ja aseta se python-muuttujaksi variable. Muovipussi isc.py pitäisi olla saatavilla alueella namespace - pyyntö suoritetaan siellä.
ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - lataa globaalia dataa global alaindeksistä start до end Pythonissa tyyppimuuttujana type: listtai pandat dataframe. Valinnaisten argumenttien kuvaus mask ja labels saatavilla luokan dokumentaatiossa ja arkistossa Tiedonsiirtoasiakirjat.
ExecuteClass(class, variable, type, start, end, properties, namespace) - lataa luokkatiedot class tunnuksesta start до end Pythonissa tyyppimuuttujana type: listtai pandat dataframe. properties — luettelo (pilkulla erotettuna) tietojoukkoon ladattavista luokan ominaisuuksista. Maskit tuettu * и ?. Oletus - * (kaikki ominaisuudet). Omaisuus %%CLASSNAME huomiotta.
ExecuteTable(table, variable, type, start, end, properties, namespace) - lataa taulukon tiedot table tunnuksesta start до end pythonissa.
ExecuteQuery - universaali (kaikki kelvolliset SQL-kyselyt välitetään Pythonille). Kuitenkin, ExecuteGlobal ja hänen kääreensä ExecuteClass и ExecuteTable työskennellä useiden rajoitusten kanssa. Ne ovat paljon nopeampia (3-5 kertaa nopeampia kuin ODBC-ohjain ja 20 kertaa nopeampia kuin ExecuteQuery). Lisätietoa osoitteessa Tiedonsiirtoasiakirjat.
Kaikki nämä menetelmät tukevat tiedonsiirtoa miltä tahansa alueelta. Muovipussi isc.py on oltava saatavilla kohdealueella.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace) - minkä tahansa kelvollisen SQL-kyselyn tulosten välittäminen Pythonille. Tämä on hitain tiedonsiirtomenetelmä. Käytä jos ExecuteGlobal ja sen kääreitä ei ole saatavilla.
argumentit:
query - sql-kysely.
variable - Python-muuttujan nimi, johon tiedot kirjoitetaan.
table - taulukon nimi.
Kaikki muut argumentit hyväksytään sellaisenaan. ExecuteClass.
Huomautuksia
ExecuteGlobal, ExecuteClass и ExecuteTable toimivat yhtä nopeasti.
ExecuteGlobal 20 kertaa nopeampi kuin ExecuteQuery suurilla tietojoukoilla (siirtoaika > 0.01 sekuntia).
ExecuteGlobal, ExecuteClass и ExecuteTable työskentele globaalien kanssa tällä rakenteella: ^global(key) = $lb(prop1, prop2, ..., propN) missä key on kokonaisluku.
varten ExecuteGlobal, ExecuteClass и ExecuteTable tuettu arvoalue %Date vastaa aluetta mktime ja riippuu käyttöjärjestelmästäikkunat: 1970-01-01, linux 1900-01-01, mac). Käyttää %TimeStampsiirtää tietoja tämän alueen ulkopuolella tai käyttää panda-tietokehystä muodossa tämä rajoitus koskee vain luetteloa.
varten ExecuteGlobal, ExecuteClass и ExecuteTable kaikki argumentit paitsi tietolähde (globaali, luokka tai taulukko) ja muuttuja ovat valinnaisia.
Примеры
koeluokka isc.py.test.Person sisältää menetelmän, joka näyttää kaikki tiedonsiirtovaihtoehdot:
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)
kutsumenetelmä do ##class(isc.py.test.Person).Test() nähdäksesi kuinka kaikki tiedonsiirtomenetelmät toimivat.
Auttajamenetelmät
GetVariableInfo(variable, serialization, .defined, .type, .length) - saada tietoa muuttujasta: onko se määritelty, luokka ja serialisoinnin pituus.
GetVariableDefined(variable, .defined) - onko muuttuja määritelty.
GetVariableType(variable, .type) - saada muuttujan luokka.
GetStatus() - Hanki ja poista viimeinen poikkeus Python-puolella.
GetModuleInfo(module, .imported, .alias) — saada moduulimuuttuja ja tuontitila.
GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - saada tietoa toiminnosta.
Yhteentoimivuus
Olet oppinut soittamaan Python Gatewaylle päätteestä, nyt aletaan käyttää sitä tuotannossa. Vuorovaikutuksen perusta Pythonin kanssa tässä tilassa on isc.py.ens.Operation. Sen avulla voimme:
Suorita Python-koodi
Tallenna/palauta Python-konteksti
Lataa ja vastaanota tietoja Pythonista
Pohjimmiltaan Pyhton-operaatio on kääre isc.py.Main. Operaatio isc.py.ens.Operation mahdollistaa vuorovaikutuksen InterSystems IRIS -tuotteiden Python-prosessin kanssa. Viittä pyyntöä tuetaan:
isc.py.msg.ExecutionRequest Python-koodin suorittamiseen. palaa isc.py.msg.ExecutionResponse suoritustuloksen ja pyydettyjen muuttujien arvojen kanssa.
isc.py.msg.StreamExecutionRequest Python-koodin suorittamiseen. palaa isc.py.msg.StreamExecutionResponse suorituksen tulos ja pyydettyjen muuttujien arvot. Analoginen isc.py.msg.ExecutionRequest, mutta hyväksyy ja palauttaa streameja merkkijonojen sijaan.
isc.py.msg.QueryRequest siirtääksesi SQL-kyselyn suorittamisen tuloksen. palaa Ens.Response.
isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest globaalien/luokka-/taulukkotietojen välittämiseen. palaa Ens.Response.
isc.py.msg.SaveRequest Python-kontekstin tallentamiseen. palaa Ens.StringResponse kontekstitunnuksella.
Initializer - valita luokka, joka toteuttaa käyttöliittymän isc.py.init.Abstract. Sitä voidaan käyttää funktioiden, moduulien, luokkien ja vastaavien lataamiseen. Se suoritetaan kerran, kun prosessi alkaa.
PythonLib - (Vain Linux) jos näet käynnistysvirheitä, aseta sen arvoksi libpython3.6m.so tai jopa koko polku Python-kirjastoon.
Liiketoimintaprosessien luominen
Saatavilla on kaksi luokkaa, jotka helpottavat liiketoimintaprosessien kehittämistä:
isc.py.ens.ProcessUtils voit poimia merkintöjä aktiviteeteista, joissa on muuttujakorvaus.
isc.py.util.BPEmulator helpottaa liiketoimintaprosessien testaamista Pythonilla. Se voi suorittaa liiketoimintaprosessin (Python-osat) nykyisessä prosessissa.
Muuttuva korvaus
Kaikki liiketoimintaprosessit on peritty isc.py.ens.ProcessUtils, voi käyttää menetelmää GetAnnotation(name) saadaksesi aktiviteettimerkinnän arvon sen nimen perusteella. Aktiviteetin huomautus voi sisältää muuttujia, jotka arvioidaan InterSystems IRIS -puolella ennen kuin ne siirretään Pythonille. Tässä on muuttujan korvaamisen syntaksi:
${class:method:arg1:...:argN} - menetelmäkutsu
#{expr} - suorittaa koodin ObjectScript-kielellä.
Esimerkki on saatavilla testiliiketoimintaprosessissa isc.py.test.Processesimerkiksi toiminnassa Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Tässä esimerkissä:
#{process.WorkDirectory} palauttaa objektin WorkDirectory-ominaisuuden process, joka on luokan esiintymä isc.py.test.Process nuo. nykyinen liiketoimintaprosessi.
${%PopulateUtils:Integer:1:100} kutsuu menetelmää Integer luokka %PopulateUtils, ohittavat argumentit 1 и 100, palauttaa satunnaisen kokonaisluvun alueella 1...100.
Testaa liiketoimintaprosessia
Testituotanto ja testausliiketoimintaprosessi ovat oletusarvoisesti saatavilla Python Gatewayn osana. Voit käyttää niitä seuraavasti:
Suorita InterSystems IRIS -päätteessä: do ##class(isc.py.test.CannibalizationData).Import() täyttää testitiedot.
Lanseeraa tuotteet isc.py.test.Production.
Lähetä pyyntötyyppi Ens.Request в isc.py.test.Process.
Katsotaan kuinka kaikki toimii yhdessä. avata isc.py.test.Process BPL-editorissa:
Koodin suoritus
Tärkein kutsu on Python-koodin suorittaminen:
Pyyntö käytetty isc.py.msg.ExecutionRequest, tässä ovat sen ominaisuudet:
Code - Python-koodi.
SeparateLines - jaetaanko koodi riveihin suorittamista varten. $c(10) (n) käytetään merkkijonojen erottamiseen. Huomaa, että EI ole suositeltavaa käsitellä koko viestiä kerralla, tämä toiminto on vain käsittelyä varten def ja vastaavat moniriviset lausekkeet. Oletus 0.
Variables on pilkuilla eroteltu luettelo muuttujista, jotka lisätään vastaukseen.
Serialization - Kuinka sarjoittaa muuttujat, jotka haluamme palauttaa. Vaihtoehdot: Str, Repr, JSON, Pickle и Dill, oletusarvo Str.
Meidän tapauksessamme asetamme vain ominaisuuden Code, jotta kaikki muut ominaisuudet käyttävät oletusarvojaan. Asetimme sen soittamalla process.GetAnnotation("Import pandas"), joka ajon aikana palauttaa huomautuksen muuttujan korvaamisen jälkeen. Lopuksi koodi import pandas as pd siirretään Pythonille. GetAnnotation voi olla hyödyllinen monirivisten Python-komentosarjojen hankkimisessa, mutta tälle koodin hankkimistavalle ei ole rajoituksia. Voit määrittää ominaisuuden Code millään sinulle sopivalla tavalla.
Muuttujien saaminen
Toinen mielenkiintoinen haaste käyttää isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:
Se laskee Python-puolen korrelaatiomatriisin ja poimii muuttujan corrmat takaisin InterSystems IRISiin JSON-muodossa asettamalla pyynnön ominaisuudet:
Variables: "corrmat"
Serialization: "JSON"
Näemme tulokset Visual Tracessa:
Ja jos tarvitsemme tätä arvoa BP:ssä, se voidaan saada näin: callresponse.Variables.GetAt("corrmat").
Tiedonsiirto
Seuraavaksi puhutaan tiedon siirtämisestä InterSystems IRIS:stä Pythoniin, kaikki tiedonsiirtopyynnöt toteuttavat rajapinnan isc.py.msg.DataRequest, joka tarjoaa seuraavat ominaisuudet:
Variable on Python-muuttuja, johon tiedot kirjoitetaan.
Type - muuttuva tyyppi: dataframe (pandas-tietokehys) tai list.
Namespace - alue, josta saamme tietoja. Muovipussi isc.py pitäisi olla saatavilla tällä alueella. Tämä voi olla alue, jolla ei ole tuotetukea.
Tämän käyttöliittymän perusteella toteutetaan 4 pyyntöluokkaa:
isc.py.msg.QueryRequest - asettaa omaisuutta Query SQL-kyselyn lähettämiseen.
isc.py.msg.ClassRequest - asettaa omaisuutta Class luokkatietojen välittämiseen.
isc.py.msg.TableRequest - asettaa omaisuutta Table taulukkotietojen välittämiseen.
isc.py.msg.GlobalRequest - asettaa omaisuutta Global siirtää tietoja maailmanlaajuisesti.
Katso testiprosessissa toimintaa RAWMissä isc.py.msg.QueryRequest näkyy toiminnassa.
Python-kontekstin tallentaminen/palauttaminen
Lopuksi voimme tallentaa Python-kontekstin InterSystems IRISiin, lähettääksesi tämän isc.py.msg.SaveRequest argumenteilla:
Mask — Vain muuttujat, jotka täyttävät maskin, tallennetaan. Tuettu * и ?. Esimerkki: "Data*, Figure?"... Oletus *.
MaxLength — Tallennetun muuttujan enimmäispituus. Jos muuttujan serialisointi on pidempi, se jätetään huomiotta. Aseta arvoksi 0 saadaksesi minkä tahansa pituiset muuttujat. Oletus $$$MaxStringLength.
Name — Kontekstin nimi (valinnainen).
Description — Kontekstin kuvaus (valinnainen).
Palauttaa Ens.StringResponse с Id tallennettu konteksti. Katso testiprosessissa toimintaa Save Context.
Aiheeseen liittyvä pyyntö isc.py.msg.RestoreRequest lataa kontekstin InterSystems IRIS:stä Pythoniin:
ContextId on kontekstin tunniste.
Clear — tyhjennä konteksti ennen palauttamista.
Jupyter Notebook
Jupyter Notebook on avoimen lähdekoodin verkkosovellus, jonka avulla voit luoda ja julkaista muistikirjoja, jotka sisältävät koodia, visualisointeja ja tekstiä. Python Gatewayn avulla voit tarkastella ja muokata BPL-prosesseja Jupyter-muistikirjana. Huomaa, että tavallinen Python 3 -suoritin on tällä hetkellä käytössä.
Tämä laajennus olettaa, että huomautukset sisältävät Python-koodia ja käyttävät toimintojen nimiä edeltävinä otsikoina. PythonGatewayn liiketoimintaprosesseja on nyt mahdollista kehittää Jupyter Notebookissa. Tässä on se, mikä on mahdollista:
MLToolkit on työkalusarja, jonka tavoitteena on yhdistää malleja ja tapahtumaympäristöä niin, että rakennettuja malleja voidaan helposti käyttää suoraan liiketoimintaprosesseissasi. Python Gateway on osa MLToolkitiä ja tarjoaa integraation Python-kieleen, jolloin voit organisoida mitä tahansa Pythonissa (monien datatieteilijöiden pääympäristö) luotuja koneoppimisalgoritmeja, käyttää lukuisia valmiita kirjastoja luodaksesi nopeasti mukautuvaa, robottianalyyttistä tekoälyä / ML-ratkaisut InterSystems-alustalla IRIS.
MLToolkit-käyttäjäryhmä on yksityinen GitHub-arkisto, joka on luotu osana InterSystems-yritys GitHub-organisaatiota. Se on osoitettu ulkoisille käyttäjille, jotka asentavat, oppivat tai jo käyttävät MLToolkit-komponentteja, mukaan lukien Python Gateway. Ryhmällä on useita toteutettuja tapauksia (lähdekoodilla ja testitiedoilla) markkinoinnin, valmistuksen, lääketieteen ja monien muiden toimialojen aloilla. Liity ML Toolkit -käyttäjäryhmään lähettämällä lyhyt sähköpostiviesti seuraavaan osoitteeseen: [sähköposti suojattu] ja sisällytä kirjeessäsi seuraavat tiedot:
GitHub-käyttäjänimi
Organisaatio (työssä tai opiskelemassa)
Asema (todellinen asemasi organisaatiossasi, joko "opiskelija" tai "riippumaton").
Maa
Niille, jotka ovat lukeneet artikkelin ja jotka ovat kiinnostuneita InterSystems IRIS -alustasta tekoälyn ja koneoppimismekanismien kehittämiseen tai ylläpitämiseen, kutsumme sinut keskustelemaan mahdollisista yritystäsi kiinnostavista skenaarioista. Analysoimme helposti yrityksesi tarpeet ja laadimme yhdessä toimintasuunnitelman; AI/ML-asiantuntijaryhmämme yhteyssähköpostiosoite – [sähköposti suojattu].