InterSystems 开发者社区汇聚了 23,072 位出色的开发者
InterSystems IRIS 程序员可以在这里学习、分享、了解最新动态、成长,以及收获快乐!
文章
· 十一月 18, 2024 阅读大约需 2 分钟
第二十五章 TCP 客户端 服务器通信 - TCP 设备的 READ 命令

第二十五章 TCP 客户端 服务器通信 - TCP 设备的 READ 命令

TCP 设备的 READ 命令

从服务器或客户端发出 READ 命令以读取客户端或服务器设置的任何字符。

语法如下:

READ var:timeout 
READ *var:timeout
READ var#length:timeout

超时参数虽然是可选的,但强烈建议使用,因为如果指定了超时,则 READ 的成功或失败由 $TEST 特殊变量的值指示。如果在超时到期之前读取尝试成功,则 $TEST 设置为 1;如果超时到期,$TEST 设置为 0

超时参数支持秒和秒的分数到 1/100 秒。例如,1010.5.5.05

0 0
0 36
文章
· 十一月 2, 2024 阅读大约需 2 分钟
第九章 本地进程间通信(管道)

第九章 本地进程间通信(管道)

本页介绍如何通过管道与 IRIS® 数据平台外部的进程建立通信。

介绍

可以通过管道在 IRIS 进程和外部 UNIX®Windows 进程之间进行通信,就像在 UNIX®Windows 操作系统级别一样。可以将输出发送到管道或从管道接收输入。管道为单向;不能同时读取和写入同一个程序。

当打开另一个程序的管道进行输出时,可以像写入顺序文件一样对其进行写入。然后程序使用编写的内容作为其输入流。当希望 IRIS 进程与外部进程共享资源时,此功能特别有用。

打开 IRIS 实用程序的管道

可以打开通往 IRIS 实用程序以及 UNIX®Windows 进程的管道。在将管道用于实用程序 I/O 之前,系统管理员必须在 IRIS 系统上定义管道设备。

0 0
0 36
文章
· 十月 17, 2024 阅读大约需 2 分钟
第五十章 安全元素的详细信息

第五十章 安全元素的详细信息

本主题讨论 SOAP 消息中较常见的安全元素,特别是 IRIS Web 服务和客户端可以发送的变体。此信息旨在帮助那些不经常使用 SOAP 的人重温记忆。此处的详细信息也可能有助于故障排除。

<BinarySecurityToken>

<BinarySecurityToken> 的目的是携带消息中其他元素使用的安全凭证,供消息接收者使用。安全凭证以序列化、编码的形式携带。以下显示了部分示例:

0 0
0 36
文章
· 八月 18, 2024 阅读大约需 3 分钟
第三章 使用 SOAP 保护 Web 服务 - IRIS 中的 WS-Policy 支持

第三章 使用 SOAP 保护 Web 服务 - IRIS 中的 WS-Policy 支持

IRIS 中的 WS-Policy 支持

支持 WS-Policy 1.2 (https://www.w3.org/Submission/WS-Policy/) 和 WS-Policy 1.5 (https://www.w3.org/TR/ws-policy) 框架以及相关的特定策略类型:
- WS-SecurityPolicy 1.1 (http://www.oasis-open.org/committees/download.php/16569/)

0 0
0 36

社区朋友们好,

传统的基于关键词的搜索方式在处理具有细微差别的领域特定查询时往往力不从心。而向量搜索则通过语义理解能力,使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,)
Python
Python

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



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

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



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
Python
Python


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

0 0
0 35
文章
· 二月 19 阅读大约需 2 分钟
第二十九章 U - V 开头的术语

第二十九章 U - V 开头的术语

以 U 开头的术语

用户识别码 (UIC)

系统

用户识别码(User Identification Code,UIC)决定了谁可以访问该数据库中的全局。在 UNIX® 系统上,UICgroupid、逗号(,)和 userid 组成;系统管理员在 UNIX® 级别为用户分配 UIC,并使用 IRIS MSU 工具为每个数据库分配 UIC

未认证访问 (unauthenticated access)

系统

IRIS 的访问不基于任何用户身份验证。

Unicode

系统

0 0
0 35
文章
· 一月 16 阅读大约需 3 分钟
第七十五章 使用 ^%IS - OPEN 参数

第七十五章 使用 ^%IS - OPEN 参数

OPEN 参数

默认情况下,OPEN 命令使用 ^%IS 全局中定义的设备的规范。在使用 ^%IS 时,可以通过指定其他设置来覆盖这些设置。

发出 USE 命令

运行 ^%IS 后,应用程序必须向 ^%IS 打开的设备发出 USE 命令。你可以使用变量 IO,只要你明白每次调用 ^%IS 时它的值都会发生变化。然后,后续的IRIS I/O 命令,例如 READWRITE,将引用该设备。

发出 CLOSE 命令

用户或应用程序开发人员必须关闭使用 ^%IS 实用程序打开的设备。

0 0
0 35
文章
· 一月 12 阅读大约需 2 分钟
第七十一章 管理设备和助记词空间 - 设备 ID

第七十一章 管理设备和助记词空间 - 设备 ID

可以通过数字或操作系统名称来识别设备。可以在 OPEN 命令中使用此标识符。

设备别名

可以为定义的每个 IRIS 设备定义一个或多个别名值。当用户在 OPEN 命令中指定别名时,IRIS 会将其转换为设备 ID

IRIS 提供的默认设备 ID 适用于大多数用户。但是,某些用户可能希望覆盖这些默认值。可以通过在 Management Portal 中提供别名作为设备配置设置的一部分来实现此目的。

默认设备 ID 和助记词

当安装 IRIS 时,这些是每种设备类型的默认设备编号和助记符。

默认设备编号和助记词

0 0
0 35
您好,欢迎阅读 十二月 2024 开发人员社区通讯。
统计信息
✓ 十二月发布了 32 篇新帖子:
29篇新文章
1 new announcement
2个新问题
✓ 十二月有 29 位新成员加入
✓ 所有时间发布了 2,316 篇帖子
✓ 所有时间有 2,100 位成员加入
0 0
0 35
文章
· 十二月 10, 2024 阅读大约需 4 分钟
第四十六章 终端输入 输出 - CLOSE 命令

第四十六章 终端输入 输出 - CLOSE 命令

CLOSE 命令

释放设备的所有权,这是通过OPEN命令获得的。

语法

CLOSE device

终端预定义助记符空间

IRIS 提供了两个预定义的助记符空间供终端使用:

  • ^%X364 用于 ANSI X3.64 终端
  • ^%XDTM 用于 DTM PC 控制台

如果激活这些助记符空间之一,则可以在WRITE /mnemonic命令中使用与它们关联的控制助记符。还可以创建自己的助记符空间。有关助记符空间的更多信息,请参阅使用助记符空间控制设备。

以下部分描述了这些助记符空间的控制助记符。

0 0
0 35
文章
· 十二月 1, 2024 阅读大约需 3 分钟
第三十八章 终端输入 输出 - USER命令

第三十八章 终端输入 输出 - USER命令

USER命令

使指定终端成为当前设备。在编程器模式下,同一行代码上的所有后续 I/O 命令都引用该设备。在应用程序模式下,您在USE命令中命名的设备将一直保留为当前设备,直到下一个USE命令为止。

USE 语法

USE命令采用以下参数:

USE terminal:(margin:protocols:terminator):"mnespace"

终端参数可以是一个表达式,其值为终端设备的名称。零 (0) 是该进程的主要设备。 $IO是当前设备。终端的最大长度为 256 个字符。

参数由冒号 (:) 分隔。如果省略参数,则必须指定冒号。命令或其参数列表不得以冒号结束。

0 0
0 35
文章
· 十一月 17, 2024 阅读大约需 3 分钟
第二十四章 TCP 客户端 服务器通信 - 当前 TCP 设备

第二十四章 TCP 客户端 服务器通信 - 当前 TCP 设备

当前 TCP 设备

可以使用 %SYSTEM.TCPDevice方法返回当前 TCP 设备的 IP 地址和端口号。可以使用 Help() 方法列出这些方法,如下所示:

  DO $SYSTEM.TCPDevice.Help()

可以通过在 Help() 中指定方法名称来显示有关特定方法的信息,如以下示例所示:

0 0
0 35
文章
· 十一月 8, 2024 阅读大约需 4 分钟
第十五章 IRIS 进程之间的通信

第十五章 IRIS 进程之间的通信

本页介绍如何在两个或多个 IRIS 数据平台进程之间建立通信。

介绍

作业间通信 (IJC) 设备是一组特殊设备编号,可让在两个或多个 IRIS 进程之间传输信息。这些流程可以是作业流程或交互式流程。

IJC 设备成对工作。最多可以有 256IJC 设备对。使用称为接收器的偶数设备来读取数据。使用称为发送器的奇数设备来写入数据。尝试从发送器读取或写入接收器会导致 <NODEV> 错误。

可以向 IJC 设备发出 I/O 命令,就像向任何其他设备一样。向设备发出OPEN和USE命令后,进程可以发出:

  • 向接收器设备读取命令
  • 将命令写入发送器设备

一次只能有一个进程可以打开设备。

对基于 IRIS 设备表中映射的相对顺序,可以使用管理门户的配置选项查看和编辑该表。

0 0
0 35
文章
· 十一月 1, 2024 阅读大约需 2 分钟
第八章 在 I O 命令中指定设备 - 通过 IRIS ID 指定设备

第八章 在 I/O 命令中指定设备 - 通过 IRIS ID 指定设备

通过 IRIS ID 指定设备

为了与其他 产品兼容并方便起见,可以通过设备编号(存储在设备表中)来引用设备。系统管理员可以使用管理门户将这些号码链接到设备。选择“系统管理” 、 “配置” 、 “设备设置” 、 “设备”以创建新设备或编辑现有设备。

系统管理员还可以将一个数字转换为另一个数字。因此,可以发出OPEN 47IRIS 会将其转换为OPEN 49

下表显示了设备编号。

0 0
0 35
文章
· 十月 28, 2024 阅读大约需 2 分钟
第四章 I O 输入输出简介 - Read 命令

第四章 I O 输入输出简介 - Read 命令

Read 命令

该命令从当前设备读取数据。对于某些设备,以星号开头的参数返回 ASCII 数字信息;对于其他人来说,它们表示控制功能。

语法

READ variable:timeout

WRITE 命令

该命令将数据写入当前设备。对于某些设备,以星号开头的参数允许使用其 ASCII 数值写入 ASCII 字符;对于其他人来说,它们表示控制功能。对于某些设备,以 # 字符开头的参数指示写入该字符的次数。

0 0
0 35

第四十七章 创建和添加 SAML 令牌 -

<SubjectConfirmation><EncryptedKey>

要添加带有 <SubjectConfirmationData>(其中包含 <EncryptedKey> 元素)的 <SubjectConfirmation>,请执行以下操作:

  1. 按照以编程方式检索凭证集中所述,创建 %SYS.X509Credentials 的实例。

或者使用与签署断言时使用的相同凭证集。

0 0
0 35
您好,欢迎阅读 八月 2024 开发人员社区通讯。
统计信息
✓ 八月发布了 39 篇新帖子:
34篇新文章
4个新公告
1个新问题
✓ 八月有 51 位新成员加入
✓ 所有时间发布了 2,163 篇帖子
✓ 所有时间有 1,975 位成员加入
0 0
0 35
文章
· 二月 16 阅读大约需 2 分钟
第二十六章 S 开头的术语

第二十六章 S 开头的术语

共享锁 (shared lock)

对象(Objects)

共享锁在对象从数据库加载期间保持共享锁,并在保存期间保持独占锁(如果跨多个节点或正在更新)。对于第一次在单个节点上保存的对象,不会获取锁。

共享保留锁 (shared retained lock)

对象(Objects)

共享保留锁从对象从数据库加载到关闭期间保持共享锁,并在保存期间保持独占锁(如果跨多个节点或正在更新)。对于第一次在单个节点上保存的对象,不会获取锁。

SOAP

通用

用于实现 Web 服务的协议规范。它使用 XML 作为消息格式,通常依赖其他应用层协议,例如远程过程调用(RPC)和 HTTP,用于消息协商和传输。`` 曾是“简单对象访问协议”(Simple Object Access Protocol)的缩写,但现在不再是缩写——它只是该协议的名称。

0 0
0 34
文章
· 二月 12 阅读大约需 2 分钟
第二十二章 P - R 开头的术语

第二十二章 P - R 开头的术语

程序员模式 (programmer mode)

系统

所有程序开发活动进行的模式。在程序员模式下,你从 IRIS 提示符启动程序,并且每个运行的程序结束后提示符会重新出现。程序员模式涵盖了 IRIS 环境及其所有可调用的程序,包括 SQL 开发环境。在程序员模式下,你可以创建用户随后在应用程序模式下运行的应用程序。

项目 (project)

系统

用户定义的相关源文档(如例程或类定义)列表。Visual Studio Code 使用项目来帮助组织应用程序开发。

属性 (property)

对象(Objects)

表示与类相关联的特定特性的一个数据元素。该类的每个对象包含属性的字面值或指向表示数据的另一个对象的引用。一个类的所有属性共同表示其状态。

属性排序 (property collation)

对象(Objects)

0 0
0 34
文章
· 二月 7 阅读大约需 2 分钟
第十七章 M - N 开头的术语

第十七章 M - N 开头的术语

方法 (method)

对象(Objects)

可以在对象上调用的操作。

挂载,已挂载 (mount, mounted)

系统

挂载数据库是指将其显式连接到一个IRIS 实例,从而使其内容立即可用。处于此状态的数据库称为已挂载。

多维属性 (multidimensional property)

对象(Objects)

多维属性像数组节点一样工作。多维属性没有任何关联的属性方法,不能使用点语法访问,也不会被投射到 SQLJava

通用

连接两台以上计算机的网络硬件。

多重继承 (multiple inheritance)

对象(Objects)

多重继承允许一个类拥有多个超类。一个类从其每个超类继承特性和类成员。

0 0
0 34
文章
· 二月 6 阅读大约需 3 分钟
第十六章 L - M 开头的术语

第十六章 L - M 开头的术语

锁表 (lock table)

系统

IRIS 内部的表,存储所有由进程发出的 LOCK 命令。你可以使用系统查看器查看此表。

日志文件 (log files)

系统

系统管理员目录中的文件,包含关于系统操作、错误和指标的消息。这些包括消息日志(messages.log)、系统监视器日志(SystemMonitor.log)、警报日志(alerts.log)、初始化日志(iboot.log)和日志历史记录日志(journal.log)。有关这些日志文件的信息,请参见“监控日志文件”。

逻辑格式 (logical format)

对象(Objects)

对象属性的逻辑格式是在内存中使用的格式。所有的比较和计算都是基于这种格式进行的。

0 0
0 34
文章
· 一月 18 阅读大约需 2 分钟
第七十七章 使用 ^%IS - 示例

第七十六章 使用 ^%IS - 示例

示例

调用 CURRENT^%IS 后,将 $X$Y 设置为 DXDY 以定位光标。

  DO CURRENT^%IS
  WRITE *27,*61,*DY+32,*DX+32 
  SET $X=DX,$Y=DY

IN^%IS 入场点

IN^%IS 中的一个内部入口点,可以由仅计划从设备进行 input 的例程调用。此入口点可用于确保您不选择仅输出设备,例如打印机。

0 0
0 34
文章
· 一月 4 阅读大约需 3 分钟
第六十四章 假脱机设备 - 使用 %SPOOL 打印

第六十四章 假脱机设备 - 使用 %SPOOL 打印

使用 %SPOOL 打印

%SPOOL 实用程序菜单的选项 1 Print(打印)允许您在任何设备上打印 ^SPOOL 全局中的一个或多个文档,继续打印中断的文档,以及将单张纸张手动送入信纸质量打印机。通过将输出发送到后台处理程序,可以在输出设备打印文档时释放终端用于其他用途。

可以在完全创建后台打印文档之前或之后开始打印。如果打印机赶上新输出,则打印过程将暂停 5 秒钟,然后打印在此期间累积的所有输出。打印过程知道您何时关闭了后台打印文档,并在文档完成时完成。

%SPOOL 打印文档时,它会跟踪已打印的页面。它还会创建页面索引,以便可以按页码对文档进行排序,并从您选择的任何页面的顶部开始打印。

如果停止打印(例如,在终端输出期间按 Ctrl-c,或者打印机损坏),则可以稍后在最后一个部分打印的页面的顶部或文档中任何其他页面的顶部继续打印。请注意,IRIS 不会将文档开头的换页数计为页数中的页数。

0 0
0 34
文章
· 十一月 12, 2024 阅读大约需 3 分钟
第十九章 TCP 客户端 服务器通信 - 数据包模式

第十九章 TCP 客户端 服务器通信 - 数据包模式

数据包模式

如果未指定模式,则默认为数据包模式。如果流模式被禁用,则该模式默认为分组模式。

在分组模式中,只要有一些数据要返回,读取命令就会完成。数据包模式允许在输出缓冲区中构建整个TCP数据段,然后通过发出WRITE*-3WRITE!命令。

如果在没有要发送的字符的情况下发出WRITE*-1来启动一个TCP发送操作,则会收到一个<WRITE>错误。如果发出WRITE OF空字符串,则会收到<COMMAND>错误。

在分组模式下可以发送的字符串的最大长度为1024个字符。如果在未刷新缓冲区的情况下超过此限制,则会收到<WRITE>错误。

0 0
0 34
公告
· 十一月 1, 2024
开发者社区回顾, 十月 2024
您好,欢迎阅读 十月 2024 开发人员社区通讯。
统计信息
✓ 十月发布了 43 篇新帖子:
37篇新文章
5个新公告
1个新问题
✓ 十月有 408 位新成员加入
✓ 所有时间发布了 2,251 篇帖子
✓ 所有时间有 2,431 位成员加入
1 0
0 34