▲ 대구교통공사 3호선 전력관제 장애 관리 통합 플랫폼 메인화면
RAG 기반 기술 지식 Q&A 시스템
이 프로그램은 기술 문서(JSON)와 사규 데이터를 기반으로 사용자의 질문에 대해 정확한 답변을 찾아주는 지능형 검색 시스템입니다. 단순 키워드 검색을 넘어, LLM이 검색된 문맥을 이해하고 종합적인 답변을 생성합니다.
- 강동우 (대구교통공사 3호선 경전철관제팀 전력관제)
- 본 프로젝트는 개발자 개인의 연구 결과물입니다.
- 2025.09: 통합 플랫폼 고도화 과정에서 LLM의 답변 정확도를 높이기 위해 개발되었습니다.
- 기술적 시도: 파인튜닝(Fine-tuning)만으로는 한계가 있어, 데이터셋을 **RAG(Retrieval-Augmented Generation)**로 활용하여 시너지를 내는 아이디어를 적용했습니다.
- 모델 선정:
gemma-3n-4eb와kanana모델 등을 테스트했으나 속도와 완성도 문제로 배제하고, 최종적으로unsloth로 파인튜닝된gemma-3n계열 모델을 채택하여 2025년 11월 사내 AI 경진대회 출품작의 핵심 기능으로 탑재되었습니다.
- 저사양 최적화: 고가의 GPU 서버 없이 일반 PC(i3-13100)에서 구동 가능한 RAG 시스템을 구현했습니다.
- 예산 절감: 상용 솔루션 도입 대신 1인 개발로 구축하여 막대한 예산 절감 효과를 거두었습니다.
- 지능형 검색: 질문의 의도를 파악하여 관련 지식 데이터 검색.
- AI 답변 생성: 검색된 지식을 바탕으로 Local LLM이 서술형 답변 작성.
- 데이터 관리: JSON 형태의 지식 데이터를 조회하고 관리(백업 포함).
- Python 3.8 이상
- Flask 프레임워크 (requirements.txt에 포함됨)
- Ollama 설치 및 실행 필수
답변 생성을 위해 아래 두 모델 중 하나를 반드시 Ollama에 설치(Pull)해야 합니다.
옵션 A (권장 - 고성능):
ollama run hf.co/unsloth/gemma-3n-E4B-it-GGUF:Q4_K_M옵션 B (경량 - 빠른 속도):
ollama run hf.co/unsloth/gemma-3n-E2B-it-GGUF:Q4_K_M본 시스템은 다음 사양에서 원활하게 구동되도록 최적화되었습니다.
- CPU: Intel Core i3-13100 이상
- RAM: 16GB 이상
- GPU: 불필요 (CPU 기반 구동 가능)
pip install -r requirements.txtpython server.py실행 후 브라우저에서 http://localhost:8009 로 접속하세요.
이 프로그램은 누구나 수정해서 사용할 수 있습니다.
- 제목 변경:
index.html파일을 열어 회사명이나 타이틀을 수정하세요. - 로고 변경: 폴더 내의
io.png(또는logo.png) 파일을 본인의 로고 파일로 교체(덮어쓰기)하면 됩니다. - 데이터 교체:
dataset_from_data_txt.json파일의 내용을 회사 내규, 기술 매뉴얼, Q&A 데이터 등으로 교체하면, 즉시 해당 지식에 특화된 검색 및 답변 시스템으로 활용할 수 있습니다.
본 프로그램은 독립적으로 실행되지만, 추후 공개될 **'장애 관리 통합 플랫폼'**의 일부 모듈입니다. 사용자는 이 모듈들을 결합하여 통합 시스템으로 구축할 수 있으며, 통합된 전체 버전 또한 추후 오픈소스로 공개될 예정입니다.
server.py: Flask 기반의 백엔드 서버.dataset_from_data_txt.json: 기술 지식 데이터베이스 (샘플: 로봇 유지보수 매뉴얼).index.html: 사용자 검색 인터페이스.
- 배포 버전에는 보안을 위해 로봇 팔 유지보수 관련 가상 데이터가 포함되어 있습니다.
- 현업 적용 시
dataset_from_data_txt.json파일을 실제 기술 문서나 매뉴얼 데이터로 교체하시기 바랍니다.
