jhhackaton/docs/project_plan.md

66 lines
1.9 KiB
Markdown

# 부동산 검색 프로젝트 계획
## 프로젝트 개요
- **목적**: FastAPI와 OpenAI를 이용한 부동산 검색 웹사이트
- **주요 기능**: 자연어 입력을 받아 OpenAI로 파싱 후 부동산 정보 추출
## 기술 스택
- **Backend**: Python, FastAPI, OpenAI API
- **Frontend**: HTML, CSS, JavaScript
- **NLP**: OpenAI GPT API
## 폴더 구조
```
C:\o2o\RealEstateSearch\
├── docs/
│ ├── project_plan.md
│ ├── project_logs.txt
│ └── api_guide.md
├── backend/
│ ├── main.py (FastAPI 서버)
│ ├── openai_parser.py (OpenAI 파싱 + 지역코드 변환)
│ ├── models.py (데이터 모델)
│ └── public_data_api.py (공공데이터 API 클라이언트)
├── frontend/
│ ├── index.html
│ ├── style.css
│ └── script.js
├── data/
│ └── region_codes.json (시군구 코드)
├── requirements.txt
├── .env (API 키 저장)
├── .gitignore (Git 제외 파일)
└── README.md
```
## 작업 단계
- [x] 프로젝트 폴더 구조 생성
- [x] 프로젝트 계획서 작성
- [x] FastAPI 백엔드 개발
- [x] OpenAI 파싱 로직 구현
- [x] 프론트엔드 개발
- [x] README.md 업데이트
- [x] 지역 코드 변환 기능
- [x] 공공데이터 API 연동
- [x] 실거래가 표시 UI
- [x] 불필요한 코드 정리
## API 엔드포인트
### 1. GET `/`
- 메인 페이지 (index.html) 제공
### 2. POST `/api/search`
- 자연어 검색 및 실거래가 조회
- AI 필터링 옵션 (filter_results 파라미터)
- 요청: `{"text": "강남 아파트 전세 3억"}`
- 응답: 파싱 결과 + 실거래가 목록 (필터링 포함)
### 3. POST `/api/filter`
- 공공데이터 결과를 OpenAI로 필터링
- 사용자 요구사항과 가장 일치하는 매물 선별
- 파라미터: user_query, listings, top_k
### 4. GET `/static/*`
- CSS, JS 등 정적 파일 제공