InterSystems IRIS 中的 Python 网关

本文介绍的是 Python Gateway,这是 InterSystems IRIS 数据平台的开源社区项目。 该项目允许您编排用 Python(许多数据科学家的主要环境)创建的任何机器学习算法,使用大量现成的库在 InterSystems IRIS 平台上快速创建自适应机器人分析 AI/ML 解决方案。 在本文中,我将展示 InterSystems IRIS 如何在 Python 中编排流程、高效地通信双向数据以及创建智能业务流程。

计划

  1. 简介。
  2. 工具。
  3. 安装。
  4. API。
  5. 互操作性。
  6. Jupyter 笔记本。
  7. 结论。
  8. 链接。
  9. 机器学习工具包。

介绍

Python 是一种高级通用编程语言,旨在提高开发人员的工作效率和代码可读性。 在本系列文章中,我将讨论在 InterSystems IRIS 平台上使用 Python 的可能性,本文的主要重点是使用 Python 作为创建和运行机器学习模型的语言。

机器学习(ML)是一类人工智能方法,其特征不是直接解决某个问题,而是在解决许多类似问题的过程中学习。

机器学习算法和模型变得越来越普遍。 造成这种情况的原因有很多,但都归结为可访问性、简单性和实现实际效果。 聚类甚至神经网络建模是新技术吗?

当然不是,但是现在不需要编写数十万行代码来运行单个模型,并且创建和使用模型的成本变得越来越低。

工具在不断发展 - 虽然我们没有完全以 GUI 为中心的 AI/ML 工具,但我们在许多其他类别的信息系统(例如 BI)(从编写代码到使用框架和以 GUI 为中心的可配置解决方案)方面看到的进展正在在创建 AI/ML 的工具中也观察到了这一点。 我们已经过了编写代码的阶段,今天我们使用框架来构建和训练模型。

其他改进,例如分发预训练模型的能力,最终用户只需根据其特定数据完成模型训练,也使机器学习的入门变得更加容易。 这些进步使得学习机器学习对于专业人士和一般公司来说都变得更加容易。

另一方面,我们正在收集越来越多的数据。 借助 InterSystems IRIS 等统一数据平台,所有这些信息都可以立即准备好并用作机器学习模型的输入。

随着迁移到云端,启动 AI/ML 项目变得比以往更容易。 我们只能消耗我们需要的资源。 此外,由于云平台提供的并行化,我们可以节省时间。

但结果呢? 这就是事情变得更加复杂的地方。 用于构建模型的工具有很多,我将在接下来讨论。 建立一个好的模型并不容易,但接下来该怎么办呢? 通过使用商业模式来盈利也是一项艰巨的任务。 问题的根源在于分析和事务工作负载以及数据模型的分离。 当我们训练模型时,我们通常会根据历史数据进行训练。 但构建模型的位置是在事务数据处理中。 如果我们每天运行一次,那么最好的欺诈交易检测模型有什么用呢? 骗子早已带着钱离开了。 我们需要根据历史数据训练模型,但我们还需要将其实时应用于新的传入数据,以便我们的业务流程可以根据模型所做的预测采取行动。

ML Toolkit 是一组旨在实现这一目标的工具:统一模型和事务环境,以便构建的模型可以轻松地直接在业务流程中使用。 Python Gateway 是 ML Toolkit 的一部分,提供与 Python 语言的集成(类似于 R Gateway,作为 ML Toolkit 的一部分提供与 R 语言的集成)。

工具

在继续之前,我想介绍一下我们稍后将使用的一些 Python 工具和库。

技术

  • Python 是一种解释型、高级通用编程语言。 该语言的主要优势是其庞大的数学、机器学习和人工智能库。 与 ObjectScript 一样,它是一种面向对象的语言,但一切都是动态定义的,而不是静态定义的。 而且一切都是对象。 后面的文章假设您对这门语言有一定的了解。 如果你想开始学习,我建议从 文件资料.
  • 对于我们后续的练习,设置 Python 3.6.7 64 位.
  • IDE:我用 PyCharm,但一般来说他们 很多。 如果您使用 Atelier,有一个针对 Python 开发人员的 Eclipse 插件。 如果您使用 VS Code,则有一个 Python 扩展。
  • 笔记本:您可以在在线笔记本中编写和共享脚本,而不是使用 IDE。 其中最受欢迎的是 朱皮特.

图书馆

以下是机器学习库的(非详尽)列表:

  • 脾气暴躁的 — 用于精确计算的基本包。
  • 熊猫 — 高性能数据结构和数据分析工具。
  • Matplotlib — 图表的创建。
  • 海生 — 基于 matplotlib 的数据可视化。
  • 斯克莱恩 ——机器学习方法。
  • XGBoost - 梯度提升方法框架内的机器学习算法。
  • 金西姆 ——自然语言处理。
  • Keras - 神经网络。
  • Tensorflow — 用于创建机器学习模型的平台。
  • PyTorch 是一个用于创建机器学习模型的平台,专注于Python。
  • ka香 - 来自各种模型的 PMML。

AI/ML 技术使业务更加高效、适应性更强。 此外,如今这些技术变得越来越容易开发和实施。 开始了解 AI/ML 技术以及它们如何帮助您的组织发展。

安装

安装和使用Python Gateway有多种方法:

  • GA
    • Windows
    • Linux
    • Mac
  • 码头工人
    • 使用 DockerHub 中的镜像
    • 创建您自己的外观

无论采用哪种安装方法,您都需要源代码。 下载代码的唯一位置是 发布页面。 它包含经过测试的稳定版本,只需使用最新版本即可。 目前是 0.8,但随着时间的推移将会有新的。 不要克隆/下载存储库,请下载最新版本。

GA

如果要在操作系统上安装 Python Gateway,则首先(无论操作系统如何)需要安装 Python。 为了这:

  1. 安装Python 3.6.7 64位。 建议将Python安装在默认目录中。
  2. 安装模块 dill: pip install dill.
  3. 下载 ObjectScript 代码(即 do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1))到任何有产品的区域。 如果您想要现有区域来支持产品,请运行: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. 地方 标注 DLL/SO/DYLIB 到文件夹 bin 您的 InterSystems IRIS 实例。 库文件必须在返回的路径中可用 write ##class(isc.py.Callout).GetLib().

Windows

  1. 确保环境变量 PYTHONHOME 指向Python 3.6.7。
  2. 确保系统环境变量是 PATH 包含一个变量 PYTHONHOME (或者它指向的目录)。

Linux(Debian/Ubuntu)

  1. 检查环境变量是否为 PATH 它包含 /usr/lib и /usr/lib/x86_64-linux-gnu。 使用文件 /etc/environment 设置环境变量。
  2. 如果出现错误 undefined symbol: _Py_TrueStruct 设置设置 PythonLib。 也在 自述 有一个故障排除部分。

Mac

  1. 目前仅支持Python 3.6.7 Python.org。 检查变量 PATH.

如果更改了环境变量,请重新启动 InterSystems 产品。

码头工人

使用容器有很多优点:

  • 可移植性
  • 效用
  • 绝缘
  • 亮度
  • 不变性

看看这个 系列文章 有关将 Docker 与 InterSystems 产品结合使用的更多信息。

目前所有 Python Gateway 版本都是基于容器的 2019.4.

就绪图像

跑步: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latest下载并运行带有 InterSystems IRIS Community Edition 的 Python Gateway。 就这样。

创建您自己的外观

要构建 docker 映像,请在存储库的根目录中运行: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
默认情况下,镜像是根据镜像构建的 store/intersystems/iris-community:2019.4.0.383.0,但是您可以通过设置变量来更改它 IMAGE.
要从 InterSystems IRIS 构建,请运行:`docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest "。

之后你可以运行 docker 镜像:

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

如果您使用的是基于 InterSystems IRIS Community Edition 的映像,则可以省略该密钥。

评论

  • 测试流程 isc.py.test.Process 将许多图像保存到临时目录。 您可能想要将此路径更改为已安装的目录。 为此,请编辑设置 WorkingDir 指定挂载的目录。
  • 要访问终端,请运行: docker exec -it irispy sh.
  • 通过登录进入系统管理门户 SuperUser/SYS.
  • 要停止容器,请运行: docker stop irispy && docker rm --force irispy.

验证安装

安装 Python Gateway 后,值得检查它是否正常工作。 在 InterSystems IRIS 终端中执行此代码:

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

结果应该是: HELLO — Python 变量值 x。 如果返回状态 sc 是一个错误或 var 空,检查 自述文件 - 故障排除部分.

API

Python Gateway 已安装,并且您已验证它是否有效。 是时候开始使用它了!
Python 的主要接口是 isc.py.Main。 它提供了以下几组方法(全部返回 %Status):

  • 代码执行
  • 数据传输
  • 辅助的

代码执行

这些方法允许您执行任意 Python 代码。

简单字符串

SimpleString - 这是主要方法。 它需要 4 个可选参数:

  • code — 要执行的代码行。 换行符: $c(10).
  • returnVariable — 要返回的变量的名称。
  • serialization - 如何序列化 returnVariable。 0 — 字符串(默认),1 — 重复。
  • result — ByRef 对写入值的变量的引用 returnVariable.

上面我们做了:

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

在此示例中,我们分配给一个 Python 变量 xHello 想要返回 Python 变量的值 x 到 ObjectScript 变量 var.

执行代码

ExecuteCode 是一种更安全、限制更少的替代方案 SimpleString.
InterSystems IRIS平台中的行限制为3个字符,如果要执行更长的代码,则需要使用线程。
接受两个论点:

  • code — 要执行的一行或一行 Python 代码。
  • variable —(可选)分配执行结果 code 这个Python变量。

使用示例:

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

在此示例中,我们将 2 乘以 3 并将结果写入 Python 变量 y.

数据传输

将数据传入和传出 Python。

Python -> InterSystems IRIS

有 4 种方法可以在 InterSystems IRIS 中获取 Python 变量的值,具体取决于您需要的序列化:

  • String 用于简单的数据类型和调试。
  • Repr 用于存储简单对象和调试。
  • JSON 用于在 InterSystems IRIS 端轻松进行数据操作。
  • Pickle 来保存对象。

这些方法允许您从 Python 中以字符串或流的形式检索变量。

  • GetVariable(variable, serialization, .stream, useString) - 得到 serialization 变量 variable в stream。 如果 useString 为 1 并且序列化放在字符串上,然后返回字符串而不是流。
  • GetVariableJson(variable, .stream, useString) — 获取变量的 JSON 序列化。
  • GetVariablePickle(variable, .stream, useString, useDill) -get Pickle(或 Dill)变量的序列化。

让我们尝试获取我们的变量 y.

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

InterSystems IRIS -> Python

将数据从 InterSystems IRIS 加载到 Python 中。

  • ExecuteQuery(query, variable, type, namespace) - 创建一个数据集(pandas dataframe или list) 来自 sql 查询并将其设置为 Python 变量 variable. 塑料袋 isc.py 必须在该地区可用 namespace — 请求将在那里执行。
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - 加载全局数据 global 从下标 startend 在Python中作为类型变量 type: list,或熊猫 dataframe。 可选参数的描述 masklabels 在类文档和存储库中可用 数据传输文档.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - 加载类数据 class 来自 ID startend 在Python中作为类型变量 type: list,或熊猫 dataframe. properties — 需要加载到数据集中的类属性列表(以逗号分隔)。 支持口罩 * и ?。 默认 - * (所有属性)。 财产 %%CLASSNAME 被忽略。
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - 加载表数据 table 来自 ID startend 在Python中。

ExecuteQuery — 通用(任何正确的 SQL 查询都将传递给 Python)。 然而, ExecuteGlobal 和它的包装纸 ExecuteClass и ExecuteTable 工作有许多限制。 它们速度更快(比 ODBC 驱动程序快 3-5 倍,比 ODBC 驱动程序快 20 倍) ExecuteQuery)。 更多信息请访问 数据传输文档.
所有这些方法都支持来自任何区域的数据传输。 塑料袋 isc.py 必须在目标区域可用。

执行查询

ExecuteQuery(request, variable, type, namespace) — 将任何正确的 SQL 查询的结果传输到 Python。 这是最慢的数据传输方法。 如果使用它 ExecuteGlobal 并且它的包装不可用。

参数:

  • query - SQL查询。
  • variable — 写入数据的 Python 变量的名称。
  • type - list 或熊猫 dataframe.
  • namespace — 将执行请求的区域。

执行全局

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - 在Python中传递一个全局变量。

参数:

  • global - 全局名称不带 ^
  • variable — 写入数据的 Python 变量的名称。
  • type - list 或熊猫 dataframe.
  • start — 全局的第一个下标。 一定 %Integer.
  • end — 全局的最后一个下标。 一定 %Integer.
  • mask — 全局值掩码。 掩码可以比全局字段的数量短(在这种情况下,末尾的字段将被跳过)。 如何格式化掩码:
    • + 按原样传递值。
    • - 跳过值。
    • b — 布尔类型 (0 - False, 其他的 - True).
    • d — 日期(来自 $horolog,在 Windows 上从 1970 年开始,在 Linux 上从 1900 年开始)。
    • t — 时间($horolog,午夜过后的秒数)。
    • m — 时间戳(格式字符串 YEAR-MONTH-DAY HOUR:MINUTE:SECOND)。
  • labels — %列名称列表。 第一个元素是下标的名称。
  • namespace — 将执行请求的区域。

执行类

包裹起来 ExecuteGlobal。 根据类定义,准备调用 ExecuteGlobal 并打电话给他。

ExecuteClass(class, variable, type, start, end, properties, namespace) - 在Python中传递类数据。

参数:

  • class - 班级名称
  • variable — 写入数据的 Python 变量的名称。
  • type - list 或熊猫 dataframe.
  • start — 起始 ID。
  • end — 最终 ID
  • properties — 需要加载到数据集中的类属性列表(以逗号分隔)。 支持口罩 * и ?。 默认 - * (所有属性)。 财产 %%CLASSNAME 被忽略。
  • namespace — 将执行请求的区域。

除类型属性外,所有属性均按原样传递 %Date, %Time, %Boolean и %TimeStamp - 它们被转换成相应的Python类。

执行表

包裹起来 ExecuteClass。 将表名翻译为类名并调用 ExecuteClass。 签名:

ExecuteTable(table, variable, type, start, end, properties, namespace) - 将表数据传递给Python。

参数:

  • 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的 1900-01 01, MAC)。 使用 %TimeStamp传输此范围之外的数据或使用 pandas dataframe 因为这是仅限列表的限制。
  • ExecuteGlobal, ExecuteClass и ExecuteTable 除了数据源(全局、类或表)和变量之外的所有参数都是可选的。

Примеры

测试班 isc.py.test.Person 包含演示所有数据传输选项的方法:

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() - 获取并删除Python端的最后一个异常。
  • GetModuleInfo(module, .imported, .alias) — 获取模块变量和导入状态。
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) — 获取有关该功能的信息。

互操作性

您已经学习了如何从终端调用 Python Gateway,现在让我们开始在生产中使用它。 这种模式下与Python交互的基础是 isc.py.ens.Operation。 它允许我们:

  • 在 Python 中执行代码
  • 保存/恢复 Python 上下文
  • 从 Python 加载和接收数据

基本上,Python 操作是一个包装器 isc.py.Main。 手术 isc.py.ens.Operation 提供与 InterSystems IRIS 产品中的 Python 进程交互的能力。 支持五种查询:

  • isc.py.msg.ExecutionRequest 执行Python代码。 退货 isc.py.msg.ExecutionResponse 以及执行结果和请求的变量的值。
  • isc.py.msg.StreamExecutionRequest 执行Python代码。 退货 isc.py.msg.StreamExecutionResponse 执行结果和请求变量的值。 类似物 isc.py.msg.ExecutionRequest,但接受并返回流而不是字符串。
  • isc.py.msg.QueryRequest 传输执行 SQL 查询的结果。 退货 Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest 用于传递全局/类/表数据。 退货 Ens.Response.
  • isc.py.msg.SaveRequest 保存Python上下文。 退货 Ens.StringResponse 与上下文 ID。
  • isc.py.msg.RestoreRequest 恢复Python上下文。

    另外, isc.py.ens.Operation 有两个设置:

    • Initializer — 选择一个实现接口的类 isc.py.init.Abstract。 它可用于加载函数、模块、类等。 进程启动时执行一次。
    • PythonLib -(仅限 Linux)如果加载时看到错误,请将其值设置为 libpython3.6m.so 甚至是 Python 库的完整路径。

创建业务流程

有两个类可以促进业务流程的开发:

  • isc.py.ens.ProcessUtils 允许您通过变量替换从活动中提取注释。
  • isc.py.util.BPEmulator 可以轻松地使用 Python 测试业务流程。 它可以在当前流程中执行业务流程(Python部分)。

变量替换

所有业务流程继承自 isc.py.ens.ProcessUtils,可以使用该方法 GetAnnotation(name) 通过名称获取活动注释值。 活动注释可以包含在传递到 Python 之前将在 InterSystems IRIS 端计算的变量。 以下是变量替换的语法:

  • ${class:method:arg1:...:argN} - 方法调用
  • #{expr} — 以 ObjectScript 语言执行代码。

测试业务流程中有一个示例 isc.py.test.Process,例如,在活动中 Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png')。 在这个例子中:

  • #{process.WorkDirectory} 返回对象的 WorkDirectory 属性 process,这是该类的一个实例 isc.py.test.Process 那些。 当前的业务流程。
  • ${%PopulateUtils:Integer:1:100} 调用一个方法 Integer%PopulateUtils,传递参数 1 и 100,返回范围内的随机整数 1...100.

测试业务流程

默认情况下,测试产品和测试业务流程作为 Python 网关的一部分提供。 使用它们:

  1. 在操作系统终端中,运行: pip install pandas matplotlib seaborn.
  2. 在 InterSystems IRIS 终端中,运行: do ##class(isc.py.test.CannibalizationData).Import() 填写测试数据。
  3. 推出产品 isc.py.test.Production.
  4. 发送请求类型 Ens.Request в isc.py.test.Process.

让我们看看它们是如何协同工作的。 打开 isc.py.test.Process 在 BPL 编辑器中:

InterSystems IRIS 中的 Python 网关

代码执行

最重要的挑战是执行 Python 代码:

InterSystems IRIS 中的 Python 网关

使用的查询 isc.py.msg.ExecutionRequest,这是它的属性:

  • Code ——Python 代码。
  • SeparateLines — 是否将代码分成几行执行。 $c(10) (n) 用于分隔字符串。 请注意,不建议一次处理整个消息,此函数仅用于处理 def 和类似的多行表达式。 默认 0.
  • Variables — 将添加到响应中的以逗号分隔的变量列表。
  • Serialization — 如何序列化我们想要返回的变量。 选项: Str, Repr, JSON, Pickle и Dill, 默认 Str.

在我们的例子中,我们只设置属性 Code,因此所有其他属性都使用默认值。 我们通过调用来设置它 process.GetAnnotation("Import pandas"),它在运行时在执行变量替换后返回一个注释。 毕竟,代码 import pandas as pd 将被传递给Python。 GetAnnotation 对于获取多行Python脚本可能很有用,但是这种获取代码的方法没有任何限制。 您可以设置属性 Code 以您方便的任何方式。

获取变量

另一个有趣的挑战是使用 isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

InterSystems IRIS 中的 Python 网关

它在Python端计算相关矩阵并提取变量 corrmat 通过设置请求属性返回 JSON 格式的 InterSystems IRIS:

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

我们可以在Visual Trace中看到结果:

InterSystems IRIS 中的 Python 网关

如果我们在 BP 中需要这个值,我们可以这样获取: callresponse.Variables.GetAt("corrmat").

数据传输

接下来我们来说说从InterSystems IRIS到Python的数据传输;所有数据传输的请求都实现该接口 isc.py.msg.DataRequest它提供以下属性:

  • Variable — 写入数据的 Python 变量。
  • Type — 变量类型: dataframe (熊猫数据框)或 list.
  • Namespace — 我们接收数据的区域。 塑料袋 isc.py 应该可以在这个区域使用。 这可能是一个没有产品支持的领域。

基于该接口,实现了4类请求:

  • isc.py.msg.QueryRequest - 设置属性 Query 发送 SQL 查询。
  • isc.py.msg.ClassRequest - 设置属性 Class 传递类数据。
  • isc.py.msg.TableRequest - 设置属性 Table 来传输表数据。
  • isc.py.msg.GlobalRequest - 设置属性 Global 用于全球数据传输。

测试过程中,查看activity RAW哪里 isc.py.msg.QueryRequest 体现在行动上。

InterSystems IRIS 中的 Python 网关

保存/恢复 Python 上下文

最后,我们可以将 Python 上下文保存在 InterSystems IRIS 中,为此,我们将发送 isc.py.msg.SaveRequest 带参数:

  • Mask — 仅保存与掩码匹配的变量。 支持的 * и ?。 例如: "Data*, Figure?"... 默认 *.
  • MaxLength — 存储变量的最大长度。 如果变量的序列化较长,它将被忽略。 设置为 0 可获取任意长度的变量。 默认 $$$MaxStringLength.
  • Name — 上下文名称(可选)。
  • Description — 上下文描述(可选)。

退货 Ens.StringResponse с Id 保存的上下文。 测试过程中,查看activity Save Context.

匹配请求 isc.py.msg.RestoreRequest 将上下文从 InterSystems IRIS 加载到 Python 中:

  • ContextId — 上下文标识符。
  • Clear — 在恢复之前清除上下文。

Jupyter笔记本

Jupyter笔记本 是一个开源 Web 应用程序,允许您创建和发布包含代码、可视化和文本的笔记本。 Python Gateway 允许您以 Jupyter Notebook 的形式查看和编辑 BPL 流程。 请注意,当前使用的是普通的 Python 3 执行器。

此扩展假定注释包含 Python 代码并使用活动名称作为前面的标题。 现在可以在 Jupyter Notebook 中开发 PythonGateway 业务流程。 这是可能的:

  • 创建新的业务流程
  • 删除业务流程
  • 创建新活动
  • 改变活动
  • 删除活动

这里 演示视频。 以及一些屏幕截图:

流程浏览器

InterSystems IRIS 中的 Python 网关

流程编辑器

InterSystems IRIS 中的 Python 网关

安装

  1. 您将需要 InterSystems IRIS 2019.2+。
  2. 安装PythonGateway v0.8+(仅需要 isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints и isc.py.ens.ProcessUtils).
  3. 从存储库更新 ObjectScript 代码。
  4. 执行 do ##class(isc.py.util.Jupyter).Install() 并按照提示操作。

Документация.

发现

MLToolkit 是一组工具,其目标是将模型和事务环境结合起来,以便构建的模型可以轻松地直接在您的业务流程中使用。 Python Gateway 是 MLToolkit 的一部分,提供与 Python 语言的集成,允许您编排在 Python(许多数据科学家的主要环境)中创建的任何机器学习算法,使用大量现成的库快速创建自适应机器人分析 AI/ InterSystems 平台 IRIS 上的机器学习解决方案。

引用

机器学习工具包

MLToolkit 用户组是一个私有 GitHub 存储库,作为 InterSystems 公司 GitHub 组织的一部分创建。 它适用于安装、学习或已经使用 MLToolkit 组件(包括 Python Gateway)的外部用户。 集团在营销、制造、医药等众多行业领域拥有多个实施案例(附源代码和测试数据)。 要加入 ML Toolkit 用户组,请发送一封简短的电子邮件至以下地址: [电子邮件保护] 并在信中包含以下信息:

  • GitHub 用户名
  • 组织(你工作或学习)
  • 职位(您在组织中的实际职位,“学生”或“独立”)。
  • 国家

对于那些已阅读本文并对 InterSystems IRIS 作为开发或托管人工智能和机器学习引擎平台的功能感兴趣的人,我们邀请您讨论您的企业感兴趣的可能场景。 我们很乐意分析贵公司的需求并共同确定行动计划; 我们的 AI/ML 专家团队的联系电子邮件地址 – [电子邮件保护].

来源: habr.com

添加评论