##嵌入式 Python

0 关注者 · 48 帖子

嵌入式 Python 是指将 Python 编程语言集成到 InterSystems IRIS 内核中,允许开发者使用 Python 对数据进行操作并为服务器端应用程序开发业务逻辑。

文档

新增
文章 Kelly Huang · 六月 8 8m read

在基于 InterSystems IRIS 开发 Python 应用时,你很快就会发现存在多种执行上下文:

  • 由 IRIS 直接启动的 Embedded Python
  • 加载本地 IRIS 安装中 Embedded Python 库的常规 python3进程
  • 通过官方原生驱动连接 IRIS 的外部 Python 应用

这三种场景都非常有用,但在导入机制、系统配置、对象 API 以及 SQL 访问方面,它们的行为并不完全一致。iris-embedded-python-wrapper项目提供了一个稳定的 Python 门面(Facade),旨在减少这些差异,并提供一个统一的入口点:import iris

 

存在的问题

在一个围绕 IRIS 构建的 Python 项目中,同一份代码可能需要在多种环境中运行:

  • 在 IRIS 终端中,通过 iris python irisiris session iris后输入 :py
  • 通过 启动的本地 Python 脚本;
  • 连接到 IRIS 实例的远程 Python 服务。

如果没有抽象层,许多细节往往就需要分别处理:

  • Embedded Python 的 iris模块只有在 IRIS 运行时被正确加载时才可用;
  • 原生 SDK​ 同样暴露了一个 包,这可能导致冲突或产生歧义的导入;
  • 和 DB-API 连接在嵌入式模式
0
0 9
新增
文章 Nicky Zhu · 五月 29 2m read

今天,我发布了一个新的Open Exchange 软件包,用于直接在 IRIS 中生成合成数据。

当你想制作一个演示应用程序时,找到合适的数据集是一个令人沮丧的过程。也许数据集并不那么重要,但您仍然希望它看起来有点真实,并有几个链接表,可以直接在 IRIS 中使用 -> 的隐式连接。也许您只是想让链接表可以很容易地安装到 IPM 中,用于基准查询,那么这种数据集生成方式就再好不过了。

我选择使用嵌入式 Python 创建数据集,这些数据集可通过自定义配置文件进行配置。这些数据集直接用一个 IRIS 类方法生成,并可使用乘数进行缩放,以创建任意大小的数据集,而无需测量配置。

目前我有四个数据集:
- 金融服务(如银行卡、账户、交易)
- 零售(商店、产品、用户、库存)
- 供应链(产品、销售订单、库存移动)
- 主题公园管理(公园、区域、游乐设施、事故)

我不是这些领域的专家,所以我怀疑它们是否超级准确,而且数据生成使用了 faker 等 python 库,统计加权生成使用了 numpy,所以感觉有点人工合成。

老实说,作为一个我无法投入大量时间的副业项目,这个项目的成功离不开人工智能。我在设计数据集和生成创建数据集的代码时广泛使用了人工智能。我监督、测试了个人使用的案例,并积极参与了项目设计,但代码都是人工智能生成的,我没有仔细审查过数据集的生成过程。

0
0 21
文章 Kelly Huang · 五月 15 4m read

嘿,社区的朋友们大家好!

是的,我知道我们有很多技巧和窍门类的文章-——我们甚至为此专门设置了一个标签(Tips & Tricks),不是吗?但我不能分享我自己的收藏。在这个合集中,您可以找到适合初学者的代码片段,以及一些日常的 ObjectScript 结构。事实上,这也是一种学习我最喜欢的编程语言的新方法。所以,如果你们有什么要补充的,欢迎提出!

0
0 58
文章 Nicky Zhu · 四月 10 2m read

处理文件通常很简单:打开文件,读取并处理。这种方法非常有效,直到文件碰巧是 Excel 文件。

常见假设

起初,Excel 文件(.xlsx)看起来就像另一个数据文件,行、列和值。因此,我们很自然地认为它可以像 .txt 或 .csv 文件一样被读取。但问题就出在这里。

Excel 文件为何表现不同

关键区别在于数据的存储方式:

-> .txt / .csv - 纯文本,逐行存储。

-> .xlsx - 压缩、结构化格式(非纯文本)

excel 文件实际上不是一个简单的可读行流。从内部看,它是一个包含结构化数据的打包文件,标准文件读取命令无法解释这些数据。

如果把它当作文本文件处理,会发生什么情况?

  • 执行过程中出现错误
  • 输出看起来无法阅读

重要事项 --> 这不是限制,而是工具和文件格式不匹配


实用的处理方法

与其只使用基于文本的方法,还有更好的选择、

  • 转换为 CSV
  • 嵌入 Python (pandas 或 openpyxl 等库)
  • IRIS 互操作性工具

如果有人曾在 IRIS 中处理过 Excel 文件,或有其他行之有效的方法,请随时分享。)

下面提到几个例子。

0
0 255
文章 Lilian Huang · 三月 8 2m read

在现代医疗保健领域,寻找临床上相似的患者往往感觉像大海捞针。传统的关键字搜索往往会失败,因为医学语言具有高度的细微差别;搜索 "心力衰竭 "可能会漏掉包含 "充血性心力衰竭 "的记录。

我很高兴与大家分享 iris-medmatch,这是一个基于InterSystems IRIS for Health的人工智能患者匹配引擎。通过利用矢量搜索(vector search),该工具能够理解临床意图,而不仅仅是匹配字面字符串。
## 核心创新:语义临床搜索

iris-medmatch "在原始FHIR数据和可操作的人工智能洞察力之间架起了一座桥梁。该引擎利用 "all-MiniLM-L6-v2 "模型,将临床条件转化为数学向量。

标准搜索查找的是准确的单词,而该引擎能理解**临床上下文**。例如,它可以使用数学向量相似性将 "高血压 "患者与 "高血压 "搜索匹配起来。

✨ 主要技术特点

  • 核心:InterSystems IRIS、嵌入式 Python、InterSystems FHIR 服务器、矢量搜索
  • 人工智能:Python、ONNX 运行时、HuggingFace 变换器
  • 前端Angular 18+

技术架构

该解决方案的优势在于其架构效率。通过嵌入式 Python 运行 Transformers,我们消除了 "数据重力 "问题。数据留在 IRIS 中,人工智能处理在数据所在的地方进行。

🚀应用演练

1.

0
0 473
文章 Nicky Zhu · 三月 5 2m read

Embeddedpy-bridge:嵌入式 Python 工具包

概述

嵌入式 Python改变了 InterSystems IRIS 的游戏规则,可直接在数据库中访问庞大的 Python 生态系统。但是,在 ObjectScript 和 Python 之间架起桥梁有时会让人感觉像是在两个不同的世界之间转换。

为了实现这种无缝过渡,请使用embeddedpy-bridge

该软件包是一个以开发人员为中心的实用工具包,旨在为嵌入式 Python 提供高级 ObjectScript 封装、熟悉的语法和强大的错误处理功能。它允许开发人员使用他们已经熟悉的本地 IRIS 模式与 Python 数据结构交互。

挑战

虽然 %SYS.Python 库功能强大,但开发人员经常面临一些障碍:

  1. 处理代理:使用原始代理浏览 Python 列表和字典对于 ObjectScript 来说并不 "原生"。
  2. 迭代:标准 ObjectScript While 循环无法与 Python 迭代器进行本地 "对话"。
  3. 命名空间管理:确保 Python 实用程序在整个系统中可用。

解决方案:embeddedpy-bridge

我的目标是创建一个 "桥梁",让 Python 感觉像是 ObjectScript 中的一等公民。

主要功能

  • py 前缀约定%ZPython.Utils
0
0 357
文章 Lilian Huang · 十一月 6, 2025 7m read

Interoperability on Python (IoP) 是一个概念验证项目,旨在展示与 Python 优先方式相结合时 InterSystems IRIS Interoperability Framework 的强大功能。IoP 利用Embedded Python(嵌入式 Python,InterSystems IRIS 的一个功能)使开发者能够用 Python 编写互操作性组件,从而可以与强大的 IRIS 平台无缝集成。本指南专为初学者编写,全面介绍了 IoP、其设置以及创建第一个互操作性组件的操作步骤。 阅读完本文,您将能够清楚地了解如何使用 IoP 构建可扩缩、基于 Python 的互操作性解决方案。

0
0 335
InterSystems 官方 Claire Zheng · 六月 20, 2025

InterSystems 宣布 InterSystems IRIS、InterSystems IRIS for Health 和 HealthShare Health Connect 2025.1 正式发布

2025.1 版的 InterSystems IRIS® 数据平台、InterSystems IRIS® for HealthTMHealthShare® Health Connect 现已正式发布 (GA)。 这是扩展维护 (EM) 版本。

版本亮点

在这个激动人心的版本中,用户可以期待一些新功能和增强,包括:

  1. 高级向量搜索功能
  2. 增强的商业智能
    • IRIS BI 多维数据集构建和同步中的自动依赖项分析,确保复杂多维数据集依赖项中的一致性和完整性。
  3. 改进的 SQL 和数据管理
    • 引入了标准 SQL 分页语法 (LIMIT... OFFSET..., OFFSET... FETCH...)。
    • 新的 LOAD SQL 命令,可以简化 DDL 语句的批量导入。
0
0 254
InterSystems 官方 Claire Zheng · 六月 19, 2025 4m read

互操作性用户界面现在包括可以在所有互操作性产品中使用的 DTL 编辑器生产配置应用程序的现代化用户体验。您可以在现代化视图与标准视图之间切换。所有其他互操作性屏幕仍采用标准用户界面。请注意,仅对这两个应用程序进行了更改,我们在下面确定了当前可用的功能。

要在升级前试用新屏幕,您可以点击这里,从我们的社区工具包网页中下载 2025.1 版:https://evaluation.intersystems.com/Eval/。请观看“学习服务”中的简短教程构建集成:一种新的用户体验,了解对这些屏幕进行的用户增强!

生产配置 - 配置任务简介

  • 生产配置:在以下版本的生产配置中受支持:

    • 创建/编辑/复制/删除主机
    • 停止/启动主机
    • 编辑生产设置
    • 停止/启动生产
  • 源代码控制集成:支持上述配置功能的源代码控制集成。

  • 分屏视图:用户可以直接从“生产配置”屏幕打开“规则编辑器”和“DTL 编辑器”,在分屏视图中查看和编辑产品中包含的规则和转换。

  • 增强的筛选功能:使用顶部的搜索框,您可以搜索和筛选各种业务组件,包括多种类别、DTL 和子转换。 使用左侧边栏可以独立于主面板进行搜索,查看各种主机和类别中的搜索结果。

  • 批量编辑主机类别:通过从生产配置中添加主机,您可以为生产添加新类别或编辑现有类别。

  • 可展开路由器:可以展开路由器,内联查看所有规则、转换和连接。

0
0 311