Select AI 및 Oracle APEX로 에이전시적이고 충실한 대화형 AI 프레임워크 구축하기

이 AI 기반 챗봇 솔루션은 데이터 시각화 및 보고 기능을 통합하고 환각을 최소화하고 높은 정확도를 보장하는 에이전트 프레임워크를 활용합니다.

NL(자연어) 질의는 실행 전에 SQL을 검증하는 Human-in-the-loop 방식을 사용하여 Oracle Database 액세스를 위한 실행 가능한 SQL 문으로 변환됩니다. 이 솔루션은 OCI에서 호스팅됩니다. OCI에는 Oracle APEX Application Development 사용자 인터페이스, OCI Compute에서 실행되는 LangChain 기반 AI 에이전트, OCI Generative AI 서비스 및 Oracle Autonomous AI Database와의 통합 등이 포함되어 있습니다. 이 아키텍처는 반응형 자연어 처리 프런트엔드와 동적 시각화, 실시간 데이터 탐색을 위한 안전한 고성능 백엔드를 결합하여 엔터프라이즈 데이터와의 자연어 상호 작용을 원활하게 해줍니다.

이 AI 챗봇 솔루션은 다음을 제공합니다.

  • 데이터에 대한 역할 기반 액세스를 통해 데이터베이스에 대한 자연어 쿼리
  • 동적 데이터 시각화 및 보고
  • 휴먼 인더루프 SQL 검증
  • 거의 제로 환각

구조

에이전트 프레임워크에는 사용자 상호 작용, API 액세스, AI 처리 및 Oracle Cloud Infrastructure(OCI)의 데이터 스토리지를 처리하는 고유한 기능 계층이 포함됩니다.

다음 다이어그램은 기능 계층 및 프로세스 플로우를 보여줍니다.



선택-ai-apex-아키텍처-oracle.zip

워크플로우:

  1. 사용자는 Oracle APEX Application Development 프런트엔드 애플리케이션을 통해 자연어 쿼리를 사인인하고 제출합니다.
  2. 요청은 Oracle Cloud Infrastructure API Gateway를 통해 통합관리 엔진으로 라우팅됩니다.
  3. 요청은 OCI API Gateway에서 OCI Container Instances에서 실행되는 LangChain와 같은 프레임워크로 개발된 AI 에이전트가 포함된 OCI Compute로 라우팅됩니다.
  4. 에이전트는 질의 정확성을 보장하고 부정확성(홀루시네이션)을 완화하기 위해 설계된 워크플로우를 실행합니다.
  5. 이 에이전트는 Oracle Autonomous AI Database Select AI 기능을 호출합니다. 이 기능은 OCI Generative AI를 활용하여 자연어 쿼리 및 메타데이터를 실행 가능한 SQL 문으로 변환합니다.
  6. 소스 데이터는 Oracle Exadata Database Service와 같이 별도의 비Autonomous Database에 상주합니다. Oracle Autonomous AI Database는 지능형 사이드카 역할을 하며, 보안 데이터베이스 링크를 사용하여 이 데이터에 액세스합니다. 이 아키텍처 패턴을 사용하면 데이터 마이그레이션 없이 이전 데이터베이스 버전에 저장된 데이터에 AI 선택 기능을 사용할 수 있습니다.
  7. 최종 SQL 질의 결과는 응용 프로그램 프론트 엔드를 통해 사용자에게 반환됩니다. 각 응답은 채팅과 유사한 경험을 에뮬레이트하기 위해 자연어로 형식이 지정되며 특정 쿼리 결과에 맞는 데이터 시각화가 수반됩니다.
  8. RBAC(역할 기반 액세스 제어)는 이 프로세스 중에 적용됩니다. 에이전트가 사용자 역할에 해당하는 특정 Select AI 프로파일을 선택합니다. 각 프로파일은 소스 데이터베이스 스키마의 특정 부분 집합으로 제한되므로 생성된 SQL이 권한이 부여된 데이터에만 액세스할 수 있습니다.

이 아키텍처는 다음과 같은 핵심 OCI 구성요소를 활용합니다.

  • Oracle 자율운영 AI 데이터베이스

    다음을 포함한 AI 데이터 계층의 핵심을 제공합니다.

    • 데이터 통합: 데이터베이스 링크(사이드카)를 사용하여 비Autonomous Database 소스에 액세스합니다.
    • 자연어 상호 작용: 자연어에서 SQL로 변환하기 위해 내장된 Select AI 기능을 사용합니다.
    • 벡터 검색: 검색 증강 생성(RAG) 피드백 루프에 데이터베이스의 AI 벡터 검색 기능을 사용합니다.
  • Oracle APEX Application Development

    데이터 기반 사용자 인터페이스를 구축하기 위한 로우 코드 플랫폼을 제공합니다. Autonomous Database와 긴밀하게 통합되어 쿼리 입력 및 결과 시각화를 위한 프론트엔드 역할을 합니다.

  • Python Runtime이 포함된 OCI 컴퓨트

    AI 워크플로우에 대한 통합관리 엔진을 호스트합니다. REST API를 사용하여 APEX Service 애플리케이션에서 요청을 수신하고, 데이터베이스를 쿼리하고, OCI Generative AI를 호출합니다. 이 구성요소는 대기 시간이 짧은 영구 런타임 환경을 제공합니다.

  • OCI 생성형 AI

    다음 세 가지 주요 기능에 대해 대규모 언어 모델(LLM)에 대한 액세스를 제공합니다.

    • Natural Language to SQL: Select AI 기능의 추론 엔진 역할을 합니다.
    • 피드백 벡터화: AI Vector Store에 저장하기 위한 텍스트의 임베딩을 생성합니다.
    • 백엔드 LLM 서비스: 결과 요약과 같은 다른 생성형 작업을 위해 Python 백엔드에서 직접 호출할 수 있습니다.
  • OCI API 게이트웨이

    APEX 서비스 프런트엔드에서 OCI 컨테이너 인스턴스의 통합관리 엔진으로 요청을 라우팅하는 백엔드 서비스를 위한 관리형 보안 엔드포인트를 제공합니다.

  • Oracle Exadata Database Service

    질의할 소스 데이터를 포함하는 고성능 데이터베이스입니다.

  • Oracle Cloud Infrastructure Web Application Firewall(WAF)

    OCI WAF는 중요한 보안 실드 역할을 하며, APEX Service 프론트 엔드의 모든 요청을 검사하여 악성 웹 기반 공격으로부터 API 게이트웨이 및 백엔드 서비스를 보호합니다.

  • OCI ID 및 액세스 관리(IAM)

    IAM 정책은 검사, 액세스 제어 및 보안 실행에 사용됩니다.

환각 최소화를 위한 에이전트 워크플로우

다음 워크플로우에서는 NL(자연어) 쿼리 처리에서 거의 0에 가까운 환각을 달성하도록 설계된 에이전트 접근 방식을 간략하게 설명합니다.



환각 감소 워크플로우-oracle.zip

  • 사용자 입력: 사용자가 APEX 서비스 프론트엔드를 통해 자연어 쿼리를 제출합니다.
  • RAG 체크포인트: 먼저 시맨틱 유사성 검색을 사용하여 Oracle Autonomous AI Database의 AI Vector Store에 대해 쿼리를 평가합니다. 밀접하게 일치하는 사전 검증된 query가 발견되면 해당 SQL은 일관성과 효율성을 보장하기 위해 재사용됩니다.
  • SQL 생성에 대한 자연어: 일치 항목이 식별되지 않으면 통합관리 엔진이 Autonomous Database에서 AI 선택 기능을 트리거합니다. 이 구성요소는 OCI 생성형 AI를 활용하여 사용자의 입력을 실행 가능한 SQL 쿼리로 변환합니다.
  • Query 검증: 생성된 SQL이 검토 및 승인을 위해 유저에게 제공되므로 실행 전에 Human-in-the-loop 보호 기능이 도입됩니다.
  • 실행 및 데이터 검색: 검증 후 Oracle Exadata Database Service에 대해 SQL 질의가 실행됩니다. 결과 데이터는 APEX Service 프런트엔드에 렌더링됩니다.
  • 피드백 루프: 검증된 자연어 쿼리 및 해당 SQL은 OCI Generative AI를 사용하여 벡터로 내장되고, AI Vector Store에 저장됩니다. 따라서 신뢰할 수 있는 쿼리 쌍의 저장소를 확장하여 향후 RAG 기반 쿼리 해결이 향상됩니다.

이 반복적인 워크플로우를 통해 시스템은 사용자 피드백을 통해 지속적으로 학습하여 시간이 지남에 따라 환각 가능성을 점진적으로 줄일 수 있습니다.

레거시 데이터 접근에 대한 사이드카 패턴

Oracle Autonomous AI Database는 레거시 데이터베이스와 함께 AI 사이드카 역할을 하며, SQL 번역 및 벡터 검색에 대한 자연어를 처리하고, 보안 데이터베이스 링크를 사용하여 Exadata Database Service에 쿼리를 통합합니다.

이 접근 방식을 사용하면 레거시 데이터를 마이그레이션할 필요가 없으므로 기업은 기존 시스템을 중단하지 않고도 쿼리 액세스를 현대화할 수 있습니다.

동적 시각화를 위해 APEX Service에 내장된 Oracle JET 활용

데이터 기반의 동적 시각화를 지원하기 위해 이 아키텍처는 APEX Service의 선언형 차트 구성요소가 아닌 Oracle JET와의 직접 통합을 사용합니다. 따라서 AI 생성 데이터를 기반으로 필요한 런타임 렌더링이 가능합니다.

Knockout.js를 활용하는 Oracle JET의 MVVM(모델 뷰 모델) 아키텍처는 모듈식 종속성 관리, 비동기식 데이터 바인딩 및 런타임 사용자 인터페이스 구성을 지원합니다. 이를 통해 프론트엔드는 AI 기반 SQL 쿼리로 생성된 구조화된 JSON 출력에 동적으로 응답할 수 있습니다.

차트 렌더링을 APEX Service의 선언 계층에서 분리하면 시각화 파이프라인에 대한 아키텍처 제어가 가능합니다. 차트 유형 및 데이터 모델은 런타임 시 선택 및 도입되므로 최신 분석 워크플로와 연계된 확장 가능한 반응형 사용자 경험을 제공할 수 있습니다.

렌더링 파이프라인 개요:

  • 모델 생성: AI 에이전트를 사용하여 AI 생성 SQL 결과가 구조화된 JSON으로 변환됩니다.
  • JSON 페이로드: 프론트 엔드 액세스를 위해 APEX Service 페이지 항목에 저장됩니다.
  • 구성 보기: 차트 유형 권장 사항(예: 막대, 선 및 파이 차트)은 AI에 의해 검색되고 APEX Service 라디오 그룹 항목에 저장되므로 사용자가 서로 다른 차트 유형 간에 전환할 수 있습니다.
  • 런타임 차트 실행: JavaScript 함수는 JSON 모델을 정적 영역 내의 Oracle JET 차트 구성요소에 바인딩하여 시각화를 실시간으로 렌더링합니다.

권장사항

다음 권장 사항을 시작점으로 사용하여 대화형 AI 프레임워크를 구축할 수 있습니다. 여기에 설명된 구조와 요구 사항이 다를 수 있습니다.
  • 휴먼 인더루프

    이 상호 작용에 대한 명확한 지침 및 인터페이스를 설정합니다. 직관적인 검토 인터페이스를 설계하고 명확한 에스컬레이션 기준을 정의하여 인적 감독의 효율성과 효율성을 보장합니다. 이를 통해 시스템에 대한 신뢰를 높이고 피드백 루프를 통해 지속적으로 개선할 수 있습니다.

  • 피드백

    시스템에서 생성된 피드백 로그에 대한 포괄적인 분석을 구현합니다. 이를 통해 시스템이 학습하고 발전하는 방식에 대한 통찰력을 얻을 수 있습니다. 쿼리 정확도, 사용자 만족도 및 응답 시간과 같은 KPI(주요 성과 지표)를 모니터링하면 개선할 영역을 식별하고 고품질 사용자 경험을 보장하는 데 도움이 됩니다.

고려사항

Oracle Cloud Infrastructure(OCI)에서 이 참조 아키텍처를 배포할 때는 다음 사항을 고려하십시오.

  • 생성형 AI
    • 예측 가능한 성능, 특히 프로덕션 환경에서는 모델 추론을 위한 전용 AI 클러스터를 배포합니다. 이러한 클러스터는 다른 테넌트와 공유되지 않으므로 일관된 응답 시간을 보장합니다. 임베딩 생성과 같이 덜 중요한 작업의 경우 온디맨드 모드가 보다 비용 효율적인 옵션일 수 있습니다.
    • 임베딩의 경우 사전 학습된 모델을 Oracle Autonomous AI Database로 임포트하거나, OCI Generative AI를 사용하여 외부 임베딩을 생성할 수 있습니다. Oracle Autonomous AI Database에는 내장된 ONNX(Open Neural Network Exchange) 런타임 엔진이 포함되어 있어 임베딩 모델이 데이터베이스 내에서 직접 실행될 수 있습니다.
  • 고가용성
    • AI 에이전트: 고가용성을 보장하려면 LangChain 기반 AI 에이전트를 서로 다른 장애 도메인 또는 가용성 도메인의 여러 컴퓨트 인스턴스에 배치해야 합니다. 확장성과 관리 용이성을 위해 OCI 인스턴스 풀을 사용하는 것이 좋습니다. OCI 로드 밸런서는 이러한 인스턴스 간에 트래픽을 분산하고 건전성 검사를 수행합니다.
    • 관리형 서비스: Autonomous Database, APEX Service, OCI Generative AI, OCI API Gateway 등의 기타 구성 요소는 내결함성 및 고가용성이 내장된 완전 관리형 서비스로서, 중복성을 위한 추가 구성이 필요하지 않습니다.
    • 재해 복구: 사이트 전체 중단에 대한 보호를 위해 Oracle Autonomous Data Guard가 데이터베이스를 다른 OCI 리전으로 복제할 수 있도록 합니다.
  • 보안 및 규제준수
    • 계층화된 보안 접근 방식: 다중 계층 보안 전략을 구현합니다. 여기에는 Oracle Cloud Infrastructure Web Application Firewall 사용 및 모든 서비스 상호 작용에 대한 최소 권한 원칙에 따른 네트워크 보안 조치가 포함되어야 합니다.
    • Fine-Grained Access Control: AI 프로파일을 통해 구현된 RBAC(역할 기반 액세스 제어) 외에도 데이터 액세스를 보다 세밀하게 제어하기 위해 VPD(가상 전용 데이터베이스) 정책을 사용하는 것이 좋습니다.

승인

  • 작성자: Mirjana Rakuljic, Shahvaiz Janjua, Sydney Nurse
  • 기여자: Robert Lies