한 줄 결론

현재 Excel 첨부 RAG는 행을 텍스트로 임베딩하는 수준이므로, 시트/컬럼/타입/통계를 보존한 계산형 질의에는 부족하다. 기존 Ask Hyobee 채팅/파일/SSE 흐름은 유지하되, Excel만 ExcelAnalysis 전용 경로로 분기하고, LLM이 만든 분석 계획을 SQL Guard로 검증한 뒤 DuckDB 계열 엔진에서 계산하는 구조가 맞다.

드래그/줌 가능한 핵심 흐름

드래그로 이동 · 마우스 휠로 확대/축소 · 구조분석 분기 표시 Excel 전용 LLM 계획 검증/계산
100%
flowchart TD
  %% Structure-analysis branch is the main decision point.

  A["1. 업로드
사용자가 Excel 첨부"] --> B{"2. 양식 판별
고정 양식인가?"} B -->|예: 효성 표준/샘플 양식| C1["템플릿 파서
정해진 시트 / 헤더 / 컬럼 매핑"] B -->|아니오: 사람마다 다른 양식| C2["가변 구조 추론
테이블 영역 / 헤더 / 병합셀 추정"] C2 --> C3{"확신도 충분?"} C3 -->|낮음| C4["사용자 확인
헤더행 / 분석 범위 / 주요 컬럼 선택"] C3 -->|높음| D["Workbook Profile
시트 / 컬럼 / 타입 / 통계 / 경고"] C4 --> D C1 --> D D --> E["3. 질문 이해
LLM이 SQL/분석계획 생성"] E --> F["4. 검증 + 계산
SQL Guard 후 DuckDB 실행"] F --> G["5. 답변
표 / 요약 / 근거 / 이상치"] D --> H["저장
Workbook / Sheet / Column Profile"] F --> I["로그
질문 / SQL / 결과 / 오류"] H --> J["Admin
템플릿 / 용어사전 / 실행 로그"] I --> J K["기존 첨부 RAG
문서 검색용"] -. "Excel 분석과 분리" .-> A L["LiteLLM Gateway
LLM 호출 경로"] -. "계획 생성만 담당" .-> E classDef user fill:#eef3ff,stroke:#6b8cff,color:#2f3440,stroke-width:1.8px; classDef excel fill:#e7fff4,stroke:#2fa66f,color:#173b2a,stroke-width:2.6px; classDef llm fill:#f1e9ff,stroke:#8c63da,color:#332057,stroke-width:2px; classDef guard fill:#fff1d6,stroke:#d2881e,color:#4a2d08,stroke-width:2.4px; classDef data fill:#eef8ff,stroke:#3b95d1,color:#17384e,stroke-width:1.7px; classDef admin fill:#fff0f3,stroke:#d94b64,color:#4f1823,stroke-width:1.9px; classDef decision fill:#fff9db,stroke:#c99a16,color:#3d2c03,stroke-width:2.4px; classDef muted fill:#f4f6fb,stroke:#8792a8,color:#2f3440,stroke-width:1.4px; class A user; class B,C3 decision; class C1,C2,C4,D,G excel; class E,L llm; class F guard; class H,I data; class J admin; class K muted;
포인트: 구조분석은 양식이 고정인지 가변인지에 따라 달라진다. 고정 양식은 템플릿 파서로 바로 Profile을 만들고, 가변 양식은 구조 추론과 사용자 확인 단계가 추가될 수 있다.

왜 기존 Excel RAG로 부족한가

현재 방식

텍스트 청크 + 임베딩

  • 행을 문자열로 이어 붙여 검색한다.
  • 시트/헤더/컬럼 타입/병합 셀 의미가 약해진다.
  • 합계, 평균, 정렬, 조건 집계를 재현하기 어렵다.
  • LLM이 숫자를 직접 계산하면 오류와 환각 위험이 커진다.
권장 방식

구조화 Profile + SQL 실행

  • Workbook, Sheet, Column, Metric 구조를 보존한다.
  • LLM은 질문을 분석 계획과 SQL로 바꾼다.
  • 계산은 DuckDB 계열 엔진이 수행한다.
  • 응답에 사용 시트, 컬럼, 필터, SQL, 경고를 표시한다.

ExcelAnalysis 처리 단계

Step 1
Workbook Parser

Excel 파일을 열고 시트 목록, raw grid, 병합 범위, dimension을 추출한다.

Step 2
Sheet Normalizer

다중 헤더와 병합 셀을 복원하고 wide 보고서는 long format으로 변환한다.

Step 3
Workbook Profile

시트/컬럼/타입/샘플/통계/경고를 생성해 분석 가능한 상태로 만든다.

Step 4
Schema Context

LLM에 원본 전체가 아니라 압축된 구조와 프로파일만 전달한다.

Step 5
Query Planner

자연어 질문을 AnalysisPlan, SQL, clarification 여부로 구조화한다.

Step 6
SQL Guard + Execute

SELECT-only, 컬럼 allowlist, LIMIT, timeout 검증 후 DuckDB에서 실행한다.

Step 7
Response Composer

결과 표, 자연어 요약, 인사이트, 이상치, 근거 SQL을 대화에 반환한다.

구현 범위 요약

유지

기존 채팅 흐름

Ask Hyobee 대화, 파일 업로드, SSE 스트리밍, 사용자 인증 흐름은 유지한다.

신규

ExcelAnalysis API

Workbook profile, 자연어 질의, SQL 실행, 결과 근거 표시를 담당한다.

운영

Excel Agent Admin

파서 템플릿, 컬럼/용어사전, 샘플 테스트, 실행 로그를 관리한다.

주의

가변 Excel

모든 자유 양식 자동 해석은 2차 PoC로 분리하고 MVP는 샘플/반정형 중심으로 잡는다.

Excel Agent / Admin 화면에서 보여줄 내용

필수 중요 옵션 범위 주의 RAGAS Admin 요구사항 표와 같은 방식으로, 화면에 표시할 정보와 필요한 데이터/API를 분리했다.
화면/메뉴 사용자에게 보여줄 내용 요구사항 근거 필요 데이터/API 우선순위/구분
채팅: Excel 업로드 상태 파일명, 크기, 확장자, 업로드/검증/파싱/프로파일링/완료/실패 상태를 단계별로 보여준다. 실패 시 허용 확장자, 크기 제한, 보안 검사 실패 사유를 표시한다. XLS-001, XLS-008, work-brain Excel Agent 4.4 업로드 상태 file validation API, upload session, workbook status, file policy 필수 사용자 채팅
채팅: 파일 구조 요약 시트 수, 시트별 행/열 수, 헤더 후보, 데이터 시작 행, 주요 컬럼, 수치 컬럼, 경고를 첫 자동 응답으로 보여준다. FR-001, XLS-002, XLS-003, 효성 요구 “시트별 구조 설명” WorkbookProfile, SheetProfile, ColumnProfile, parser warning 필수 Excel Agent Core
채팅: 양식 판별 결과 업로드 파일이 효성 표준/샘플 양식인지, 사람마다 다른 가변 양식인지 표시한다. 가변 양식이면 추론 확신도와 사용자 확인 필요 여부를 보여준다. 고정 스키마 vs 임의 Excel 한계, work-brain 4.5, WBS Excel-A/B/C 옵션 template match score, parser profile, confidence score, confirmation request 필수 범위 결정 핵심
채팅: 시트/범위 확인 질문 대상 시트, 분석 범위, 헤더행, 제외된 빈 행/열, 병합 셀 처리 결과를 보여주고 확신도가 낮으면 사용자가 수정할 수 있게 한다. XLS-007, XLS-008, 효성 샘플 재무보고서 다중헤더/병합 이슈 sheet range detector, header candidate list, merged cell metadata, user confirmation API 중요 가변 양식 대응
채팅: 자연어 질의 결과 조건별 집계/비교/정렬 결과를 표로 보여주고, 자연어 요약, 사용한 필터, 정렬 기준, 결과 row 수를 함께 표시한다. FR-003, FR-004, FR-006, LG AI Chat Function Calling 패턴 AnalysisPlan, SQL result, DuckDB execution result, result table renderer 필수 Excel Agent Core
채팅: 근거/SQL 패널 답변에 사용된 시트, 컬럼, 조건, 생성 SQL, SQL Guard 통과 여부, 실행 시간, LLM 모델을 접이식 근거 패널로 제공한다. XLS-009, LG “판단 근거 표시”, SQL 환각 대응 safe SQL, allowlist validation, execution log, LiteLLM metadata 필수 신뢰성/검수
채팅: 인사이트/이상치 합계/평균/최대/최소/분위수, 급증/급감, IQR/Z-score 기반 이상치 후보와 “업무 의미는 확인 필요” 경고를 함께 보여준다. FR-005, work-brain Excel Agent 품질 지표, 기술조사 이상치 범위 numeric stats, outlier detector, insight summary, warning policy 중요 분석 보강
채팅: 결과 다운로드 분석 결과 표를 CSV/Excel로 다운로드하고, 필요 시 원본 미리보기 또는 결과 시트 렌더링을 제공한다. work-brain 4.4, LG Univer.js/대용량 표 렌더링/다운로드 경험 result export job, CSV/XLSX generator, table renderer, permission check 중요 LG 자산 활용
Admin: Overview 활성 상태, 최근 호출 수, 파싱 성공률, SQL 실행 성공률, 평균 처리시간, 실패율, 최근 오류, 샘플 테스트 통과율을 보여준다. AGT-005, AGT-006, FR-009, work-brain 5.4 Admin 대시보드 agent health, execution summary, parser metrics, SQL metrics, recent error API 필수 Excel Agent Admin
Admin: Agent 등록/메타 Agent명, endpoint URL, 인증 방식, 목적, 담당 업무, 버전, 담당자, 소유 조직, 상태를 등록/수정/비활성화한다. AGT-001~AGT-004, agent-management FR-001~004 AgentRegistry, endpoint config, owner/team, status, audit log 필수 운영 관리
Admin: 파일/파싱 정책 허용 확장자, 최대 파일 크기, 시트/행/열 제한, 병합 셀 처리, 헤더 추론 방식, 원본 저장/보관/마스킹 정책을 설정한다. XLS-008, work-brain Excel Agent 제약/NFR, 착수 전 확인사항 file policy, parser policy, retention policy, masking policy, config history 필수 보안/범위
Admin: 템플릿/구조분석 관리 효성 표준/샘플 양식 템플릿, 시트 family, 헤더행, 데이터 시작 행, 컬럼 매핑, wide-to-long 규칙을 관리하고 미리보기로 검증한다. LG config 기반 파서, WBS Excel-A/B/C, 고정/통제형 변동 대응 parser template, sheet family, column mapping, preview API, sample workbook 필수 구조분석 핵심
Admin: 용어사전/컬럼 매핑 현업 용어, 계정과목, 사업부/조직명, 동의어, 컬럼 alias를 관리해 자연어 질문과 실제 컬럼을 연결한다. FR-002, LG Glossary/AIKnowledge/KnowledgePack 재사용 glossary, column alias, domain dictionary, AgentKnowledgeBinding 중요 정확도 향상
Admin: SQL/프롬프트 정책 schema_context 템플릿, Text2SQL 프롬프트, SELECT-only, 컬럼 allowlist, 기본 LIMIT, timeout, 금지 함수/쿼리 정책을 관리한다. LLM은 계산 X, SQL Guard 필수, LG Function Calling/제한 함수 세트 패턴 prompt version, SQL guard rule, allowlist, timeout config, model config 필수 안전 실행
Admin: 실행 이력/오류 로그 사용자, 파일명, 시트 수, 질문, 생성 SQL, 상태, latency, token, 비용, 파싱/매핑/SQL/LLM 오류와 재시도 결과를 조회한다. AGT-006, AGT-007, agent-management FR-006~007 ExecutionLog, parser error, SQL error, LiteLLM spend metadata, retry log 필수 장애 분석
Admin: 샘플 테스트/회귀 효성 샘플 Excel 3~5개와 대표 질문 세트를 등록하고, 파싱/컬럼 매핑/SQL/계산 결과를 수동 실행해 이전 결과와 비교한다. work-brain 샘플 파일 3종, Excel Agent Admin 샘플 테스트, LG 파서 config 검증 golden workbook, golden query set, expected result, regression run, diff report 중요 품질 관리
Admin: 품질 지표 파싱 성공률, 헤더 인식 성공률, SQL 생성/실행 성공률, 계산 검증 통과율, 컬럼 매핑 정확도, 근거 표시율, 사용자 피드백을 보여준다. FR-009, work-brain 5.4 Excel Agent 품질지표, CTO Agent별 평가 분리 멘트 quality metric table, feedback log, validation result, summary view 필수 RAGAS와 분리
Admin: 권한/보안 조직/사용자별 Excel Agent 사용 권한, 관리자 권한, 원본/결과/payload 상세 조회 권한, 감사 로그를 관리한다. AGT-004, 민감 데이터 처리 정책, 원본 서버 저장 여부 확인사항 role policy, permission API, payload scope, audit log, retention config 필수 보안
Admin: LiteLLM 사용량 연계 Excel Agent 요청별 모델, token, latency, 비용을 LiteLLM 사용량과 연결해 보여준다. 기능정의서 필수라기보다 운영 옵션으로 둔다. AGT-008, LLM-001/002, LiteLLM Admin 조사 “Excel/RAGAS 연계 비용” LiteLLM spend log, service metadata, model config, cost table 옵션 L1 연계
Admin: RAGAS 메뉴 연결 같은 IBee Admin 안에서 RAGAS Assessment로 이동할 수 있게 하되, Excel Agent 품질지표와 RAGAS 4대 metric은 명확히 분리해 표시한다. work-brain RAGAS/Excel 독립 정리, RAGAS Dashboard 범위, CTO 평가 방식 분리 멘트 Admin navigation, service taxonomy, RAGAS eval summary link 범위 주의 메뉴 통합만

핵심 컴포넌트와 저장 데이터

영역 무엇을 만든다 왜 필요한가
WorkbookProfile 파일명, fingerprint, 시트 수, 상태, parser version 동일 파일 재분석 방지, 대화 이력 연결, 운영 로그 기준
SheetProfile 시트명, row/column count, sheet type, header/data range, warnings 질문 대상 시트를 고르고 구조 설명 응답을 만든다.
ColumnProfile 원본 헤더, safe name, 타입, 샘플, null ratio, unique, 통계 컬럼 의미 요약, Text2SQL, 이상치 탐지의 근거가 된다.
AnalysisPlan 질문 intent, 대상 시트/컬럼, SQL, clarification 여부 LLM 응답을 실행 가능한 형태로 통제한다.
ExecutionLog 질문, SQL, 결과 row 수, latency, token, error Admin 모니터링, 장애 분석, 품질 개선에 필요하다.

MVP와 단계별 로드맵

Phase 0

결정/PoC

서버 처리 허용 여부, 원본 저장 정책, 샘플 3종 정밀 분석, DuckDB/WASM PoC를 확정한다.

Phase 1

Workbook Profile MVP

Excel 업로드 후 시트별 구조 요약, 컬럼 프로파일, 경고, 첫 자동 응답을 만든다.

Phase 2

자연어 질의와 SQL 실행

schema_context, Query Planner, SQL Guard, DuckDB 실행, 결과 표/근거 표시를 구현한다.

Phase 3

Insight와 반정형 고도화

이상치, 계획 대비 차이, wide-to-long, 다중 헤더/병합 셀 처리를 고도화한다.

Phase 4

운영 Admin과 품질관리

Agent 설정, parser template, 용어사전, 실행 로그, Golden query set, LiteLLM usage 연계를 붙인다.

리스크와 대응

범위 리스크

모든 Excel 자동 해석

MVP는 효성 샘플 손익/재무 파일과 반정형 테이블 중심으로 제한하고, 완전 가변 자동 추론은 2차 PoC로 분리한다.

정확도 리스크

LLM SQL 환각

LLM이 만든 SQL은 바로 실행하지 않고 SELECT-only, 컬럼 allowlist, LIMIT, timeout으로 검증한다.

보안 리스크

재무/민감 데이터

원본 저장 여부, 보관 기간, 마스킹, LLM 전달 범위를 초기에 확정한다. 원본 전체를 LLM에 넘기지 않는다.

확인 필요 사항

질문 영향
원본 Excel 서버 저장이 허용되는가? Server-orchestrated MVP 가능 여부와 local-first PoC 우선순위가 결정된다.
지원 파일은 `.xlsx/.xlsm` 중심인가, `.xls`도 필수인가? parser, 보안 검사, legacy 파일 처리 범위가 달라진다.
샘플 3개가 대표 템플릿인가? MVP parser template과 검수 질문 세트를 확정할 수 있다.
Excel Agent Admin을 별도 Hyosung Admin 메뉴로 둘 수 있는가? LiteLLM Admin fork 여부와 UI 구현 범위가 결정된다.
용어사전/계정과목/사업부 기준 데이터가 제공되는가? 컬럼 의미 요약과 자연어 컬럼 매핑 정확도에 직접 영향을 준다.