Skip to content

aremany/DTRO-Knowledge-Searcher

Repository files navigation

🧠 지식 검색기 (Knowledge Search System)

DTRO Logo

▲ 대구교통공사 3호선 전력관제 장애 관리 통합 플랫폼 메인화면 ▲ 대구교통공사 3호선 전력관제 장애 관리 통합 플랫폼 메인화면

RAG 기반 기술 지식 Q&A 시스템

이 프로그램은 기술 문서(JSON)와 사규 데이터를 기반으로 사용자의 질문에 대해 정확한 답변을 찾아주는 지능형 검색 시스템입니다. 단순 키워드 검색을 넘어, LLM이 검색된 문맥을 이해하고 종합적인 답변을 생성합니다.

👤 개발자

  • 강동우 (대구교통공사 3호선 경전철관제팀 전력관제)
  • 본 프로젝트는 개발자 개인의 연구 결과물입니다.

📜 개발 배경 및 히스토리

  • 2025.09: 통합 플랫폼 고도화 과정에서 LLM의 답변 정확도를 높이기 위해 개발되었습니다.
  • 기술적 시도: 파인튜닝(Fine-tuning)만으로는 한계가 있어, 데이터셋을 **RAG(Retrieval-Augmented Generation)**로 활용하여 시너지를 내는 아이디어를 적용했습니다.
  • 모델 선정: gemma-3n-4ebkanana 모델 등을 테스트했으나 속도와 완성도 문제로 배제하고, 최종적으로 unsloth로 파인튜닝된 gemma-3n 계열 모델을 채택하여 2025년 11월 사내 AI 경진대회 출품작의 핵심 기능으로 탑재되었습니다.

💰 개발 성과 (Value)

  • 저사양 최적화: 고가의 GPU 서버 없이 일반 PC(i3-13100)에서 구동 가능한 RAG 시스템을 구현했습니다.
  • 예산 절감: 상용 솔루션 도입 대신 1인 개발로 구축하여 막대한 예산 절감 효과를 거두었습니다.

🌟 주요 기능

  • 지능형 검색: 질문의 의도를 파악하여 관련 지식 데이터 검색.
  • AI 답변 생성: 검색된 지식을 바탕으로 Local LLM이 서술형 답변 작성.
  • 데이터 관리: JSON 형태의 지식 데이터를 조회하고 관리(백업 포함).

⚙️ 설치 및 실행 방법

1. 필수 요구 사항

  • Python 3.8 이상
  • Flask 프레임워크 (requirements.txt에 포함됨)
  • Ollama 설치 및 실행 필수

2. LLM 모델 준비 (필수)

답변 생성을 위해 아래 두 모델 중 하나를 반드시 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

3. 최소 하드웨어 사양 (Minimum Specs)

본 시스템은 다음 사양에서 원활하게 구동되도록 최적화되었습니다.

  • CPU: Intel Core i3-13100 이상
  • RAM: 16GB 이상
  • GPU: 불필요 (CPU 기반 구동 가능)

4. 패키지 설치

pip install -r requirements.txt

5. 실행

python 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 파일을 실제 기술 문서나 매뉴얼 데이터로 교체하시기 바랍니다.

About

대구교통공사(DTRO (대구 교통 공사, 지하철, 공공기관, metro, 철도)) 3호선 전력관제 지식 검색기(RAG 기반 사규/매뉴얼 지식 검색 시스템)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors