AI-Powered Public Rental Housing Search Platform
AI 기반 공공임대주택 검색 플랫폼
Demo • Features • Architecture • Repositories • Tech Stack • Getting Started
demo_video_compressed.mp4
Ask questions in natural language and get personalized public housing recommendations.
자연어로 질문하면 맞춤형 공공임대주택을 추천받을 수 있습니다.
Explore available housing on an interactive map with filters for region, price, and size.
지역, 가격, 면적 필터와 함께 인터랙티브 지도에서 주택을 탐색하세요.
Daily automated crawling of SH and LH housing announcements with AI-powered information extraction.
SH, LH 공고를 매일 자동 크롤링하고 AI로 정보를 추출합니다.
┌─────────────────────────────────────────────────────────────────────────┐
│ Jibchack Platform │
└─────────────────────────────────────────────────────────────────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Data-ETL │ │ Embedding │ │ jibchack │
│ Pipeline │ │ chatBot │ │ -backend │
│ │ │ │ │ │
│ • SH/LH │ │ • RAG Engine │ │ • REST API │
│ Crawling │ ───▶ │ • pgvector │ ───▶ │ • LLM Service │
│ • Airflow │ │ • Embeddings │ │ • Search API │
│ • AI Extract │ │ │ │ │
└─────────────────┘ └─────────────────┘ └────────┬────────┘
│
▼
┌─────────────────┐
│ streamlit │
│ -homepage │
│ │
│ • Chat UI │
│ • Map View │
│ • Filters │
└─────────────────┘
│
▼
[ Users ]
| Repository | Description | Tech Stack |
|---|---|---|
| Data-ETL-Pipeline | Automated data collection from SH/LH websites with AI-powered information extraction | Apache Airflow, Selenium, BeautifulSoup, Upstage API |
| Embedding_chatBot | RAG-based chatbot engine with vector search capabilities | FastAPI, pgvector, LangChain, Redis |
| jibchack-backend | Main API server providing housing data and chat services | FastAPI, SQLAlchemy, Upstage Solar LLM |
| streamlit-homepage | User-friendly web interface with chat and map features | Streamlit, Folium, Kakao Maps API |
- Upstage Solar Pro2 - Korean-optimized Large Language Model
- Upstage Embeddings - Text embedding for semantic search
- LangChain - LLM orchestration framework
- FastAPI - High-performance Python web framework
- PostgreSQL - Relational database
- pgvector - Vector similarity search extension
- SQLAlchemy - Python ORM
- Redis - Session and cache management
- Streamlit - Python web app framework
- Folium - Interactive map visualization
- Kakao Maps API - Geocoding service
- Apache Airflow - Workflow orchestration
- Selenium - Dynamic web crawling
- BeautifulSoup - HTML parsing
- Docker - Containerization
- Docker Compose - Multi-container orchestration
- Python 3.11+
- Docker & Docker Compose
- PostgreSQL with pgvector extension
- Upstage API Key
# Clone all repositories
git clone https://github.com/YOUR_ORG/Data-ETL-Pipeline.git
git clone https://github.com/YOUR_ORG/Embedding_chatBot.git
git clone https://github.com/YOUR_ORG/jibchack-backend.git
git clone https://github.com/YOUR_ORG/streamlit-homepage.git1. Data Pipeline (Airflow - Port 8081)
cd Data-ETL-Pipeline
cp .env.example .env # Configure environment variables
docker-compose up -d
# Access Airflow UI: http://localhost:80812. Backend API (FastAPI - Port 8000)
cd jibchack-backend/backend
cp .env.example .env # Configure environment variables
docker-compose up -d
# API available at: http://localhost:80003. Frontend (Streamlit - Port 8501)
cd streamlit-homepage
cp .env.example .env # Configure environment variables
docker-compose up -d
# Access UI: http://localhost:8501For detailed setup instructions, please refer to each repository's README.
This project is licensed under the MIT License - see the LICENSE file for details.
집착(Jibchack) 은 공공임대주택 정보를 AI로 쉽게 검색할 수 있는 플랫폼입니다.
SH(서울주택도시공사)와 LH(한국토지주택공사)의 공공임대주택 공고를 자동으로 수집하고, AI 챗봇을 통해 자연어로 검색할 수 있습니다.
| 기능 | 설명 |
|---|---|
| AI 챗봇 | "청년이 신청할 수 있는 임대주택 알려줘" 같은 자연어 질문으로 맞춤 추천 |
| 지도 검색 | 원하는 지역의 공공임대주택을 지도에서 한눈에 확인 |
| 자동 수집 | 매일 SH/LH 공고를 자동으로 크롤링하고 AI로 정보 추출 |
| 실시간 응답 | 스트리밍 방식으로 빠른 채팅 응답 제공 |
- Upstage Solar Pro2: 한국어에 최적화된 대형 언어 모델 사용
- RAG 아키텍처: 검색 증강 생성으로 정확한 정보 제공
- 하이브리드 검색: 벡터 유사도(70%) + 키워드 매칭(30%) 결합
- 자동화 파이프라인: Apache Airflow로 매일 자동 데이터 수집
upstage/
├── Data-ETL-Pipeline/ # 데이터 수집 파이프라인
├── Embedding_chatBot/ # RAG 챗봇 엔진
├── jibchack-backend/ # API 백엔드 서버
└── streamlit-homepage/ # 웹 프론트엔드
SH 공사: 국민공공임대주택, 도시형생활주택, 매입임대주택, 장기안심주택, 장기전세주택, 청년안심주택, 행복주택 등
LH 공사: 국민임대, 공공임대, 영구임대, 행복주택, 매입임대 등
- Python 3.11 이상
- Docker & Docker Compose
- PostgreSQL (pgvector 확장 포함)
- Upstage API 키
각 레포지토리의 .env.example 파일을 참고하여 환경 변수를 설정하세요.
# 주요 환경 변수
UPSTAGE_API_KEY=your_api_key
DB_HOST=localhost
DB_NAME=sh_housing_db
DB_USER=postgres
DB_PASSWORD=your_password1. 데이터 수집 파이프라인 (Airflow - 포트 8081)
cd Data-ETL-Pipeline
cp .env.example .env # 환경 변수 설정
docker-compose up -d
# Airflow UI: http://localhost:8081 (기본 계정: admin/admin)2. 백엔드 API 서버 (FastAPI - 포트 8000)
cd jibchack-backend/backend
cp .env.example .env # 환경 변수 설정
docker-compose up -d
# API 문서: http://localhost:8000/docs3. 프론트엔드 (Streamlit - 포트 8501)
cd streamlit-homepage
cp .env.example .env # 환경 변수 설정
docker-compose up -d
# 웹 UI: http://localhost:8501# 각 디렉토리에서
docker-compose down| 역할 | 이름 | GitHub |
|---|---|---|
| 팀장 | 박태영 | @taeyoung1005 |
| 팀원 | 허예진 | @dpqhd01 |
| 팀원 | 신재영 | @LimePencil |
| 팀원 | 이재용 | @Sharon0320 |
| 팀원 | 박다영 | @bydayoung |
Made with Upstage Solar API
