Питхон Гатеваи у ИнтерСистемс ИРИС

Овај чланак је о Питхон Гатеваи-у, пројекту заједнице отвореног кода за платформу података ИнтерСистемс ИРИС. Овај пројекат вам омогућава да оркестрирате све алгоритме за машинско учење креиране у Питхон-у (главном окружењу за многе научнике података), користите бројне готове библиотеке за брзо креирање адаптивних, роботских аналитичких АИ / МЛ решења на платформи ИнтерСистемс ИРИС. У овом чланку ћу вам показати како ИнтерСистемс ИРИС може оркестрирати Питхон процесе, обављати ефикасну двосмерну комуникацију и креирати интелигентне пословне процесе.

План

  1. Увод.
  2. Алати.
  3. Инсталација.
  4. АПИ.
  5. Компатибилност.
  6. Јупитер Нотебоок.
  7. Закључци.
  8. Линкови.
  9. М.Л.Тоолкит

Увод

Питхон је програмски језик високог нивоа опште намене фокусиран на побољшање продуктивности програмера и читљивости кода. У овој серији чланака говорићу о могућностима коришћења језика Пајтон на платформи ИнтерСистемс ИРИС, док је главни фокус овог чланка употреба Пајтона као језика за креирање и примену модела машинског учења.

Машинско учење (МЛ) је класа метода вештачке интелигенције, чија карактеристична карактеристика није директно решење проблема, већ учење у процесу решавања многих сличних проблема.

Алгоритми и модели машинског учења постају све чешћи. Постоји много разлога за то, али све се своди на доступност, једноставност и постизање практичних резултата. Да ли је груписање или чак моделирање неуронских мрежа нова технологија?

Наравно да није, али данас нема потребе да се пише стотине хиљада линија кода за покретање једног модела, а трошкови креирања и коришћења модела су све мањи и мањи.

Алати се развијају – иако немамо потпуно ГУИ оријентисане АИ/МЛ алате, такође се види напредак који смо видели код многих других класа информационих система као што је БИ (од писања кода до коришћења оквира и ГУИ оријентисаних конфигурабилних решења) у алатима за креирање АИ/МЛ. Већ смо прошли фазу писања кода и данас користимо оквире за изградњу и обуку модела.

Друга побољшања, као што је могућност пропагирања унапред обученог модела где крајњи корисник једноставно мора да заврши обуку модела на својим специфичним подацима, такође олакшавају почетак примене машинског учења. Овај напредак знатно олакшава учење машинског учења, како за професионалце, тако и за компаније у целини.

С друге стране, прикупљамо све више података. Са обједињеном платформом података као што је ИнтерСистемс ИРИС, све ове информације се могу одмах припремити и користити као улаз за моделе машинског учења.

Са преласком на облак, покретање АИ/МЛ пројеката је лакше него икад. Можемо да трошимо само ресурсе који су нам потребни. Штавише, захваљујући паралелизацији коју нуде платформе у облаку, можемо уштедети изгубљено време.

Али шта је са резултатима? Овде се ствари компликују. Постоји много алата за прављење модела, о којима ћу даље говорити. Није лако направити добар модел, али шта даље? Профитирање од употребе модела од стране предузећа је такође нетривијалан задатак. Корен проблема је раздвајање аналитичког и трансакционог оптерећења и модела података. Када обучавамо модел, обично то радимо на историјским подацима. Али место за конструисани модел је у обради трансакцијских података. Каква је корист од најбољег модела откривања лажних трансакција ако га покрећемо једном дневно? Преваранти су одавно отишли ​​са новцем. Морамо да обучимо модел на историјским подацима, али такође морамо да га применимо у реалном времену на нове долазне податке како би наши пословни процеси могли да делују у складу са предвиђањима модела.

МЛ Тоолкит је комплет алата који ради управо то: спаја моделе и трансакцијско окружење тако да се модели које градите могу лако користити директно у вашим пословним процесима. Питхон Гатеваи је део МЛ Тоолкит-а и обезбеђује интеграцију са Питхон језиком (слично Р Гатеваи-у, будући да је део МЛ Тоолкит-а омогућава интеграцију са Р језиком).

Алати

Пре него што наставимо, желео бих да опишем неколико Питхон алата и библиотека које ћемо касније користити.

Технологија

  • Питхон је интерпретирани, опште намене, програмски језик високог нивоа. Главна предност језика је велика библиотека математичких, МЛ и АИ библиотека. Као и ОбјецтСцрипт, то је објектно оријентисани језик, али је све дефинисано динамички, а не статички. Такође, све је објекат. Каснији чланци претпостављају пролазно познавање језика. Ако желите да почнете да учите, препоручујем вам да почнете са документација.
  • За наше следеће вежбе, сет Питхон 3.6.7 64-бит.
  • ИДЕ: Користим ПиЦхарм, али уопштено много. Ако користите Ателиер, постоји додатак Ецлипсе за Питхон програмере. Ако користите ВС Цоде, постоји екстензија за Питхон.
  • Бележница: Уместо ИДЕ, можете да пишете и делите своје скрипте у онлајн бележницама. Најпопуларнији од њих је Јупитер.

Библиотеке

Ево (делимичне) листе библиотека за машинско учење:

  • Нумпи — основни пакет за тачне прорачуне.
  • панде — структуре података високих перформанси и алати за анализу података.
  • Матплотлиб - Креирање графикона.
  • Сеаборн - визуализација података заснована на матплотлиб-у.
  • Склеарн — методе машинског учења.
  • КСГБоост — алгоритми машинског учења у оквиру методологије Градиент Боостинг.
  • Генсим — НЛП.
  • Керас - неуронске мреже.
  • Тенсорфлов је платформа за креирање модела машинског учења.
  • ПиТорцх је платформа за креирање модела машинског учења фокусираних на Питхон.
  • Ниока - ПММЛ из разних модела.

АИ/МЛ технологије чине пословање ефикаснијим и прилагодљивијим. Штавише, данас је ове технологије све лакше развијати и имплементирати. Почните да учите о АИ/МЛ технологијама и како оне могу помоћи вашој организацији да расте.

Инсталација

Постоји неколико начина да инсталирате и користите Питхон Гатеваи:

  • ОС
    • виндовс
    • линук
    • Mac
  • лучки радник
    • Користите слику са ДоцкерХуб-а
    • Креирајте свој изглед

Без обзира на метод инсталације, биће вам потребан изворни код. Једино место за преузимање кода је страница издања. Садржи тестирана стабилна издања, само узмите најновије. Тренутно је 0.8, али временом ће бити нових. Немојте клонирати/преузимати спремиште, преузмите најновије издање.

ОС

Ако инсталирате Питхон Гатеваи на оперативни систем, онда ћете прво (без обзира на оперативни систем) морати да инсталирате Питхон. За ово:

  1. Инсталирајте Питхон 3.6.7 64 бит. Препоручује се да инсталирате Питхон у подразумевани директоријум.
  2. Инсталирајте модул dill: pip install dill.
  3. Преузмите ОбјецтСцрипт код (тј. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) у било коју област са производима. У случају да желите да постојећа област подржава продукцију, покрените: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. Плаце облачић ДЛЛ/СО/ДИЛИБ у фасциклу bin ваша ИнтерСистемс ИРИС инстанца. Датотека библиотеке мора бити доступна на путањи коју враћа write ##class(isc.py.Callout).GetLib().

виндовс

  1. Уверите се да је променљива окружења PYTHONHOME указује на Питхон 3.6.7.
  2. Уверите се да је променљива системског окружења PATH садржи променљиву PYTHONHOME (или директоријум на који указује).

Линук (Дебиан/Убунту)

  1. Проверите да ли је променљива окружења PATH садржи /usr/lib и /usr/lib/x86_64-linux-gnu. Користите датотеку /etc/environment за постављање променљивих окружења.
  2. У случају грешака undefined symbol: _Py_TrueStruct подесите подешавање PythonLib. такође у реадме постоји одељак за решавање проблема.

Mac

  1. Тренутно је подржан само Питхон 3.6.7 Питхон.орг. Проверите променљиву PATH.

Ако сте променили променљиве окружења, поново покрените свој ИнтерСистемс производ.

лучки радник

Употреба контејнера има низ предности:

  • Преносивост
  • Ефективност
  • Изолација
  • лакоћа
  • Непроменљивост

Погледај ово серија чланака за више информација о коришћењу Доцкер-а са ИнтерСистемс производима.

Све верзије Питхон Гатеваи-а су тренутно засноване на контејнерима. 2019.4.

Спремна слика

Трцати: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestда преузмете и покренете Питхон Гатеваи са ИнтерСистемс ИРИС Цоммунити Едитион. То је све.

Креирајте свој изглед

Да бисте направили доцкер слику, покрените у корену спремишта: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Подразумевано, слика се гради на основу слике store/intersystems/iris-community:2019.4.0.383.0, међутим ово можете променити подешавањем променљиве IMAGE.
Да бисте направили из ИнтерСистемс ИРИС-а, покрените: `доцкер буилд --буилд-арг ИМАГЕ=сторе/интерсистемс/ирис:2019.4.0.383.0 --форце-рм --таг интерсистемсцоммунити/ириспи:латест'.

Након тога, можете покренути доцкер слику:

docker run -d 
  -p 52773:52773 
  -v /<HOST-DIR-WITH-iris.key>/:/mount 
  --name irispy 
  intersystemscommunity/irispy:latest 
  --key /mount/iris.key

Ако користите слику засновану на ИнтерСистемс ИРИС Цоммунити Едитион, не морате да наведете кључ.

Коментари

  • Тест Процес isc.py.test.Process чува одређени број слика у привременом директоријуму. Можда ћете желети да промените ову путању у монтирани директоријум. Да бисте то урадили, уредите поставку WorkingDir наводећи монтирани директоријум.
  • Да бисте приступили терминалу, покрените: docker exec -it irispy sh.
  • Приступ порталу за управљање системом путем пријаве SuperUser/SYS.
  • Да бисте зауставили контејнер, покрените: docker stop irispy && docker rm --force irispy.

Провера инсталације

Када инсталирате Питхон Гатеваи, вреди проверити да ли ради. Покрените овај код у ИнтерСистемс ИРИС терминалу:

set sc = ##class(isc.py.Callout).Setup() 
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var

Резултат би требао бити HELLO - вредност Питхон променљиве x. Ако повратни статус sc је грешка или var празно, провери Реадме—Одељак за решавање проблема.

АПИ за

Питхон Гатеваи је инсталиран и ви сте се уверили да ради. Време је да почнете да га користите!
Главни интерфејс за Питхон је isc.py.Main. Нуди следеће групе метода (све се враћају %Status):

  • Извршење кода
  • Пренос података
  • Подружница

Извршење кода

Ове методе вам омогућавају да извршите произвољан Питхон код.

СимплеСтринг

SimpleString је главни метод. Потребна су 4 необавезна аргумента:

  • code је линија кода за извршење. Лине феед знак: $c(10).
  • returnVariable је име променљиве коју треба вратити.
  • serialization - како се серијализира returnVariable. 0 - стринг (подразумевано), 1 - репр.
  • result - БиРеф референца на променљиву у којој је вредност записана returnVariable.

Горе смо урадили:

set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).

У овом примеру, ми додељујемо Питхон променљиву x вредност Hello и желите да вратите вредност Питхон променљиве x на променљиву ОбјецтСцрипт var.

ЕкецутеЦоде

ЕкецутеЦоде је сигурнија и мање рестриктивна алтернатива SimpleString.
Линије у ИнтерСистемс ИРИС платформи су ограничене на 3 карактера, а ако желите да извршите дужи део кода, потребно је да користите стреамове.
Потребна су два аргумента:

  • code — стринг или ток Питхон кода који треба да се изврши.
  • variable - (опционо) додељује резултат извршења code ову Питхон променљиву.

Предложите да користите:

set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").

У овом примеру, множимо 2 са 3 и резултат чувамо у Питхон променљивој y.

Пренос података

Проследите податке на Питхон и са њега.

Питхон -> ИнтерСистемс ИРИС

Постоје 4 начина да добијете вредност Питхон променљиве у ИнтерСистемс ИРИС, у зависности од серијализације која вам је потребна:

  • String за једноставне типове података и отклањање грешака.
  • Repr за чување једноставних објеката и отклањање грешака.
  • JSON за лаку манипулацију подацима на ИнтерСистемс ИРИС страни.
  • Pickle да сачувате објекте.

Ове методе вам омогућавају да примате променљиве из Питхон-а као стринг или као токове.

  • GetVariable(variable, serialization, .stream, useString) - добити serialization променљива variable в stream. Ако useString је 1 и серијализација се ставља у стринг, а затим се враћа стринг, а не ток.
  • GetVariableJson(variable, .stream, useString) — добити ЈСОН серијализацију променљиве.
  • GetVariablePickle(variable, .stream, useString, useDill) -Набавите Пицкле (или Дилл) серијализацију променљиве.

Хајде да покушамо да добијемо нашу променљиву y.

set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6

ИнтерСистемс ИРИС -> Питхон

Учитавање података из ИнтерСистемс ИРИС у Питхон.

  • ExecuteQuery(query, variable, type, namespace) - креира скуп података (пандас dataframe или list) из скл упита и подесите га на питхон променљиву variable. Пластична кеса isc.py треба да буду доступни у том подручју namespace - захтев ће се тамо извршити.
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - учитава глобалне податке global из индекса start до end у Питхон-у као променљива типа type: list, или панде dataframe. Опис опционих аргумената mask labels доступно у класној документацији и репозиторијуму Документи за пренос података.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - учитава податке о класи class од ид start до end у Питхон-у као променљива типа type: list, или панде dataframe. properties — листа (одвојена зарезом) својстава класе која ће се учитати у скуп података. Подржане маске * и ?. Уобичајено - * (сва својства). Имовина %%CLASSNAME се игнорише.
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - учитава податке табеле table од ид start до end у питону.

ExecuteQuery - универзални (сваки важећи СКЛ упит ће бити прослеђен Питхон-у). Међутим, ExecuteGlobal и његове омоте ExecuteClass и ExecuteTable рад уз низ ограничења. Они су много бржи (3-5 пута бржи од ОДБЦ драјвера и 20 пута бржи од ExecuteQuery). Више информација у Документи за пренос података.
Све ове методе подржавају пренос података из било које области. Пластична кеса isc.py морају бити доступни у циљној области.

ЕкецутеКуери

ExecuteQuery(request, variable, type, namespace) - прослеђивање резултата било ког важећег СКЛ упита у Питхон. Ово је најспорији начин преноса података. Користите га ако ExecuteGlobal а његови омоти нису доступни.

Аргументи:

  • query - скл упит.
  • variable - назив Питхон променљиве у којој су подаци уписани.
  • type - list или панде dataframe.
  • namespace - област у којој ће се захтев извршити.

ЕкецутеГлобал

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - преношење глобалног на Питхон.

Аргументи:

  • global је назив глобалног без ^
  • variable - назив Питхон променљиве у којој су подаци уписани.
  • type - list или панде dataframe.
  • start — први индекс глобалног. Неопходно %Integer.
  • end је последњи индекс глобалног. Неопходно %Integer.
  • mask — маска глобалних вредности. Маска може бити краћа од броја поља у глобалу (у том случају ће поља на крају бити прескочена). Како форматирати маску:
    • + пренесите вредност каква јесте.
    • - прескочи вредност.
    • b — Булов тип (0 - False, све остало - True).
    • d — Датум (из $хоролог, на Виндовс-у од 1970., на Линук-у од 1900.).
    • t - Време ($хоролог, секунде после поноћи).
    • m — Временска ознака (ГОДИНА-МЕСЕЦ-ДАН САТ:МИНУТЕ:СЕЦОНД формат стринг).
  • labels - %Листа имена колона. Први елемент је назив индекса.
  • namespace - област у којој ће се захтев извршити.

ЕкецутеЦласс

премотати ExecuteGlobal. Припрема позив на основу дефиниције класе ExecuteGlobal и зове га.

ExecuteClass(class, variable, type, start, end, properties, namespace) - прослеђивање података класе у Питхон.

Аргументи:

  • class - Назив класе
  • variable - назив Питхон променљиве у којој су подаци уписани.
  • type - list или панде dataframe.
  • start — почетни Ид.
  • end - коначна ид
  • properties — листа (одвојена зарезом) својстава класе која ће се учитати у скуп података. Подржане маске * и ?. Уобичајено - * (сва својства). Имовина %%CLASSNAME се игнорише.
  • namespace - област у којој ће се захтев извршити.

Сва својства се прослеђују као што јесу осим својстава типа %Date, %Time, %Boolean и %TimeStamp - конвертују се у одговарајуће Питхон класе.

ЕкецутеТабле

премотати ExecuteClass. Преводи име табеле у име класе и позива ExecuteClass. Потпис:

ExecuteTable(table, variable, type, start, end, properties, namespace) - прослеђивање података табеле у Питхон.

Аргументи:

  • table - име табеле.
    Сви остали аргументи се прослеђују као што јесу. ExecuteClass.

Белешке

  • ExecuteGlobal, ExecuteClass и ExecuteTable раде подједнако брзо.
  • ExecuteGlobal 20 пута брже од ExecuteQuery на великим скуповима података (време преноса >0.01 секунде).
  • ExecuteGlobal, ExecuteClass и ExecuteTable рад на глобалима са овом структуром: ^global(key) = $lb(prop1, prop2, ..., propN) где key је цео број.
  • За ExecuteGlobal, ExecuteClass и ExecuteTable подржани опсег вредности %Date одговара опсегу mktime и зависи од ОС-апрозори: 1970-01-01, linux КСНУМКС-КСНУМКС-КСНУМКС, мац). Користите %TimeStampда проследите податке изван овог опсега или користите пандас датафраме као ово ограничење је само за листу.
  • За ExecuteGlobal, ExecuteClass и ExecuteTable сви аргументи осим извора података (глобални, класа или табела) и променљиве су опциони.

Примери

испитни час исц.пи.тест.Персон садржи метод који показује све опције преноса података:

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)

метод позива do ##class(isc.py.test.Person).Test() да видите како функционишу све методе преноса података.

Хелпер Метходс

  • GetVariableInfo(variable, serialization, .defined, .type, .length) - добити информације о променљивој: да ли је дефинисана, класа и дужина серијализације.
  • GetVariableDefined(variable, .defined) - да ли је променљива дефинисана.
  • GetVariableType(variable, .type) - добити класу променљиве.
  • GetStatus() - набавите и уклоните последњи изузетак на страни Питхон-а.
  • GetModuleInfo(module, .imported, .alias) — добити променљиву модула и статус увоза.
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - добити информације о функцији.

Компатибилност

Научили сте како да позовете Питхон Гатеваи са терминала, сада почнимо да га користимо у производњи. Основа за интеракцију са Пајтоном у овом режиму је isc.py.ens.Operation. То нам омогућава:

  • Извршите Питхон код
  • Сачувај/врати Питхон контекст
  • Учитавајте и примајте податке из Питхон-а

У основи, Пихтон операција је омотач isc.py.Main. Операција isc.py.ens.Operation омогућава интеракцију са Питхон процесом из ИнтерСистемс ИРИС производа. Подржано је пет захтева:

  • isc.py.msg.ExecutionRequest за извршавање Питхон кода. враћа isc.py.msg.ExecutionResponse са резултатом извршења и вредностима тражених променљивих.
  • isc.py.msg.StreamExecutionRequest за извршавање Питхон кода. враћа isc.py.msg.StreamExecutionResponse резултат извршења и вредности тражених променљивих. Аналог isc.py.msg.ExecutionRequest, али прихвата и враћа токове уместо стрингова.
  • isc.py.msg.QueryRequest за пренос резултата извршавања СКЛ упита. враћа Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest да пренесе глобалне/класе/табеле податке. враћа Ens.Response.
  • isc.py.msg.SaveRequest да сачувате Питхон контекст. враћа Ens.StringResponse са ИД-ом контекста.
  • isc.py.msg.RestoreRequest да бисте вратили Питхон контекст.

    Поред тога, isc.py.ens.Operation има два подешавања:

    • Initializer - избор класе која имплементира интерфејс isc.py.init.Abstract. Може се користити за учитавање функција, модула, класа и слично. Извршава се једном када процес почне.
    • PythonLib - (Само за Линук) ако видите грешке при покретању, подесите његову вредност на libpython3.6m.so или чак у пуном путу до Питхон библиотеке.

Креирање пословних процеса

Доступне су две класе које олакшавају развој пословних процеса:

  • isc.py.ens.ProcessUtils омогућава вам да извучете белешке из активности са променљивом заменом.
  • isc.py.util.BPEmulator олакшава тестирање пословних процеса са Питхон-ом. Може да изврши пословни процес (Питхон делови) у тренутном процесу.

Замена променљиве

Сви пословни процеси наслеђени од isc.py.ens.ProcessUtils, може користити метод GetAnnotation(name) да бисте добили вредност напомене активности по њеном имену. Анотација активности може да садржи променљиве које ће бити процењене на страни ИнтерСистемс ИРИС пре него што буду прослеђене Питхон-у. Ево синтаксе за замену променљивих:

  • ${class:method:arg1:...:argN} - позив метода
  • #{expr} - извршавање кода у језику ОбјецтСцрипт.

Пример је доступан у пословном процесу теста isc.py.test.Process, на пример, у активности Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). У овом примеру:

  • #{process.WorkDirectory} враћа својство ВоркДирецтори објекта process, што је инстанца класе isc.py.test.Process оне. текући пословни процес.
  • ${%PopulateUtils:Integer:1:100} позива метод Integer класа %PopulateUtils, пренос аргумената 1 и 100, враћа насумични цео број у опсегу 1...100.

Тестирајте пословни процес

Пробна производња и пословни процес тестирања су подразумевано доступни као део Питхон Гатеваи-а. Да бисте их користили:

  1. У ОС терминалу покрените: pip install pandas matplotlib seaborn.
  2. У ИнтерСистемс ИРИС терминалу покрените: do ##class(isc.py.test.CannibalizationData).Import() за попуњавање тестних података.
  3. Лансирајте производе isc.py.test.Production.
  4. Пошаљите врсту захтева Ens.Request в isc.py.test.Process.

Хајде да видимо како све то функционише заједно. отворен isc.py.test.Process у БПЛ едитору:

Питхон Гатеваи у ИнтерСистемс ИРИС

Извршење кода

Најважнији позив је извршавање Питхон кода:

Питхон Гатеваи у ИнтерСистемс ИРИС

Захтев је искоришћен isc.py.msg.ExecutionRequest, ево његових особина:

  • Code — Питхон код.
  • SeparateLines - да ли поделити код на линије за извршење. $c(10) (n) се користи за раздвајање низова. Имајте на уму да се НЕ препоручује обрада целе поруке одједном, ова функција је само за обраду def и слични вишелинијски изрази. Уобичајено 0.
  • Variables је листа променљивих одвојених зарезима које ће бити додате одговору.
  • Serialization - Како да серијализујемо варијабле које желимо да вратимо. Опције: Str, Repr, JSON, Pickle и Dill, Уобичајено Str.

У нашем случају постављамо само својство Code, тако да сва остала својства користе своје подразумеване вредности. Поставили смо га позивом process.GetAnnotation("Import pandas"), који у току извршавања враћа напомену након што је извршена замена променљиве. Коначно код import pandas as pd ће бити прослеђен Питхон-у. GetAnnotation може бити корисно за добијање вишелинијских Питхон скрипти, али нема ограничења за овај начин добијања кода. Можете поставити својство Code на било који начин погодан за вас.

Добијање променљивих

Још један занимљив изазов коришћења isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Питхон Гатеваи у ИнтерСистемс ИРИС

Израчунава матрицу корелације на Питхон страни и издваја променљиву corrmat назад на ИнтерСистемс ИРИС у ЈСОН формату постављањем својстава захтева:

  • Variables: "corrmat"
  • Serialization: "JSON"

Резултате можемо видети у визуелном праћењу:

Питхон Гатеваи у ИнтерСистемс ИРИС

А ако нам је потребна ова вредност у БП, она се може добити овако: callresponse.Variables.GetAt("corrmat").

Пренос података

Затим, хајде да причамо о преносу података са ИнтерСистемс ИРИС на Питхон, сви захтеви за пренос података имплементирају интерфејс isc.py.msg.DataRequest, који пружа следећа својства:

  • Variable је Питхон променљива у коју се уписују подаци.
  • Type - тип променљиве: dataframe (пандас датафраме) или list.
  • Namespace - област из које добијамо податке. Пластична кеса isc.py треба да буду доступни у овој области. Ово може бити област без подршке за производ.

На основу овог интерфејса имплементирају се 4 класе захтева:

  • isc.py.msg.QueryRequest - сет својства Query да пошаљете СКЛ упит.
  • isc.py.msg.ClassRequest - сет својства Class да пренесе податке о разреду.
  • isc.py.msg.TableRequest - сет својства Table да пренесе податке табеле.
  • isc.py.msg.GlobalRequest - сет својства Global за пренос података глобално.

У процесу тестирања погледајте активност RAWГде isc.py.msg.QueryRequest приказано на делу.

Питхон Гатеваи у ИнтерСистемс ИРИС

Чување/враћање Питхон контекста

Коначно, можемо да сачувамо Питхон контекст у ИнтерСистемс ИРИС, да бисте то урадили, пошаљите isc.py.msg.SaveRequest са аргументима:

  • Mask — Чувају се само променљиве које задовољавају маску. Подржан * и ?... Пример: "Data*, Figure?". Уобичајено *.
  • MaxLength — Максимална дужина сачуване променљиве. Ако је серијализација променљиве дужа, она ће бити занемарена. Поставите на 0 да бисте добили променљиве било које дужине. Уобичајено $$$MaxStringLength.
  • Name — Име контекста (опционо).
  • Description — Опис контекста (опционо).

Повратак Ens.StringResponse с Id сачувани контекст. У процесу тестирања погледајте активност Save Context.

Повезани захтев isc.py.msg.RestoreRequest учитава контекст из ИнтерСистемс ИРИС у Питхон:

  • ContextId је идентификатор контекста.
  • Clear — очистите контекст пре враћања.

Јупитер Нотебоок

Јупитер Нотебоок је веб апликација отвореног кода која вам омогућава да креирате и објавите свеске које садрже код, визуелизације и текст. Питхон Гатеваи вам омогућава да видите и уређујете БПЛ процесе као Јупитер нотебоок. Имајте на уму да се тренутно користи обичан Питхон 3 извршитељ.

Ово проширење претпоставља да напомене садрже Питхон код и користе називе активности као претходне наслове. Сада је могуће развити пословне процесе ПитхонГатеваи-а у Јупитер Нотебоок-у. Ево шта је могуће:

  • Креирајте нове пословне процесе
  • Избришите пословне процесе
  • Креирајте нове активности
  • Промените активности
  • Избришите активности

ovde је демо видео. И неке снимке екрана:

Процесс Екплорер

Питхон Гатеваи у ИнтерСистемс ИРИС

Уредник процеса

Питхон Гатеваи у ИнтерСистемс ИРИС

Инсталација

  1. Биће вам потребан ИнтерСистемс ИРИС 2019.2+.
  2. Инсталирајте ПитхонГатеваи в0.8+ (захтева само isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints и isc.py.ens.ProcessUtils).
  3. Ажурирајте ОбјецтСцрипт код из спремишта.
  4. Трцати do ##class(isc.py.util.Jupyter).Install() и пратите упутства.

Записи.

Налази

МЛТоолкит је скуп алата који има за циљ да комбинује моделе и трансакцијско окружење тако да се изграђени модели могу лако користити директно у вашим пословним процесима. Питхон Гатеваи је део МЛТоолкит-а и обезбеђује интеграцију са језиком Питхон, омогућавајући вам да оркестрирате било које алгоритме за машинско учење креиране у Питхон-у (главно окружење за многе научнике података), користите бројне готове библиотеке за брзо креирање прилагодљиве, роботске аналитичке АИ / МЛ решења на ИнтерСистемс платформи ИРИС.

референце

МЛТоолкит

Корисничка група МЛТоолкит је приватно ГитХуб спремиште креирано као део ИнтерСистемс корпоративне ГитХуб организације. Намењен је спољним корисницима који инсталирају, уче или већ користе МЛТоолкит компоненте, укључујући Питхон Гатеваи. Група има велики број имплементираних случајева (са изворним кодом и тест подацима) у областима маркетинга, производње, медицине и многих других индустрија. Да бисте се придружили корисничкој групи МЛ Тоолкит-а, пошаљите кратку е-пошту на следећу адресу: [емаил заштићен] и укључите следеће информације у своје писмо:

  • ГитХуб корисничко име
  • Организација (радите или студирате)
  • Позиција (ваша стварна позиција у вашој организацији, или „Студент“ или „Независна“).
  • Земља

За оне који су прочитали чланак и заинтересовани су за ИнтерСистемс ИРИС као платформу за развој или хостовање механизама вештачке интелигенције и машинског учења, позивамо вас да разговарате о могућим сценаријима од интереса за ваше предузеће. Ми ћемо спремно анализирати потребе вашег предузећа и заједно утврдити акциони план; контакт адреса е-поште наше експертске групе за АИ/МЛ – [емаил заштићен].

Извор: ввв.хабр.цом

Додај коментар