Skip to content

Lang2SQL Streamlit 페이지 코드 모듈화 및 역할 분리 #182

@ParkGyeongTae

Description

@ParkGyeongTae

개요

기존 interface/app_pages/lang2sql.py 파일은 쿼리 실행, 결과 표시, 세션 그래프 초기화 로직이 모두 한 파일에 포함되어 있어 유지보수와 가독성이 떨어지는 문제가 있었습니다. 이를 해결하기 위해 기능 단위로 모듈을 분리했습니다.

주요 변경 사항

lang2sql_runner.py (실행 모듈)

자연어 질의를 SQL로 변환하고 DB에서 실행하는 로직을 run_lang2sql 함수로 분리
내부적으로 engine.query_executor.execute_query를 호출하여 파이프라인 실행을 단순화

result_renderer.py (결과 표시 모듈)

Streamlit UI에 결과(SQL, 표, 차트, 토큰 사용량 등)를 출력하는 기능을 별도 모듈로 분리
토큰 사용량, 문서 적합성 평가, 질문 게이트 결과, 참고 테이블 목록 등을 옵션에 따라 표시 가능

session_utils.py (세션 유틸리티 모듈)

Streamlit 세션 상태에서 그래프 빌더를 초기화하는 init_graph 함수로 분리
기본/확장 그래프를 동적으로 선택하고 세션 상태에 저장

기대 효과

유지보수성 향상: UI, 실행, 결과 표시, 세션 초기화가 명확히 구분되어 각 모듈을 독립적으로 관리 가능
가독성 개선: Streamlit 페이지 코드(lang2sql.py)가 UI 중심으로 단순화
확장성 강화: 검색기 추가, 결과 표시 형식 확장, 그래프 빌더 개선 시 다른 모듈에 영향을 최소화

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions