查找

文章
· 六月 12, 2024 阅读大约需 2 分钟

La fin du Global Summit 2024

Bonjour à tous !

Aujourd'hui a été une journée riche en émotions au Global Summit, et je suis impatiente de partager avec vous les moments forts de cette dernière journée incroyable !

Dès le matin, notre stand de la Communauté des Développeurs a été le centre d'attraction de nombreux visiteurs enthousiastes.

@Guillaume Rongier, Luc Chatty, @Raj Singh, @Dmitry Maslennikov, @Olga Zavrazhnova, @Lucian ROTAR, @Thomas Dyar, @Irène Mykhailova

Luc Chatty, @Guillaume Rongier, @Dmitry Maslennikov, Lucian Rotar, @Thomas Dyar

Voici notre équipe de Relations avec les développeurs présente au Global Summit qui fait de l'écosystème des développeurs un endroit formidable.

@Olga Zavrazhnova (Global Masters),  @Vita Tsareva (Caelestinus), @Dean Andrews (chef du DevRel), @Anastasia Dyubaylo (Developer Community), @Irène Mykhailova (Developer Community)

Et bien sûr, notre équipe française qui anime la communauté des développeurs en français (avec un ami).

@Irène Mykhailova, @Guillaume Rongier, Luc Chatty, @Adeline Icard 

À la fin du Global Summit, il était temps de dire au revoir. Les sessions étant terminées, tout le monde s'est réuni pour échanger une dernière fois et se dire au revoir. Les adieux étaient empreints de promesses de se retrouver lors du prochain Summit. Les sourires, les accolades et les échanges chaleureux ont témoigné de la réussite de cet événement et de la force de notre communauté.

Merci à tous ceux qui ont participé et contribué à faire de ce Global Summit une expérience exceptionnelle. Restez connectés, et rendez-vous au prochain Summit pour encore plus de découvertes et d'innovations !

À bientôt et bon voyage à tous !

讨论 (0)1
登录或注册以继续
Job
· 六月 12, 2024

MUMPS / Cache developer (Germany)

Hello,

I have over 30 years of experience developing solutions with MUMPS and IRIS. Additionally, I also develop in C++, Python, Angular... 
Experiences with Container (Docker) , GIT and REST-API's

 I'm seated in Germany and looking for a job opportunity as a freelancer who mostly works from home office.

regards Matthias

3 Comments
讨论 (3)1
登录或注册以继续
讨论 (0)1
登录或注册以继续
文章
· 六月 12, 2024 阅读大约需 7 分钟

CHIMA访谈:青岛大学附属医院医院信息系统升级记

“一根筷子易折断,十根筷子抱成团”,这句话在青岛大学附属医院(以下简称“青大附院”)的医院信息系统升级换代中得到了淋漓尽致的体现。

创建于1898年的青大附院是一家山东省省属的综合性三甲医院,拥有市南院区、崂山院区、西海岸院区、市北院区和平度院区共五个院区。在医院发展的过程中,青大附院按照国家、山东省、青岛市的要求,结合医院特色,进行信息化建设的统一规划。“五个院区的规划、业务流程和管理理念是一致的,秉承着多院区集中管理的理念,采取的是集中开发、分院区部署的方式。”青大附院信息管理部主任辛海燕介绍。

多年来在医院信息化上深耕细作,令青大附院的五个院区实现了医务、护理、医疗设备、人事、后勤等的一体化管理,系统实现了互联互通,达到了信息共享的目标,让医院业务不中断。五个院区的信息化底层是打通的,围绕医疗和管理两条线进行,遵循的原则是在符合国家政策的前提下,以用户需求为出发点进行建设,可以向医院管理层和患者提供一体化服务。

软技能铸造团队精神:加强信息团队内部沟通与协作

目前青大附院信息管理部共有三个业务科室:计算机中心,负责日常硬件和软件的管理运维;项目开发中心,主要负责所有信息系统的软件实施;网络管理中心,主要负责信息网络安全、机房运维和所有终端的准入。

辛海燕介绍,青大附院的信息化团队重视技术和沟通这两大基础能力:信息管理部每位成员都必须掌握自己负责的技术,要用一个开放、学习、严谨的心态对待这份工作;要会沟通,在与临床科室、合作伙伴沟通时,要擅长“翻译”,这就需要到临床和管理中学习流程。

除此之外,青大附院的信息化团队非常重视内部的信息同步建设共享,方便整个团队在技术和工作流程同步,加强团队成员的团结和协作。

这些软技能,铸造了迎考信息系统大升级时必不可少的团队精神。

迎考:医院信息系统大升级

这次升级是十年一遇的大升级。

青大附院原有系统是2012年上线的,随着时代发展和需求的增长,对新功能应用的支持慢慢变得力不从心,限制了信息化支撑业务发展的能力。“信息化平台应该是为医院高质量发展提供帮助的,原有的医院信息系统逐渐无法满足医院高质量发展的需求。在通过多轮评估后,经管理层批准,医院于2022年8月启动医院信息系统升级,并于2023年3月14日顺利完成升级。”辛海燕介绍道。

这是一场硬仗。为使系统升级不妨碍医疗业务开展,青大附院对升级顺序进行了排序。“3月10日,我们门、急诊实现了‘一刀切’式的升级,当天晚上,我们就启用了急诊系统。第二天医生上班后,直接启用新的门诊系统。在新的门、急诊系统稳定运行后,4天后(3月14日),我们成功切换了住院系统。”辛海燕介绍道。至此,青大附院信息系统升级第一阶段完成。

“在升级过程中,我们面临的最大压力是院区多,此次是对四个院区(市南院区、崂山院区、西海岸院区、市北院区)和两个中心(生殖中心和美容中心)同步进行升级。在整个过程中,最担心是导致业务意外中断——比如患者挂不上号、看不上诊、住不上院。因此,在整个系统升级过程中,我们首先要确保的是系统可以有效支撑业务的连续性运转。”辛海燕强调,医院信息系统升级不能中断医疗业务,信息部与临床科室、合作伙伴团结协作,“在各方的支持下,我们最终顺利、稳定地完成了这次升级。”辛海燕回忆道。

在信息系统升级过程中,有一个小插曲。按照最初的规划,青大附院系统升级应该在2022年年底完成,方便新旧年度财务数据交接。由于疫情的原因,系统升级延续到了2023年春节后。在这个过程中,医院计算机中心工作人员到门诊、住院和管理部门统计硬件数量,经过半年多时间,更新了科室工作站的环境,确保每台工作站兼容新旧系统。摸清了每一个科室的每一台电脑、每一台打印机,统计发现医院内网终端数量共有6685台,保障升级后正常访问。

“这是一个细活,不能有疏漏。” 辛海燕指出,在系统升级期间,项目开发团队每天与合作伙伴一起,评估上线各类需求,网络安全管理团队为升级提供硬件环境和网络安全加固,计算机中心对终端工作站进行全面梳理,确保新旧系统的运行环境能兼容。“这段时间我们承受的是成倍的工作压力。我要特别感谢团队,因为这是一项系统性工程,事情本身是有些复杂,整个过程必须齐心协力,哪个环节掉链子都不行。”辛海燕说。

辛苦拼搏获得回报,团结协作推动事情顺利进展。经过近半年的努力,青大附院的信息系统升级工作圆满完成!

借助坚实的数字化底座,助力医院高质量发展

此次进行的信息系统升级,对底层数据库和业务系统平台进行了升级,在数据临床质量和流程方面更加精细,比如可在系统里加上闭环管理等很精细化的流程。信息系统升级换代后,医院很多业务流程都得到了更好的优化,比如门诊医生工作站、护士工作站、手术麻醉信息系统等,都变得更为友好。

“系统升级后数据库系统运行效率大大提高,在使用操作上更贴近实际业务流程,工作站的界面做了优化,更符合操作习惯,医护人员反馈说新系统用起来更加顺手,常用功能也比以前增加很多,还可以随时查看诊疗活动状态和历史诊疗数据。”辛海燕举例,任何一个院区的医生在工作界面写病历时,都可以随时查看患者的检查检验报告的进度,这不需要切换页面,实现了医疗流程和业务的无缝对接,使业务和系统的结合更紧密。

随着行业对“数据二十条”探讨的深入,越来越多的共识是:医疗数据正在成为医院的核心资产。“如何把数据保护好、利用好,让数据成为资产,助力医院高质量发展,这是我们系统升级后努力的方向。”辛海燕强调。

在这次升级中,医院数据库升级到了InterSystems IRIS医疗版数据平台。“IRIS医疗版数据平台包括数据库、中间件等等,是一个很全面、集成的平台,效率很高,非常适合医疗领域。它的建模方式和医院所需要数据库的架构是一样的。非常稳定,扩展性也很强。”辛海燕指出,“由于对FHIR等多个医疗数据标准的深度支持,IRIS医疗版数据平台在数据资产利用上有很大优势,我们看重的是依托这个平台可以‘长’很多应用,比如医疗质控、人工智能、临床决策支持等等。这些都是助力医院实现高质量发展必不可少的能力。在用数据说话这件事上,这个平台的优势非常大,能够高效、稳定地支撑业务运转。”

辛海燕以一个非常普遍的业务场景为例进行了说明。医生在多个院区出诊,数据调用是最常见的业务场景。为了更好地利用好临床数据,青大附院建设了临床数据中心,将五个院区所有患者病历数据汇集到该中心,底层用一个“容器”将所有数据都加载到一起。医生在工作站可查看到患者在五个院区和两个中心的所有门诊和住院就诊情况,包括挂号时间、检查检验报告、手术时间、治疗计划等,实现了扁平化阅读,对其后续治疗做出合理规划。不论患者在哪个院区就诊,其他院区的医生都可以即时调阅其检查、检验报告,不需要任何等待,立等可取。

据了解,青大附院此次信息系统升级只是完成了信息系统建设规划的第一步。“医院下一步信息化建设重点是以HRP为主的管理平台建设,打破管理部门信息系统‘烟囱’现状,建立以HRP为主的一体化管理平台,借助临床生产出的数据给管理做抓手,实现医院向管理要效益的目标,助力医院实现高质量发展。”辛海燕十分有信心。

附:青大附院信息系统选型标准

在进行系统选型时,青大附院认为医院和合作伙伴之间是合作共赢的关系,会考量合作伙伴的技术实力和先进性,以及它在大型三甲医院的案例是否足够有说服力。同时,医院非常看重合作伙伴的技术团队稳定性,能否有长效机制留住技术人才是医院在系统选型时着重考量的一个因素。“首先要稳定,稳定之后,再去谋发展。”辛海燕表示。

(本文原载于CHIMA微信公众号)

讨论 (0)1
登录或注册以继续
文章
· 六月 11, 2024 阅读大约需 8 分钟

使用 IRIS 以及 langchain 构建 问答聊天机器人

这篇文章介绍了使用由支持 langchain 框架的IRIS来实现问答聊天机器人,其重点介绍了检索增强生成(RAG)。

文章探讨了IRIS中的向量搜索如何在langchain-iris中完成数据的存储、检索和语义搜索,从而实现对用户查询的精确、快速的响应。通过无缝集成以及索引和检索/生成等流程,由IRIS驱动的RAG应用程序使InterSystems开发者能够利用GenAI系统的能力。

为了帮助读者巩固这些概念,文章提供了Jupyter notebook一个完整的问答聊天机器人应用程序,以供参考。

什么是RAG以及它在问答聊天机器人中的角色

RAG,即检索增强生成,是一种通过整合超出初始训练集的补充数据来丰富语言模型(LLM)知识库的技术。尽管LLM在跨不同主题进行推理方面具有能力,但它们仅限于在特定截止日期之前训练的公共数据。为了使AI应用程序能够有效处理私有或更近期的数据,RAG通过按需补充特定信息来增强模型的知识。这是一种替代微调LLM的方法,微调可能会很昂贵。

在问答聊天机器人领域,RAG在处理非结构化数据查询中发挥着关键作用,包括两个主要组成部分:索引和检索/生成。

索引从数据源摄取数据开始,然后将其分割成更小、更易于管理的块以进行高效处理。这些分割的块随后被存储和索引,通常使用嵌入模型和向量数据库,确保在运行时能够快速准确地检索。

在检索和生成过程中,系统在接收到用户查询后,使用与索引阶段相同的嵌入模型生成嵌入向量,然后使用检索器组件从索引中检索相关数据块。这些检索到的段落随后传递给LLM以生成答案。

因此,RAG赋予了问答聊天机器人访问和利用结构化和非结构化数据源的能力,从而通过使用嵌入模型和向量数据库作为LLM微调的替代方案,增强了它们提供精确和最新用户查询响应的能力。

IRIS 向量搜索

InterSystems IRIS的向量搜索是一个新功能,它在数据库内启用了语义搜索和生成式AI能力。它允许用户根据数据的含义而不是原始内容来查询数据,利用了检索增强生成(RAG)架构。这项技术将非结构化数据(如文本)转换为结构化的向量,便于高效处理和响应生成。

该平台支持在关系模式中以压缩和高性能的向量类型(VECTOR)存储向量,允许与现有数据结构无缝集成。向量通过Embeddings表示语言的语义含义,相似的含义在高维几何空间中通过接近度反映出来。

通过使用点积(dot product)操作比较输入向量和存储的向量,用户可以确定两者的语义相似性,这非常适合信息检索等任务。IRIS还通过专用的向量数据类型提供高效的向量存储和操作,增强了对大型数据集操作的性能。

要利用这一能力,文本必须通过一系列步骤转换为嵌入,涉及文本预处理和模型实例化。InterSystems IRIS支持Python代码的无缝集成用于嵌入生成,以及ObjectScript用于数据库交互,使基于向量的应用实现顺畅。

你可以在这里查看更多有关向量搜索的文档和实例。

langchain-iris

简短的说,langchain-iris 是在 langchain 框架中使用 InterSystems IRIS 向量搜索的一种方式。

InterSystems IRIS 向量搜索与 langchain 的向量存储需求非常契合。IRIS 存储和检索embedding的数据,对于相似性搜索至关重要。凭借IRIS的 VECTOR 类型,IRIS 支持存储embeddings,使其可对非结构化数据进行语义搜索,并促进文档无缝处理到向量存储中。

通过利用点积比较等操作,IRIS 促进了语义相似性的比较算法,这对于 langchain 的相似性搜索需求也非常理想。

因此,langchain-iris 允许使用由 InterSystems IRIS 数据平台支持的 langchain 框架开发 RAG 应用程序。

有关 langchain-iris 的更多信息,请查看这里

将 IRIS 作为 langchain 的向量存储目标

第一步,需要将langchain-iris导入

pip install langchain-iris

之后,可以使用 IRISVector 中的方法 from_documents() :

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

其中:

  • embedding:设置langchain.embeddings的embeddings模型实例,比如OpenAI或hugging faces.
  • documents:是一系列字符串的数组,这些字符串将被应用于embedding模型,并且生成的向量将存储在IRIS中。通常,由于embedding模型的大小限制以及为了更好的管理,文档应该被分割;langchain框架提供了几种分割器。
  • collection_name:用于文档以及他的embedding 向量存储的表的名称
  • connection_string:用于连接IRIS的参数,通常使用下面的格式 iris://<username>:<password>@<hostname>:<iris_port>/<namespace>

这里查看完整的使用 langchian-iris 的 hello world 代码。

进一步查看整个过程

首先,我们查看由langchain提供的原始版本的文档机器人示例。

这个原始示例中,使用了Chroma作为向量数据库:

from langchain_chroma import Chroma
…
vectorstore = Chroma.from_documents(documents=splits, embedding=OpenAIEmbeddings())

所以,我们这里修改使用IRIS 作为向量数据库:

vectorstore = IRISVector.from_documents(
    embedding=OpenAIEmbeddings(),
    documents=splits,
    collection_name="chatbot_docs",
    connection_string=iris://_SYSTEM:SYS@localhost:1972/USER',
)

你可以在这个jupter notebook里查看完整示例代码。

当运行完示例,我们可以在IRIS中查看由 langchain-iris 创建的表,表名由SQLUser包名以及collection_name中设置:

Table created by langchain-iris to stored RAG documents and its embeddings

可以看到其中有四个字段组成:

  • id:文档id
  • dcoument:使用的文档或者将文档分割为文字块后传入的文字块
  • metadata:JSON对象包含了文档的相关信息
  • embedding::以embedding vector的方式保存的文档信息,这是IRIS的向量搜索功能中的VECTOR类型数据。

上面实现的是创建索引的过程。也就是langchain对每一个文档进行分割后,应用embedding 模型,并将其向量存储在IRIS中。

下一步,为了实现RAG应用,我们需要根据给定的查询字符串,在 IRIS 中查询最相关的文档,这是通过实现langchain框架中的检索器(retrievers)来实现的。

你可以使用下面的代码创建一个真对IRIS存储文档的检索器 (retriever):

retriever = vectorstore.as_retriever()

用这个检索器,您可以针对自然语言查询最相似的文档。langchain框架将使用索引步骤中使用的相同embedding模型从查询中提取向量。这样,就可以检索到与查询具有相似语义内容的文档片段。

为了举例说明,让我们使用langchain的例子,它索引了一个包含有关LLM(大型语言模型)代理信息的网页。这个页面解释了几个概念,比如任务分解。让我们看看,如果给定一个查询,比如“What are the approaches to Task Decomposition(任务分解的方法有哪些)?”,检索器会返回什么:

Retrieved result for query about task decomposition

现在让我们执行一个语义上相同但句法上不同的查询,即使用具有相似含义的不同词语提问,来看看向量搜索引擎返回什么结果:

Retrieved result for similar query about task decomposition

这里,我们可以看到即使传递不同的查询字符串,结果也几乎是相同的。这意味着嵌入向量在某种程度上抽象了文档和查询字符串中的语义。

为了进一步证明这种语义查询能力,现在让我们继续询问有关任务分解的问题,但这次询问它的潜在缺点:

Retrieved result for query about task decomposition downsides

可以看到,这次最相关的结果与之前的查询不同。此外,最初的结果中并没有直接出现“downside”这个词,但包含了一些相关词汇,如“challenges”(挑战)、“limitations”(限制)和“restricted”(受限)。

这加强了嵌入向量在向量数据库中进行语义搜索的能力。

检索步骤之后,最相关的文档被添加为上下文信息,与用户查询一起发送到LLM(大型语言模型)进行处理:

from langchain import hub

prompt = hub.pull("rlm/rag-prompt")

user_query = "What are the approaches to Task Decomposition?"
retrieved_docs = [doc.page_content for doc in retriever.invoke(user_query)]

example_messages = prompt.invoke(
    {"context": "filler context", "question": user_query}
).to_messages()
print(example_messages[0].content)

这段代码将会生成提示词如下,可以看到,查询的返回结果作为上下文一起递交给LLM进行处理:

"""
You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question. If you don't know the answer, just say that you don't know. Use three sentences maximum and keep the answer concise.
Question: What are the approaches to Task Decomposition?
Context: Tree of Thoughts (Yao et al. 2023) extends CoT by exploring multiple ... (truncated in the sake of brevity)
Answer:
"""

于是,RAG应用可以在LLM提示词长度限制的情况下增强查询的准确度。

最后几句

总结来说,将IRIS向量搜索与langchain框架的集成为InterSystems开发者社区中的问答聊天机器人和其他依赖于语义搜索和生成式AI的应用程序的开发开辟了新的视野。

通过langchain-iris将IRIS作为向量存储的无缝集成简化了实现过程,为开发者提供了一个强大而高效的解决方案,用于管理和查询大量结构化和非结构化信息的数据集。

通过索引、检索和生成过程,由IRIS向量搜索驱动的RAG应用程序可以有效地利用公共和私有数据源,增强基于LLM的AI系统的能力,为用户提供更全面和最新的响应。

最后,如果您想更深入地了解并查看一个完整的应用程序实现这些概念,以及与其他功能如互操作性和业务主机一起,与OpenAI和Telegram等外部API通信,请查看我们的应用程序iris-medicopilot

这种集成展示了如何利用先进的技术来构建智能系统,这些系统不仅能够理解和回应用户的查询,还能够与外部服务和API进行交互,提供更加丰富和动态的用户体验。随着技术的不断发展,我们可以期待看到更多创新的应用程序,它们将利用这些工具和框架来解决现实世界的问题。

讨论 (0)1
登录或注册以继续