분석가의 신뢰를 얻는 대화형 챗봇 설계 4가지

by DD
2시간 전
조회수 4

분석가의 매일 쓰는 도구를 만들기 위해 데이터 정확성, 속도, 신뢰성, 비용 4가지 핵심 속성 충족 필요

데이터 보호를 위해 DuckDB 샌드박싱과 Text2SQL LLM 연동, 속도 향상을 위해 세션마다 OLAP 엔진 상주

신뢰성 확보를 위해 SQL 투명성 제공 및 응답 스타일 강제, 비용 절감을 위해 멀티턴 LLM 호출 최적화

Outer Loop와 Inner Loop 워크플로를 분리하여 독립적인 인프라 운영 및 상호 영향 최소화

데이터 보호: DuckDB 샌드박싱과 LLM 연동

대화형 분석 챗봇에서 가장 중요한 데이터 정확성(Data Accuracy)보안성(Security)을 확보하기 위해, LLM이 생성한 SQL은 외부 접근이 차단된 DuckDB 샌드박스 환경에서 실행됩니다. 이 구조는 데이터 유출 경로(Data Leakage Path)를 원천적으로 차단하며, LLM의 환각(Hallucination)으로 인한 잘못된 쿼리 실행 시에도 데이터 격리 아키텍처(Data Isolation Architecture) 덕분에 안전성을 유지합니다. 사용자는 SQL을 직접 수정하고 실행할 수 있지만, 이는 샌드박스 내부에서만 유효하여 민감 데이터 보호를 강화합니다.

속도 향상: 세션 기반 OLAP 엔진 상주

분석가의 Inner Loop 경험을 위해 수백 밀리초(ms) 단위의 빠른 응답 속도를 제공하는 것이 핵심입니다. 이를 위해 각 세션마다 DuckDB 인메모리 OLAP 엔진을 상주시켜 쿼리 응답 시간(Query Response Time)을 수백 ms 수준으로 단축합니다. 이는 Outer Loop의 배치 처리 방식과 달리, 사용자의 반복적인 질문에 즉각적으로 반응하여 분석 흐름을 끊기지 않게 합니다. 상태 저장(Stateful) 세션 관리는 후속 요청이 동일한 DuckDB 인스턴스로 라우팅되도록 하여 성능 이점을 유지합니다.

신뢰성 확보: SQL 투명성 및 응답 스타일 강제

분석가의 신뢰를 얻기 위해 챗봇이 생성한 SQL 쿼리를 투명하게 노출하고, 사용자가 직접 수정 및 재실행할 수 있도록 지원합니다. 이는 SQL 직접 검증(Direct SQL Verification) 경로를 제공하여 결과의 투명성을 높입니다. 또한, LLM 응답 시 응답 스타일 강제(Response Style Enforcement) 기법을 통해 첫 문장을 구체적인 숫자로 시작하고 특정 표현 사용을 금지하여, 분석가가 결과를 명확하고 빠르게 이해하도록 돕습니다. 이는 데이터 기반 의사결정(Data-Driven Decision Making)의 정확성을 높이는 데 기여합니다.

비용 통제: 멀티턴 LLM 호출 최적화

수십 턴에 걸친 대화에서 발생하는 LLM 비용을 절감하기 위해 세 가지 기법을 적용합니다. 첫째, Bedrock Prompt Caching을 활용하여 멀티턴 대화에서 입력 토큰의 약 90%를 캐시로 처리하여 비용을 절감합니다. 둘째, 웰컴 화면 생성 시 LLM 호출 없이 스키마 기반 제안 질문을 즉시 생성합니다. 셋째, 후속 질문을 별도 LLM 호출 없이 같은 응답에 임베드하여 LLM 호출 횟수(LLM Call Count)를 최소화합니다. 이 기법들은 운영 비용(Operational Cost) 절감과 함께 사용자 경험을 향상시킵니다.

아키텍처 개요: Outer Loop와 Inner Loop 분리

대규모 배치 분석을 수행하는 Outer Loop와 분석가의 즉각적인 탐색을 지원하는 Inner Loop 챗봇은 별도의 ECS 서비스로 격리되어 운영됩니다. 이는 워크플로 간 간섭(Interference Between Workflows)을 방지하고 각 루프의 요구사항에 최적화된 아키텍처를 구축하기 위함입니다. CSV 데이터는 S3에 저장되며, 두 워크플로는 동일한 데이터셋을 공유하지만 독립적인 인프라 위에서 동작하여 상호 영향을 최소화합니다. 이는 시스템 안정성(System Stability)확장성(Scalability)을 동시에 확보하는 전략입니다.

Inner Loop 엔지니어링으로 본 Deep Insight Chatbot – 대화형 분석 챗봇의 4가지 설계 결정