이 프로젝트는 부산 지역의 복지 정책 및 음식점 정보를 신속‧정확하게 검색할 수 있는 RAG 기반 검색엔진이다. Apache Spark로 대용량 데이터를 처리하고, Elasticsearch를 통해 유사도 검색 및 색인 관리가 가능합니다.
여러분들이 이해기 쉽게 다른 문서를 만들어서 여기에 기록을 해놨고 챗봇을 제작하기 위한 프론폼트나 어떻게 코드를 작성햇는지에 대한 내용도 포함되어 있습니다!
EASY_GUIDE.md → 더 쉽게 이해할 수 있도록 비유를 활용해 설명한 문서입니다.
raspberrypi.md → 라즈베리파이 환경에서도 실행될 수 있도록 어떤 부분을 수정했는지 정리했습니다.
Chatbot.md → 챗봇에 적용하기 위해 제가 작성한 프롬프트가 담겨 있습니다.
LLM_INTEGRATION.md → 서버 구성 과정과 고려한 다양한 상황, 그리고 선택할 수 있는 옵션들을 정리했습니다.
- 대용량 데이터 처리: Apache Spark 활용으로 PDF, JSON 등 다양한 데이터를 효율적으로 전처리 및 임베딩 생성
- 강력한 검색 인덱스: Elasticsearch에 문서 임베딩을 저장하여 빠른 유사도 및 키워드 검색 지원
- 복지 정책 정보 검색: 부산의 최신 복지 정책 문서를 PDF에서 추출 및 색인 후 검색 제공
- 음식점 정보 및 리뷰: 부산 음식점 관련 상세 정보 및 리뷰 제공
- 환각 방지: RAG 구조로 LLM의 모든 답변을 실제 데이터로 검증 가능하게 처리
- 모듈형·확장형 설계: 기능별 폴더 구조와 코드 분리를 통해 유지관리 및 확장이 용이함
검색엔진 주요 처리 흐름은 다음과 같다:
- 데이터 적재: PDF, JSON 등 자료를 시스템에 넣음
- 데이터 처리 및 임베딩: Spark로 데이터 정제 후 벡터 임베딩 생성
- 색인: 생성된 임베딩과 데이터 내용을 Elasticsearch에 저장
- 검색 및 정보반환: 사용자의 질의가 들어오면 유사한 문서를 검색해서 LLM이 컨텍스트를 생성
- 답변 생성: 검색된 자료 기반으로 LLM이 사실 기반의 답변을 생성
/
├── data/
│ ├── 2025년도_복지시책안내.md
│ ├── 2025년도_복지시책안내.pdf
│ ├── 2025년도_복지시책안내.txt
│ └── chunk_ver.txt
├── docs/
├── src/
│ ├── data_processing/
│ │ └── main.py
│ ├── spark_processing/
│ │ └── process.py
│ ├── elasticsearch/
│ │ └── client.py
│ └── main.py
├── requirements.txt
└── README.md
- Git 저장소를 클론하세요:
git clone https://github.com/leehojun/busan_search_engine.git
- 프로젝트 디렉토리로 이동하세요:
cd busan_search_engine - 의존성 설치:
pip install -r requirements.txt
- 데이터 파일을
data/폴더에 넣으세요. - Spark 전처리 만실행:
spark-submit src/spark_processing/process.py
- opensearch 백터 스토어 저장까지 실행:
python src/main.py
- 다양한 파일 포맷(PDF, JSON, Excel) 데이터 로더 구현
- Spark 기반 데이터 처리/임베딩 파이프라인 개발
- Elasticsearch 색인/검색 로직 구현
- 질의 및 Retrieval 시스템 구축
- LLM 연동 및 응답 생성 기능 개발
- CLI/웹 기반 UI 개발
기여는 언제나 환영합니다! PR 제출로 참여해 주세요.# Busan_search_engine