##嵌入式 Python

0 关注者 · 57 帖子

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

文档

文章 Jeff Liu · 八月 16 6m read

大家好,

我在 IRIS for Health 上构建了一个小型临床 AI FHIR 代理网络,想和大家分享让它正常运行的关键组件。

本文将涵盖以下内容:

  • 基于代理的AI技术栈
  • 代理路由逻辑
  • FHIR 读写访问(工具)
  • 带备用方案的 RAG 加载
  • 肿瘤学智能体:从配置到检测结果
  • 双智能体路由示例
0
0 66
文章 Jeff Liu · 八月 11 10m read

借助 PollingBusinessService 提升开发者体验

4.0.0 版本中最引人注目的新增功能之一是 PollingBusinessService

在此版本之前,创建定时 Python 业务服务意味着需要 直接处理低级入站适配器模式。在 4.0.0 版本中,定时 Python 入口点可以直接编写为 PollingBusinessService, 框架会在后台自动使用默认的 IRIS 入站适配器。

以下是一个完整的小型示例:

from dataclasses import dataclass

from iop import BusinessOperation, Message, PollingBusinessService, Production, target


@dataclass
class HelloRequest(Message):
    text: str = "Hello World"


class HelloService(PollingBusinessService):
    Output = target()

    def on_poll(self):
        self.send_request_async(self.Output, HelloRequest())


class HelloOperation(BusinessOperation):
    def on_message(self, request: HelloRequest):
        self.log_info(request.text)
        return request


prod = Production("HelloWorld.Production", testing_enabled=True)
service = prod.service("HelloService", HelloService)
operation = prod.operation("HelloOperation", HelloOperation)
service.connect(HelloService.Output, operation)

PRODUCTIONS = [prod]
0
0 56
文章 Lilian Huang · 七月 26 12m read
  1. 引言

流行病学监测是公共卫生的基石之一。 Régis Júnior等人(2026)将其定义为一个针对健康事件的持续性数据收集、分析、解读和传播系统——该功能的有效性在很大程度上取决于信息系统的质量、数据分析能力以及不同医疗层级之间的协调。 在新冠疫情期间,这一职能的战略重要性已毋庸置疑:世界卫生组织(2021)的记录显示,拥有更健全监测系统的国家始终表现得更好,而监测能力方面的区域差异则直接导致了应对措施的不一致,并在发病率和死亡率方面产生了可测量的差异。

尽管医疗系统如今能够收集海量的标准化临床数据,但挑战在于如何将这些数据转化为及时且可付诸行动的洞见。传统的流行病学报告往往依赖于人工分析和定制数据库查询,由此产生的延迟可能会阻碍公共卫生部门的快速响应。

EpInsights通过整合 InterSystems IRIS for Health、嵌入式 Python 临床向量化技术、IRIS Vector Search 以及 LangChain4j 对话式智能助手,填补了这一空白。 该平台使流行病学家和卫生管理者能够提出自然语言问题,并即时获得基于真实FHIR数据的地理空间热力图、区域排名、相似聚类检测以及AI生成的建议,所有结果均在数秒内呈现。


  •  
  1. 架构概述

EpInsights 采用三层架构,各层职责划分明确。

0
0 40
文章 Kelly Huang · 七月 19 2m read

要成功构建和部署人工智能代理以应对医疗保健领域的各种用例,关键在于高质量的数据和API,以及有效的治理与管理。 InterSystems IRIS FHIR 服务器不仅能满足上述所有需求,还精通 Python、向量搜索和互操作性。结合强大的大型语言模型(LLM),患者、医生、护理人员和管理者将能够利用最先进的技术来改善个人健康和公共卫生。

本文利用 InterSystems IRIS FHIR 存储库、FHIR API、嵌入式 Python 以及向量搜索作为数据服务和 API,从而使部署在 Ollama 上的 LLM lhama3 能够处理以下用例:临床摘要、 通过API使用自然语言探索FHIR数据、AI生成的患者临床指标图形分析,以及利用向量搜索进行病例相似性比较等用例。

安装

1. 访问 Open Exchange 并查找应用程序 fhir assistant(https://openexchange.intersystems.com/package/fhir-assistant

2. 将代码库克隆/通过 Git 拉取到任意本地目录:

$ git clone https://github.com/yurimarx/fhir-assistant.git

3.

0
0 49
文章 Nicky Zhu · 七月 15 5m read

在我的第一篇文章中,我介绍了 FHIR 患者快照代理的基础版本:这是一个基于 Streamlit 和 Python 的应用程序,它从 InterSystems IRIS for Health 中检索 FHIR 资源,并利用大型语言模型(LLM)生成简明扼要的患者摘要。

本文作为后续文章,将介绍我是如何通过添加两项针对 InterSystems 的功能来扩展该项目的:

  • 源上下文向量搜索
  • 用于 IRIS 兼容审查的嵌入式 Python 组件

目标是让该项目作为临床摘要原型更具实用性,同时保持设计足够精简,以便于理解和复现。

项目回顾

FHIR 患者快照代理(FHIR Patient Snapshot Agent)是一款基于人工智能的 FHIR 患者数据摘要工具。

该应用程序可检索所选患者的结构化资源:

  • 患者
  • 病情
  • 用药请求
  • 过敏与不耐受
  • 观察
  • 就诊
  • 护理计划

Python 层将这些资源整合为一个紧凑的患者背景。用户随后可以生成以下任一内容:

  • 确定性摘要,或
  • 由大型语言模型(LLM)生成的针对特定角色的摘要

该 LLM 集成通过兼容 OpenAI 的聊天补全 API 使用 Nebius Token Factory。演示中使用的模型为:

meta-llama/Llama-3.3-70B-Instruct

该项目为开源项目:

0
0 49
文章 Claire Zheng · 六月 16 7m read

大家好,

在本文中,我将介绍我的应用程序iris-fhir-agents 这是一个由 InterSystems IRIS for Health 驱动的多智能体临床 AI 平台。该平台包含用于分诊、专科会诊、用药安全以及 FHIR 服务器探索的智能体——所有功能均基于 IRIS Vector Search RAG 构建。 平台包含一个无代码代理构建器,让您无需编写任何代码即可设计和部署自定义临床代理。

0
0 65
文章 Claire Zheng · 六月 16 7m read

大家好,

你是否曾希望你的电子健康记录(EHR)能具备思考能力?不仅仅是显示数据,也不仅仅是触发警报。而是能够真正阅读病历、综合临床指南进行分析,并根据临床医生的单条信息,向系统生成结构化的转诊医嘱。

在本文中,我将向大家展示如何创建您自己的定制临床AI助手。


🏥 关于 iris-fhir-agents 应用

iris-fhir-agents是一个完全基于 InterSystems IRIS for Health 构建的多智能体临床 AI 平台

0
0 73
文章 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 63
文章 Nicky Zhu · 五月 29 2m read

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

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

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

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

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

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

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

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

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

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

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

常见假设

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

Excel 文件为何表现不同

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

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

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

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

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

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

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


实用的处理方法

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

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

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

下面提到几个例子。

0
0 344
文章 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 628
文章 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 498
文章 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 444
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 304
InterSystems 官方 Claire Zheng · 六月 19, 2025 4m read

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

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

生产配置 - 配置任务简介

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

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

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

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

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

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

0
0 391
文章 Lilian Huang · 四月 16, 2025 7m read

Hi 大家好
在本文中,我讲介绍我的应用 iris-AgenticAI .

代理式人工智能的兴起标志着人工智能与世界互动方式的变革性飞跃--从静态响应转变为动态、目标驱动的问题解决方式。参看 OpenAI’s Agentic SDK ,  OpenAI Agents SDK使您能够在一个轻量级、易用且抽象程度极低的软件包中构建代理人工智能应用程序。它是我们之前的代理实验 Swarm 的生产就绪升级版。

该应用展示了下一代自主人工智能系统,这些系统能够进行推理、协作,并以类似人类的适应能力执行复杂任务。

应用功能

  • Agent Loop 🔄 一个内置循环,可自主管理工具的执行,将结果发回 LLM,并迭代直至任务完成。
  • Python-First 🐍 利用本地 Python 语法(装饰器、生成器等)来协调和连锁代理,而无需外部 DSL。
  • Handoffs 🤝 通过在专业代理之间委派任务,无缝协调多代理工作流程。
  • Function Tools ⚒️ 用 @tool 修饰任何 Python 函数,可立即将其集成到代理的工具包中。
  • Vector Search (RAG) 🧠 原生集成向量存储(IRIS),用于 RAG 检索。
  • Tracing 🔍 内置跟踪功能,可实时可视化、调试和监控代理工作流(想想 LangSmith 的替代方案)。
  • MCP Servers 🌐 通过 stdio 和 HTTP 支持模型上下文协议(MCP),实现跨进程代理通信。
  • Chainlit UI 🖥️ 集成 Chainlit 框架,可使用最少的代码构建交互式聊天界面。
  • Stateful Memory 🧠 跨会话保存聊天历史、上下文和代理状态,以实现连续性和长期任务。
0
0 319
文章 Lilian Huang · 四月 10, 2025 6m read

社区朋友们好,

传统的基于关键词的搜索方式在处理具有细微差别的领域特定查询时往往力不从心。而向量搜索则通过语义理解能力,使AI智能体能够根据上下文(而非仅凭关键词)来检索信息并生成响应。

本文将通过逐步指导,带您创建一个具备代理能力的AI RAG(检索增强生成)应用程序。

实现步骤:

  1. 添加文档摄取功能
    • 自动获取并建立文档索引(例如《InterSystems IRIS 2025.1版本说明》)
    • 实现向量搜索功能
  2. 构建向量搜索智能体
  3. 移交至主智能体(分流处理)
  4. 运行智能体

1. Create Agent Tools 添加文档摄取功能

Implement Document Ingestion: Automated ingestion and indexing of documents 


1.1 - 以下是实现文档摄取工具的代码:

    def ingestDoc(self):
        #Check if document is defined, by selecting from table
        #If not defined then INGEST document, Otherwise back
        embeddings = OpenAIEmbeddings()	
        #Load the document based on the fle type
        loader = TextLoader("/irisdev/app/docs/IRIS2025-1-Release-Notes.txt", encoding='utf-8')      
        
        documents = loader.load()        
        text_splitter = RecursiveCharacterTextSplitter(chunk_size=400, chunk_overlap=0)
        
        texts = text_splitter.split_documents(documents)
                       
        #COLLECTION_NAME = "rag_document"
        db = IRISVector.from_documents(
            embedding=embeddings,
            documents=texts,
            collection_name = self.COLLECTION_NAME,
            connection_string=self.CONNECTION_STRING,
        )

        db = IRISVector.from_documents(embedding=embeddings,documents=texts, collection_name = self.COLLECTION_NAME, connection_string=self.CONNECTION_STRING,)

向量搜索智能体(Vector Search Agent)能够自动完成文档的摄取(ingest)索引构建(index), 该新功能在InterSystems IRIS 2025.1的数据资源文件夹里) 至 IRIS 向量存储, 只有当数据尚未存在时,才执行该操作。


运行以下查询以从向量存储中获取所需数据:

SELECT
id, embedding, document, metadata
FROM SQLUser.AgenticAIRAG


1.2 - 实现向量搜索功能


以下代码为智能体提供了搜索能力:

 def ragSearch(self,prompt):
        #Check if collections are defined or ingested done.
        # if not then call ingest method
        embeddings = OpenAIEmbeddings()	
        db2 = IRISVector (
            embedding_function=embeddings,    
            collection_name=self.COLLECTION_NAME,
            connection_string=self.CONNECTION_STRING,
        )
        docs_with_score = db2.similarity_search_with_score(prompt)
        relevant_docs = ["".join(str(doc.page_content)) + " " for doc, _ in docs_with_score]
        
        #Generate Template
        template = f"""
        Prompt: {prompt}
        Relevant Docuemnts: {relevant_docs}
        """
        return template


分流代理处理传入的用户查询,并将其委托给矢量搜索代理,后者执行语义搜索操作,以检索最相关的信息。

0
0 251
公告 Claire Zheng · 九月 11, 2024

HI 各位开发者们,

📅2024年9月23日🕑14:00-15:30🕞,InterSystems将举办线上研讨会,点击🔔此处🔔报名参会。

此次研讨会以“面向未来的数据平台——InterSystems IRIS五大亮点提速数据潜力挖掘与AI应用”为主题,帮助您了解InterSystems IRIS数据平台的五大亮点:

  • 使用InterSystems IRIS for Health进行FHIR开发
  • 使用Python进行互操作Production开发
  • InterSystems IRIS列存储
  • InterSystems IRIS外部表(Foreign Table)
  • InterSystems IRIS向量和基于向量检索的患者相似度匹配
2
0 550
文章 Michael Lei · 八月 1, 2024 4m read

随着 IRIS 中向量数据类型和向量搜索功能的引入,应用程序的开发正在开启一个充满各种可能性的全新世界,其中一个应用程序示例是我最近在巴伦西亚卫生局的一次公开竞赛中看到的应用程序,他们要求提供一种工具,能够使用 AI 模型协助进行 ICD-10 编码。

我们如何实现与所要求的应用程序类似的应用程序? 我们来看看需要什么:

  1. ICD-10 代码列表,我们将使用它作为 RAG 应用程序的上下文,在纯文本中搜索诊断结果。
  2. 经过训练的模型,它会将文本向量化,我们将在其中查找 ICD-10 代码中的对应项。
  3. Python 库,用于对 ICD-10 代码和文本进行摄取和向量化。
  4. 一个支持文本的友好前端,我们会在其中查找可能的诊断结果。
  5. 从前端接收的请求的编排。

IRIS 为我们提供哪些功能来满足上述需求?

  1. CSV 导入,可以使用 RecordMapper 功能,也可以直接使用嵌入式 Python。
  2. 嵌入式 Python 使我们能够实现使用所选模型生成向量所需的 Python 代码。
  3. 发布将从前端应用程序调用的 REST API。
  4. 互操作性生产,以允许在 IRIS 中跟踪信息。

我们只需要看看开发的示例:

d[IA]gnosis

在本文中,您可以访问开发的应用程序,在后续文章中,我们将详细了解如何实现每个功能,包括模型的使用、向量的存储和向量搜索的使用。

0
0 237
文章 Michael Lei · 三月 21, 2024 2m read

这是在 IRIS 中完全运行向量搜索演示的尝试。
没有外部工具,您需要的只是终端/控制台和管理门户。
特别感谢Alvin Ryanputra作为他的软件包iris-vector-search的基础
灵感和测试数据的来源。
我的软件包基于 IRIS 2024.1 版本,需要注意您的处理器功能。

我尝试用纯 ObjectScript 编写演示。
仅描述向量的计算是在嵌入式Python中完成的
计算 2247 个记录的 384 维向量需要时间。
在我的 Docker 容器中,它正在运行 01:53:14 来完全生成它们。

然后被警告了!
所以我将这一步调整为可重入,以允许暂停向量计算。
每 50 条记录,您就会收到一次停止的提议。
该演示如下所示:

用户>做^A.DemoV

 测试向量搜索
=============================
1 - 初始化表
2 - 生成数据
3 - VECTOR_余弦
4 - VECTOR_DOT_产品
5 - 制作苏格兰威士忌
6 - 加载 Scotch.csv
7 - 生成向量
8 - 向量搜索
选择功能或 * 退出:8

 默认搜索:
让我们来看看前三名价格低于 100 美元的苏格兰威士忌,具有泥土和奶油的香气,
更改价格限制[100]:50
更改短语[泥土和奶油味]:泥土味 

计算搜索向量
  
总计低于 50 美元:222 

ID 价格 名称
1990 年 40 瓶 Wemyss 复古麦芽威士忌“泥炭烟囱”,8 年陈酿,40%
1785 39 著名的禧年,40%
1868 40 托马汀,15 岁,43%
2038 45 格伦·格兰特,10 岁,43%
1733 29 斯凯岛,8 岁,43% 5 行受影响
1
0 175
文章 Jingwei Wang · 二月 15, 2024 4m read

大型语言模型(例如 OpenAI 的 GPT-4)的发明和普及掀起了一波创新解决方案浪潮,这些解决方案可以利用大量非结构化数据,在此之前,人工处理这些数据是不切实际的,甚至是不可能的。此类应用程序可能包括数据检索(请参阅 Don Woodlock 的 ML301 课程,了解检索增强生成的精彩介绍)、情感分析,甚至完全自主的 AI 代理等!

在本文中,我想演示如何使用 IRIS 的嵌入式 Python 功能直接与 Python OpenAI 库交互,方法是构建一个简单的数据标记应用程序,该应用程序将自动为我们插入IRIS 表中的记录分配关键字。然后,这些关键字可用于搜索和分类数据,以及用于数据分析目的。我将使用客户对产品的评论作为示例用例。

先决条件

  • 运行的IRIS实例
  • OpenAI API 密钥(您可以在此处创建)
  • 配置好的开发环境(本文将使用VS Code

Review类

让我们首先创建一个 ObjectScript 类,该类将定义客户评论的数据模型。为了简单起见,我们将只定义 4 个 %String 字段:客户姓名、产品名称、评论正文以及我们将生成的关键字。该类应该扩展%Persistent,以便我们可以将其对象保存到磁盘。

 ClassExtends%Persistent
0
0 237
文章 Michael Lei · 九月 18, 2023 6m read

如今,关于大语言模型、人工智能等的消息不绝于耳。向量数据库是其中的一部分,并且已经有非IRIS的技术实现了向量数据库。

为什么是向量?

  • 相似性搜索:向量可以进行高效的相似性搜索,例如在数据集中查找最相似的项目或文档。传统的关系数据库是为精确匹配搜索而设计的,不适合图像或文本相似性搜索等任务。
  • 灵活性:向量表示形式用途广泛,可以从各种数据类型派生,例如文本(通过 Word2Vec、BERT 等嵌入)、图像(通过深度学习模型)等。
  • 跨模态搜索:向量可以跨不同数据模态进行搜索。例如,给定图像的向量表示,人们可以在多模式数据库中搜索相似的图像或相关文本。

还有许多其他原因。

因此,对于这次 pyhon 竞赛,我决定尝试实现这种支持。不幸的是我没能及时完成它,下面我将解释原因。

0
0 277
文章 Lilian Huang · 七月 9, 2023 5m read

#Embedded Python #HL7 #InterSystems IRIS for Health

写在回复社区帖子《Python能否动态创建HL7消息》中。

前提条件和设置

使用一个启用了集成的命名空间。
注意:USER命名空间默认不启用互操作性。
如果以下建议创建一个新的互操作性命名空间来探索功能。

# 切换到
ZN "[互操作性名称空间名称]"

# 启动交互式Python shell:
Do $SYSTEM.Python.Shell()

启动脚本

#Load dependencies

import datetime as dt
import uuid

# Cache current time in CCYYMMDDHHMMss format
hl7_datetime_now=dt.datetime.now().strftime('%Y%m%d%H%M%S')

# Create HL7 Message
hl7=iris.cls("EnsLib.HL7.Message")._New()

# Set the doc type
# 2.5.1:ORU_R01 - Unsolicited transmission of an observation message
hl7.PokeDocType("2.5.1:ORU_R01")
0
0 620
文章 Michael Lei · 七月 3, 2023 4m read

图像

你好社区
在本文中,我将介绍我的应用程序irisChatGPT ,它是基于LangChain Framework构建的。
首先,让我们对框架进行一个简单的概述。

全世界都在谈论ChatGPT以及大型语言模型 (LLM) 如何变得如此强大,并且表现超出预期,提供类似人类的对话。这只是将其应用于每个企业和每个领域的开始!

0
0 484
公告 Claire Zheng · 六月 19, 2023

大家好!

InterSystems Grand Prix 2023 结合了 InterSystems IRIS 数据平台的所有主要功能!

因此,我们邀请您使用以下功能并收集额外的技术奖励,以帮助您赢得奖品!

如下:

  • LLM AI 或 LangChain 用法:Chat GPT、Bard 等 - 6
  • InterSystems FHIR SQL Builder- 5
  • InterSystems FHIR-3
  • IntegratedML - 4
  • Native API - 3
  • 嵌入式 Python - 4
  • 互操作性 - 3
  • 生产扩展(PEX)- 2
  • 自适应分析 (AtScale) Cube的使用 - 3
  • Tableau、PowerBI、Logi 的使用 - 3
  • InterSystems IRIS BI - 3
  • 列索引使用 - 1
  • Docker 容器使用 - 2
  • ZPM 包部署 - 2
  • 在线演示 - 2
  • 单元测试 - 2
  • 实施 InterSystems Community Idea中的创意 - 4
  • 在开发者社区发布的第一篇文章 - 2
  • 在开发者社区发布的第二篇文章 - 1
  • 代码质量通过 - 1
  • 第一次贡献 - 3
  • YouTube 上的视频 - 3
0
1 718