使用精选 AI 和 Oracle APEX 构建代理、高保真、会话式 AI 框架

此 AI 驱动的聊天机器人解决方案利用了一个座席框架,该框架整合了数据可视化和报告功能,同时最大限度地减少幻觉并确保高准确性。

自然语言 (NL) 查询将转换为可执行 SQL 语句,以供 Oracle Database 访问,并具有在执行前验证 SQL 的手动循环机制。该解决方案基于 OCI 托管,具有 Oracle APEX Application Development 用户界面、基于 LangChain 的 AI 代理在 OCI Compute 上运行,并与 OCI Generative AI 服务和 Oracle Autonomous AI Database 集成。该架构可实现与企业数据的无缝自然语言交互,将响应式自然语言处理前端与动态可视化相结合,并采用安全、高性能的后端进行实时数据探索。

此 AI 聊天机器人解决方案提供:

  • 对具有基于角色的数据访问权限的数据库的自然语言查询
  • 动态数据可视化和报告
  • 人工循环 SQL 验证
  • 接近零幻觉

体系结构

Agentic 框架包含不同的功能层,可处理 Oracle Cloud Infrastructure (OCI) 上的用户交互、API 访问、AI 处理和数据存储。

下图显示了功能层和流程流:



select-ai-apex-architecture-oracle.zip

工作流:

  1. 用户通过 Oracle APEX Application Development 前端应用登录并提交自然语言查询。
  2. 该请求通过 Oracle Cloud Infrastructure API Gateway 路由到编排引擎。
  3. 该请求从 OCI API Gateway 路由到 OCI Compute ,其中包含使用 LangChain 等框架开发的 AI 代理,这些 AI 代理在 OCI Container Instances 上运行。
  4. 代理执行旨在确保查询准确性和减少不准确(幻觉)的工作流。
  5. 代理调用 Oracle Autonomous AI Database Select AI 功能,该功能利用 OCI Generative AI 将自然语言查询及其元数据转换为可执行 SQL 语句。
  6. 源数据位于单独的非 Autonomous Database (例如 Oracle Exadata Database Service )上。Oracle Autonomous AI Database 充当智能旁观者,可通过安全的数据库链接访问这些数据。此架构模式支持对早期数据库版本中存储的数据使用 Select AI 功能,而无需迁移数据。
  7. 最终 SQL 查询的结果将通过应用程序前端返回给用户。每个响应都采用自然语言进行格式化,以模拟类似聊天的体验,并伴随着针对特定查询结果定制的数据可视化。
  8. 在此过程中会强制实施基于角色的访问控制 (Role-Based Access Control,RBAC)。代理选择与用户角色相对应的特定 Select AI 配置文件。每个概要文件仅限于源数据库方案的特定子集,从而确保生成的 SQL 仅访问授权的数据。

此架构使用以下核心 OCI 组件:

  • Oracle Autonomous AI Database

    提供 AI 数据层的核心,包括:

    • 数据集成:使用数据库链接 (sidecar) 访问非 Autonomous Database 源。
    • 自然语言交互:使用内置的 Select AI 功能实现自然语言到 SQL 的转换。
    • Vector Search:使用数据库的 AI Vector Search 功能进行检索增强生成 (RAG) 反馈循环。
  • Oracle APEX 应用程序开发

    为构建数据驱动的用户界面提供低代码平台。它与 Autonomous Database 紧密集成,可作为查询输入和结果可视化的前端。

  • OCI Compute,带 Python 运行时

    托管 AI 工作流的编排引擎。它通过使用 REST API 接收来自 APEX Service 应用程序的请求,查询数据库并调用 OCI Generative AI 。此组件提供了一个持久、低延迟的运行时环境。

  • OCI 生成式 AI

    为以下三个关键功能提供对大型语言模型 (LLM) 的访问:

    • 自然语言到 SQL:用作 Select AI 功能的推断引擎。
    • 反馈矢量化:从文本生成嵌入,以便在 AI Vector Store 中存储。
    • 后端 LLM 服务:可以直接由 Python 后端调用,用于其他生成任务,例如结果汇总。
  • OCI API 网关

    为后端服务提供托管、安全的端点,将请求从 APEX Service 前端路由到 OCI Container Instances 上的编排引擎。

  • Oracle Exadata Database Service

    包含要查询的源数据的高性能数据库。

  • Oracle Cloud Infrastructure Web Application Firewall (WAF)

    OCI WAF 充当关键安全防护,可检查 APEX 服务前端的所有请求,以保护 API 网关和后端服务免受基于 Web 的恶意攻击。

  • OCI 身份和访问管理 (IAM)

    IAM 策略用于检验、访问控制和安全执行。

用于最小化幻觉的代理工作流

以下工作流概述了一种代理方法,旨在实现自然语言 (NL) 查询处理中的近乎零幻觉:



幻觉还原 - 工作流 -oracle.zip

  • 用户输入:用户通过 APEX Service 前端提交自然语言查询。
  • RAG 检查点:首先使用语义相似性搜索根据 Oracle Autonomous AI Database 中的 AI Vector Store 对查询进行评估。如果找到紧密匹配的、预先验证的查询,则会重用其对应的 SQL 来确保一致性和效率。
  • 从自然语言到 SQL 生成:如果未标识匹配项,编排引擎将触发 Autonomous Database 中的 Select AI 功能。此组件利用 OCI Generative AI 将用户的输入转换为可执行的 SQL 查询。
  • 查询验证:生成的 SQL 将提供给用户进行检查和审批,从而在执行之前引入人工循环保护。
  • 执行和数据检索:验证后,将针对 Oracle Exadata Database Service 执行 SQL 查询。生成的数据在 APEX Service 前端呈现。
  • 反馈循环:通过使用 OCI Generative AI ,验证的自然语言查询及其对应的 SQL 将嵌入为向量,并存储在 AI Vector Store 中。这通过扩展可信查询对的系统信息库来增强将来基于 RAG 的查询解决方案。

这种迭代工作流程使系统能够不断地从用户反馈中学习,逐渐降低随着时间的推移出现幻觉的可能性。

用于传统数据访问的 Sidecar 模式

Oracle Autonomous AI Database 充当包含传统数据库的 AI 旁注,可处理从自然语言到 SQL 转换和向量搜索的事务,同时使用安全的数据库链接将查询联合到 Exadata Database Service。

这种方法消除了迁移旧数据的需求,使企业能够在不中断现有系统的情况下实现查询访问现代化。

利用 APEX Service 嵌入式 Oracle JET 进行动态可视化

为了支持数据驱动的动态可视化,该架构使用与 Oracle JET 的直接集成,而不是 APEX Service 的声明式图表组件。这允许基于 AI 生成的数据进行所需的运行时呈现。

Oracle JET 的模型视图模型 (model-view-viewmodel,MVVM) 架构利用 Knockout.js,支持模块化依赖关系管理、异步数据绑定和运行时用户界面组合。这允许前端动态响应由 AI 驱动的 SQL 查询生成的结构化 JSON 输出。

通过将图表渲染与 APEX Service 的声明层分离,我们可以对可视化管道进行架构控制。在运行时选择并引入图表类型和数据模型,以实现与现代分析工作流一致的响应式可扩展用户体验。

呈现管道概述:

  • 模型生成:使用 AI 代理将 AI 生成的 SQL 结果转换为结构化 JSON。
  • JSON 有效负载:存储在 APEX Service 页项中以供前端访问。
  • 视图组成:图表类型建议(例如条形图、折线图和饼图)由 AI 检索并存储在 APEX 服务单选组项目中,允许用户在不同的图表类型之间切换。
  • 运行时图表执行:JavaScript 函数将 JSON 模型绑定到静态区域内的 Oracle JET 图表组件,以实时呈现可视化。

推荐

使用以下建议作为构建会话式 AI 框架的起点。您的要求可能与此处介绍的体系结构不同。
  • 人工循环

    为此交互制定明确的准则和接口。设计直观的审查界面,并定义明确的升级标准,以确保人力监督既有效又有效。这促进了对系统的信任,并允许通过反馈循环进行持续改进。

  • 反馈

    对系统生成的反馈日志实施全面的分析。这将提供对系统如何学习和发展的见解。监视关键性能指标 (KPI),例如查询准确性、用户满意度和响应时间,将有助于确定需要改进的领域,并确保高质量的用户体验。

注意事项

Oracle Cloud Infrastructure (OCI) 上部署此参考架构时,请考虑以下几点:

  • 生成式 AI
    • 为了实现可预测的性能,尤其是在生产环境中,请部署专用 AI 集群进行模型推断。这些集群不会与其他租户共享,从而确保响应时间一致。对于嵌入生成等不太关键的任务,按需模式可以是一个更具成本效益的选择。
    • 对于嵌入,您可以将预训练模型导入 Oracle Autonomous AI Database ,也可以使用 OCI Generative AI 在外部生成嵌入。Oracle Autonomous AI Database 内置开放式神经网络交换 (ONNX) 运行时引擎,支持嵌入式模型直接在数据库中运行。
  • 高可用性
    • AI 代理:为了确保高可用性,应将基于 LangChain 的 AI 代理部署在不同容错域或可用性域中的多个计算实例中。我们建议使用 OCI 实例池来提高可扩展性和易管理性。OCI 负载平衡器可在这些实例之间分配流量并执行运行状况检查。
    • 托管服务:该体系结构中的其他组件(例如 Autonomous DatabaseAPEX ServiceOCI Generative AIOCI API Gateway )是完全托管的服务,具有内置的容错性和高可用性,无需额外的冗余配置。
    • 灾难恢复:为了防止站点范围内的停机,Oracle Autonomous Data Guard 可将数据库复制到其他 OCI 区域。
  • 安全性和合规性
    • 分层安全方法:实施多层安全策略。这应包括网络安全措施,例如使用 Oracle Cloud Infrastructure Web Application Firewall ,并遵循所有服务交互的最小权限原则。
    • 细粒度访问控制:除了通过 AI 配置文件实施基于角色的访问控制 (Role-Based Access Control,RBAC),还可以考虑使用虚拟专用数据库 (Virtual Private Database,VPD) 策略对数据访问进行更细粒度的控制。

确认

  • 作者 Mirjana Rakuljic, Shahvaiz Janjua, Sydney Nurse
  • 贡献者Robert Lies