피드로 돌아가기
Dev.toAI/ML
원문 읽기
Llama 3 기반 Local AI Agent를 활용한 데이터 유출 제로의 DB 질의 시스템 구축
I Built a Local AI That Queries My Database — No Cloud. No Legal Panic. No Compromise.
AI 요약
Context
내부 데이터베이스의 자연어 질의 요구사항이 존재했으나, 외부 Cloud LLM 사용 시 직원 급여 정보 등 민감 데이터가 외부 서버로 전송되는 보안 및 컴플라이언스 리스크 발생. 단순 Prompt Chain 구조는 SQL 생성 오류 시 복구 경로가 없어 시스템 전체가 중단되는 한계 노출.
Technical Solution
- Llama 3, Ollama, LangChain, SQLite 조합의 Fully Local Stack 구성을 통한 데이터 망 분리 및 보안성 확보
- 단순 질의 구조에서 ReAct Agent 아키텍처로 전환하여 모델이 실행 결과(Error)를 읽고 스스로 SQL을 수정하는 Self-Correction 루프 구현
sample_rows_in_table_info=2설정을 통해 스키마 정보 외 실제 데이터 샘플을 Context에 주입하여 데이터 포맷 이해도 향상sqlparse라이브러리를 활용한 SELECT 쿼리 강제 검증 로직을 구축하여 데이터 변경 및 삭제 위험을 원천 차단include_tables옵션을 통한 스키마 범위 제한으로 Llama 3(8B)의 8,192-token Context Window 제약 사항 해결
실천 포인트
1. Local LLM 도입 시 첫 쿼리 로딩 시간(최대 45초)을 고려한 타임아웃 설정 확인
2. LLM의 Hallucination 방지를 위해 최소 2개 이상의 Table JOIN 테스트 케이스 검증
3. 복잡한 비즈니스 로직이나 5~6개 이상의 Table JOIN 필요 시 70B 모델 또는 Llama
3.1(128k Context) 검토
4. SQLAlchemy URI 작성 시 SQLite 경로의 슬래시 3개(`sqlite:///`) 규칙 준수로 OperationalError 방지