使用 Oracle IntegrationOCI Generative AI 启用低代码模块化 LLM 应用引擎

Oracle Integration 是一项完全托管的服务,它支持低代码或无代码方法,可实现企业连接、扩展和自动化功能,从而快速实现应用、业务流程、API 和数据的现代化。借助可视化开发体验、预构建集成和嵌入式优秀实践,Oracle Integration 可以编排 API、应用、系统等,并支持基于 AI 和人工的自定义应用和业务流程。

Oracle Cloud Infrastructure Generative AI ( OCI Generative AI ) 是一项完全托管的服务,它提供了一系列先进、可定制的大型语言模型 (LLM),涵盖了广泛的文本生成、汇总、嵌入和聊天完成用例。您可以使用游乐场 - 控制台中的界面来浏览托管的预训练和定制模型,而无需编写一行代码,也可以在专用 AI 集群上基于您自己的数据创建和托管您自己的微调定制模型。

Oracle IntegrationOCI Generative AI 服务与 Oracle Cloud Infrastructure StreamingOCI Streaming ,Oracle 托管 Kafka 服务)、 OCI Document Understanding (使用 REST API 调用可访问无服务器服务,包括光学字符识别 (OCR)、文本提取、键值提取、表提取和文档分类)、Oracle Cloud Infrastructure Language (使用 REST API 调用可访问无服务器服务,用于文本情感分析、命名实体识别)分类等 )、 OCI Vision (使用 REST API 调用进行对象检测和图像分类的无服务器服务)、Oracle Cloud Infrastructure Data Science (数据科学团队可用于构建、训练的完全托管的无服务器平台)通过使用 Oracle Integration 的原生适配器和可视化开发方法来管理机器学习 - ML 模型 ) 和其他应用,您可以启用模块化、可扩展、可维护和安全的基于 LLM 的定制应用。

体系结构

此参考架构提供了必要的注意事项和建议,支持基于 AI、模块化和事件驱动的 LLM 应用引擎,使用:

  • 使用 Oracle Integration 可视编排工具和原生适配器,为 LLM 应用的数据加载器和查询引擎流提供低代码或无代码方法,适用于不同的社交、生产力和业务数据渠道(用户向 LLM 应用引擎输入文档、图像、业务数据或查询)源(LLM 应用程序引擎使用的数据源),以及 LLM 应用程序引擎使用的不同 OCI 服务的原生适配器( OCI 生成式 AI REST API、矢量数据库或存储、Oracle Cloud Infrastructure Language REST API、Oracle Cloud Infrastructure Data Science 自定义模型 REST 端点等)。这有助于快速设置 LLM 申请业务流
  • 事件驱动的模式,使用 OCI 流处理服务(Oracle 托管 Kafka 服务)以及我们在 Oracle Integration 中针对此 OCI 服务提供的本机适配器,将文档、映像和业务数据渠道和源以及查询通道与 LLM 应用程序引擎的数据加载器和查询引擎模块分离。这有助于启用可伸缩且高性能的 LLM 应用程序。
  • 使用 Oracle Integration Connectivity Agent 与第三方云、本地应用、系统等的专用连接,这是混合云和多云集成架构的关键推动因素,特别是在 LLM 应用程序中,文档,图像,业务数据,用户的查询可以来自这些系统,您希望使文档和数据传输保持私密和安全。这有助于提高端到端 LLM 流的安全性,从而将流量保留在专用网络中。
  • 在您的 LLM 应用中使用本机 LLM 模型或微调定制 LLM 模型作为 OCI 中的服务(使用 Oracle Integration 云原生适配器编排 OCI 生成式 AI 模型端点或 OCI 数据科学模型端点)。
  • 使用 LLM 应用程序引擎为 LLM 应用程序插入或拔下您自己的用户界面 (User Interface,UI) 的灵活方法,或者使用 Oracle Integration 下的 Visual APP Builder 或 Oracle APEX 中的低代码方法构建 UI。

下图说明了此参考体系结构。



oci-lowcode-ai-arch-oracle.zip

低代码 LLM 应用程序引擎由 2 个主要块组成:

文档、图像和业务数据加载程序
下面是 oci-generative-ai-llm-data-loader-arch.png 的说明
插图 oci-generative-ai-llm-data-loader-arch.png 的说明

oci-generative-ai-llm-data-loader-arch-oracle.zip

  • 此块首先通过社交/生产力渠道(例如,Whatsapp、Outlook、Gmail、Twitter 等)接收用户添加的输入文档、图像或业务数据、业务数据渠道(例如,第三方内部部署或云 Web 应用程序、内容管理系统、第三方云存储(例如 Microsoft Azure Cloud Storage)、AWS S3Google Cloud Storage、FTP、文件服务器、ERP、CX、HCM - 内部部署或 SaaS 应用程序等)、自定义知识搜索引擎 UI(例如,使用 Oracle Integration 下的 Visual Builder 或 Oracle Database 下的 Oracle APEX 等低代码可视化应用程序工具构建的自定义 UI),或者使用 Oracle Integration Visual Orchestration Flows 和本机适配器直接进入 OCI 对象存储桶。
  • 根据输入类型提取文档、图像或业务数据。例如,对于图像对象、文本检测,您可以使用 OCI AI 视觉识别服务,对于文档分类、提取,您可以使用 OCI AI 文档理解服务、特定类型的图像、使用 OCI 函数在首选编程语言中使用无服务器函数的文档等。
  • 可以通过以下任一方式处理文档、图像或业务数据:
    • 使用 OCI AI 语言服务提取元数据(例如,实体、关键字提取、关键字短语提取、情感分析、个人身份信息/PII 检测和混淆等),以进行进一步相关的上下文检索(例如启用检索增强生成 (RAG) 等)。
    • 使用 OCI 生成式 AI 服务将数据嵌入 LLM 模型,以进一步进行相关的上下文检索(例如,启用检索增强生成 (RAG) 等)。
    • 使用 OCI Generative AI 服务使用 LLM 模型汇总数据,以进一步进行相关的上下文检索(例如,启用汇总索引以搜索多个文档,也称为结构化分层检索等)。
    • 将数据存储在关系存储中,以便进一步搜索结构化数据(例如 Oracle Database、Oracle Database Cloud Service、Autonomous Database、MySQL、PostgreSQL 等)。
    • 对 Vector Store 中的数据进行索引,以进一步搜索非结构化数据(例如,Vector、Summary、Keyword Indexes with OCI AI Vector Search、OCI Search Service with OpenSearch、Qdrant 等)。

      :Oracle Database 23.4c 中将提供新的 AI 向量相似性搜索功能。

查询引擎
下面是 oci-generative-ai-llm-query-engine-arch.png 的说明
插图 oci-generative-ai-llm-query-engine-arch.png 的说明

oci-generative-ai-llm-query-engine-arch-oracle.zip

  • 此块首先通过社交、生产力渠道(例如 Whatsapp、Outlook、Gmail 等)和业务数据渠道(例如第三方本地/云 Web 应用程序)从用户接收输入查询。等等 ) 或者使用 Oracle Integration Visual Orchestration Flow 和本机适配器来自定制知识搜索引擎 UI(例如,使用低代码可视化应用程序工具(例如 Oracle Integration 下的 Visual Builder 或 Oracle Database 下的 Oracle APEX)构建的自定义 UI。
  • 该查询使用 Oracle Integration 输入查询管道,其中以下任一项都可以处理:
    • 使用 OCI Generative AI 服务筛选查询,以避免提示注入。
    • 使用 OCI Generative AI 服务重写或转换查询,以获得更相关的上下文检索。
    • 使用 OCI 生成式 AI 将查询路由到查询引擎选择器,以确定如何对数据执行查询(作为数据汇总,作为特定上下文检索)。
    • 在需要聊天内存的聊天完成用例中,使用 OCI Cache with Redis 从聊天历史记录存储中提取对话历史记录。
    • 使用 OCI 生成式 AI 服务嵌入查询,以了解相关的上下文检索用例(例如,启用检索增强生成 (RAG) 等)。
    • 使用 OCI Generative AI 服务路由相关上下文检索程序,以确定从哪些数据源获取数据以回答输入查询。
    • 检索相关上下文数据以从任一矢量存储(例如,OCI AI 矢量搜索、OCI Search Service with OpenSearch、Qdrant 等)中回答查询,以了解检索增强生成 (RAG) 使用场景、关系存储(例如,Oracle Database、Oracle Database Cloud Service、Autonomous Database、MySQL、PostgreSQL 和因此)搜索结构化业务数据或社交、生产力和业务数据源(例如 Twitter、Outlook、Gmail、ERP/HCM/CX 应用程序等),以便按需搜索业务数据,这些数据均由 Oracle Integration 使用本机适配器来连接到这些数据源。
    • 使用在 OCI 数据科学中部署和公开的重新排名模型检索的相关上下文数据重新排名,以优化搜索。
    • 使用 OCI 生成式 AI 服务功能生成查询的最终解答,以完成汇总、生成和聊天。

体系结构具有以下组成部分:

  • Oracle Integration

    Oracle Integration 是一个全托管式服务和低代码企业连接、扩展和自动化平台,可用于快速实现应用、业务流程、API 和数据的现代化。开发人员和云架构师可以通过可视化开发体验、预构建集成和嵌入式优秀实践,以六倍的速度连接 SaaS 和内部部署应用。利用 Oracle Integration,您可以原生访问 Oracle Cloud ERP、HCM 和 CX 中的事件。连接应用特定的分析孤岛,简化从申请到接收、从招聘到付款、从销售线索到发票以及其他关键流程。最后,为 IT 和业务负责人提供端到端的可见性。

  • OCI 生成式 AI

    Oracle Cloud Infrastructure (OCI) Generative AI 是一项完全托管的服务,可通过 API 将这些通用语言模型无缝集成到各种用例中,包括写作帮助、总结和聊天。OCI Generative AI 服务包括以下基础模型:

    • 生成:提供从文本生成文本或提取信息的说明。
    • 汇总:使用指示的格式、长度和语气汇总文本。
    • 嵌入:将文本转换为矢量嵌入,以便在用于语义搜索、文本分类或文本聚类的应用程序中使用。
  • OCI 文档理解

    OCI 文档理解服务是一项 AI 服务,支持开发人员通过 API 和命令行界面工具从文档文件中提取文本、表和其他关键数据。借助 OCI 文档理解服务,您可以使用预构建 AI 模型自动执行繁琐的业务处理任务,并自定义文档提取,以满足行业特定的需求。

  • Oracle Cloud Infrastructure Language

    OCI 语言处理服务是一种无服务器和多租户服务,可通过 REST API 调用访问。它提供预先训练的模型,经常进行重新训练和监视,为您提供最佳结果。语言为您提供人工智能和机器学习功能,以检测非结构化文本中的语言。此外,它还提供其他工具来帮助您进一步了解您的文本。

  • OCI 视觉服务

    OCI Vision 是一种 AI 服务,用于大规模执行基于深度学习的图像分析。利用现成可用的预构建模型,开发人员无需具备机器学习 (ML) 专业知识即可轻松将图像识别和文本识别构建到应用中。对于行业特定的用例,开发人员可以使用自己的数据自动训练自定义视觉模型。这些模型可用于检测制造过程中的视觉异常,从文档中提取文本以自动执行业务工作流,以及标记图像中的项目来盘点产品或发运。除了访问预训练模型之外,开发人员还可以创建自定义模型,而无需具备数据科学专业知识或管理自定义模型基础设施。

  • 对象存储

    通过对象存储,可以快速访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全、安全地存储数据,然后直接从互联网或云平台检索数据。您可以无缝扩展存储,而不会在性能或服务可靠性方面出现任何下降。将标准存储用于“热”存储,以便您快速、立即和频繁地访问。将归档存储用于长时间保留的“冷”存储,很少或很少访问。

  • 数据科学

    Oracle Cloud Infrastructure Data Science 是一个完全托管的无服务器平台,数据科学团队可以使用该平台在 Oracle Cloud Infrastructure (OCI) 上构建、训练和管理机器学习 (ML) 模型。它可以轻松地与其他 OCI 服务集成,例如 Oracle Autonomous Data WarehouseOracle Cloud Infrastructure Object Storage 等。您可以构建和评估高质量的机器学习模型,通过快速投入企业可信的数据来提高业务灵活性,并且可以通过更轻松地部署机器学习模型来支持数据驱动的业务目标。

  • 采用 OpenSearch 的 OCI 搜索服务

    OCI Search Service with OpenSearch 是作为 Oracle 托管服务提供的洞察引擎。Oracle 无需停机即可自动为服务打补丁、更新、升级、备份和调整大小。客户可以快速存储、搜索和分析大量数据,并近乎实时地查看结果。

  • 使用 Redis 的 OCI 高速缓存

    Oracle Cloud Infrastructure Cache with Redis 是一个全面的内存中托管缓存解决方案,它基于开源 Redis 构建。此全托管式服务可加快数据读取和写入速度,显著缩短应用响应时间和提高数据库性能,从而改善客户体验。

  • APEX 服务

    Oracle APEX Application Development (APEX) 是一个低代码开发平台,您可以使用它来构建可扩展的、功能丰富的、安全的企业应用程序,这些应用程序可以部署到安装了 Oracle Database 的任何地方。您无需成为各种技术的专家即可提供复杂的解决方案。APEX 服务包括一些内置功能,例如用户界面主题、导航控制、表单处理程序和灵活报告。这些功能可以加快应用程序开发过程。

  • Oracle Database 23(AI 向量搜索)

    Oracle Database 23c 为希望构建新的微服务、图形、文档和关系型 applications.Oracle 的开发人员提供了非常完整、简单的融合数据库,并宣布计划使用 AI 向量向 Oracle Database 23c 添加语义搜索功能。称为 AI 向量搜索的功能集合包括新的向量数据类型、向量索引和向量搜索 SQL 运算符,这些运算符使 Oracle Database 能够将文档、图像和其他非结构化数据的语义内容存储为向量,并使用它们运行快速相似性查询。有关更多信息,请参阅“浏览更多”部分中的新闻稿链接。

  • Oracle Cloud Infrastructure 流处理提供了一个完全托管、可扩展且持久的存储解决方案,可以摄取连续的大量数据流,以供您实时使用和处理。您可以使用流处理来摄取大量数据,例如应用日志、运行状况遥测、Web 点击流数据;或者用于发布 - 订阅消息传递模式中连续生成和处理数据的其他用例。

  • 事件

    Oracle Cloud Infrastructure 服务会发出事件,这些事件是描述资源变化的结构化消息。将针对创建、读取、更新或删除 (CRUD) 操作、资源生命周期状态更改以及影响云资源的系统事件发出事件。

  • 函数

    Oracle Cloud Infrastructure Functions 是一个完全托管、多租户、高度可扩展的按需函数即服务 (FaaS) 平台。它由 Fn Project 开源引擎提供支持。使用函数可以部署代码,并可直接调用代码或触发代码以响应事件。Oracle Functions 使用 Oracle Cloud Infrastructure Registry 中托管的 Docker 容器。

  • API 网关

    通过 Oracle API Gateway,您可以使用可从网络访问的专用端点发布 API,并且您可以根据需要向公共互联网公开这些端点。端点支持 API 验证、请求和响应转换、CORS、验证和授权以及请求限制。

  • Web 应用防火墙 (WAF)

    Oracle Cloud Infrastructure Web Application Firewall (WAF) 是符合支付卡行业 (PCI) 的、基于区域和边缘实施服务,它连接到实施点,例如负载平衡器或 Web 应用域名。WAF 可保护应用免受恶意和不需要的互联网流量的侵害。WAF 可以保护任何互联网端点,并在客户应用之间一致地实施规则。

  • 区域

    Oracle Cloud Infrastructure 区域是一个本地化的地理区域,其中包含一个或多个称为可用性域的数据中心。区域独立于其他区域,远距离可以区分它们(跨国家甚至大陆)。

  • 虚拟云网络 (VCN) 和子网

    VCN 是您在 Oracle Cloud Infrastructure 区域中设置的可定制软件定义网络。与传统数据中心网络一样,VCN 允许您完全控制您的网络环境。一个 VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 细分为多个子网,这些子网可以限定在某个区域或可用性域中。每个子网都包含一系列不与 VCN 中的其他子网重叠的地址。您可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。

推荐

使用以下建议作为起点。您的要求可能与此处介绍的体系结构有所不同。
  • 维护和高可用性

    参考体系结构几乎只使用 Oracle 管理的 PaaS 服务。使用此解决方案无需安装、修补、更新或升级软件。这适用于:Oracle IntegrationOCI Generative AIOCI Document UnderstandingOCI VisionOracle Cloud Infrastructure LanguageOracle Cloud Infrastructure Data ScienceOCI Object StorageOCI EventsOCI StreamingOCI FunctionsOCI API GatewayOracle Cloud Infrastructure Web Application Firewall

    唯一可以引起注意的组件是安装在计算实例中的 Oracle Integration Connectivity Agent,用于访问位于专用网络中的 OCI OpenSearch 集群、Autonomous Database 等资源。请遵循 Oracle Integration 文档中的准则,使 Oracle Integration Connectivity 代理易于维护且具有高可用性。

  • 可扩展性和大小

    此参考体系结构使用 PaaS 服务,对于它包含的大多数服务,它都是可扩展的开箱即用。请注意,OCI OpenSearch 集群以及 OCI Cache with Redis 集群不会自动扩展和收缩(仅手动)。因此,需要根据您的用例正确扩展解决方案。

  • 连接

    OCI 中的所有连接都应通过专用网络建立:

    • 您可以在 Oracle Integration 中使用专用端点选项或连接代理连接到专用 OCI 服务,例如 OCI Streaming 、Oracle Autonomous Database、Oracle Database、Oracle Database Cloud Service 等。
    • 连接到 OCI OpenSearch 集群、 OCI Cache with Redis 集群等专用服务的 Oracle Integration Connectivity Agent 应安装在部署这些服务的同一专用子网内的 OCI VM 中。
    • 您创建的 OCI 流处理 Kafka 流或主题应与部署有专用端点(与 OCI VCN 中的专用子网关联)的流池关联。如果 OCI Streaming Private Kafka Streams 或文档和映像提取结果主题(请参阅上面的逻辑块文档、映像和业务数据加载程序)等主题从 OCI 事件接收 OCI 文档理解提取结果文件元数据,则可以利用 OCI Functions with OCI Events 将消息传送到专用流处理端点。
    • 连接到第三方内部部署或云服务(例如 Azure SQL 数据库)的连接代理应安装在部署这些外部服务的同一专用子网内的 VM 中。
  • 限制对 Oracle Integration 实例的访问

    通过配置 Oracle Integration 允许列表(以前是白名单)来限制有权访问 Oracle Integration 实例的网络。只有用户、来自特定 IP 地址的系统、无类域间路由 (Classless Inter-Domain Routing,CIDR) 块以及您指定的虚拟云网络才能访问 Oracle Integration 实例。

    在此参考体系结构中,Oracle Integration Allowlist 可以限制对 Oracle Integration 实例的访问,仅允许在 OCI 上部署的云应用程序、Oracle SaaS 应用程序、非 Oracle Cloud、内部部署 Web、Saas、云应用程序以及与托管 Oracle Integration Connectivity Agents 的 VM 关联的 VCN OCID 发起的请求。

注意事项

部署此引用体系结构时,请考虑以下几点。

  • 安全

    OCI Generative AI 中的专用 AI 集群是可用于微调定制 LLM 模型或托管定制 LLM 模型端点的计算资源。这些集群专用于您的模型,不与其他租户中的用户共享。使用自定义模型 OCI 生成式 AI,您可以使用自己的数据优化模型。否则,您可以通过实施检索增强生成 (Retrieval Augmented Generation,RAG) 将嵌入、索引等技术与 OCI 生成 AI 按需模型、矢量存储(例如 OCI 向量搜索、开放搜索等)相结合来使用自己的数据。

    使用 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 策略来控制谁可以访问您的云资源(例如,Oracle Integration、OCI Language、OCI Vision、OCI Generative AI 服务、OCI Streaming、OCI Compute Instances 等)以及可以执行哪些操作。要保护数据库密码或任何其他密钥,请考虑使用 OCI Vault 服务。

    文档和映像存储在专用 OCI 对象存储存储桶中。用户在知识搜索引擎 UI 中单击文档时,将创建寿命较短的临时链接。使用 Oracle Cloud Infrastructure Web Application Firewall (WAF) 筛选器和规则保护通过 OCI API 网关公开的 Oracle Integration REST 触发的编排流免受 DDO 攻击、SQL 注入线程等恶意攻击。

  • 可扩展性

    创建 OCI 流处理流或主题时,管理员指定他们计划使用的流数。可以按业务域(例如 InvoiceStream、PurchaseOrderStream 等)创建流。管理员还指定他们计划按流或主题使用的分区。通过分区,您可以通过在多个节点之间拆分消息来分配流和主题,从而允许多个使用者同时从流中读取主题(在这种情况下,您可以在 Oracle Integration 中具有相同使用者集成流的多个克隆,每个克隆都使用 OCI 流处理适配器作为触发器从流或主题的不同分区读取)。

    创建 Oracle Integration 实例时,管理员指定他们计划为每个实例使用的消息包数。

  • 资源限制

    考虑您的租户的最佳实践、按服务列出的限制以及区间限额。

确认

  • Author: Juan Carlos González Carrero
  • Contributors: Bob Peulen, Alexandru Negrea