Django와 Gemini AI를 활용한 의성군 관광지 추천 시스템입니다. 사용자의 자연어 쿼리를 분석하여 적절한 관광지를 추천하고, 파친코 게임 형태로 클라이언트에 제공합니다.
us_check/
├── us_check/ # Django 프로젝트 설정
├── api/ # 통합 API 엔드포인트
├── tourism/ # 관광지 데이터 관리
├── gemini_ai/ # Gemini AI 서비스
├── qr_service/ # QR 코드 생성 및 관리
└── requirements.txt # 패키지 의존성
- 사용자의 자연어 입력을 Gemini AI로 분석
- 키워드, 카테고리, 사용자 의도 추출
- 의성군 관광지 특성에 맞춘 맞춤형 추천
- 의성군 관광지 76개 데이터를 Firestore에 저장
- 실시간 데이터 동기화
- 확장 가능한 NoSQL 데이터베이스 구조
- 사용자 선택 결과를 QR 코드로 생성
- GCP Cloud Storage 연동
- 공유 가능한 URL 제공
- 클라이언트 파친코 게임을 위한 JSON 데이터 제공
- 최대 20개 관광지 추천
- 실시간 선택 결과 처리
POST /api/query/
Content-Type: application/json
{
"query": "자연 경관이 좋은 곳 추천해줘",
"session_id": "optional_session_id",
"user_id": "optional_user_id"
}POST /api/finalize/
Content-Type: application/json
{
"selection_id": 123,
"selected_spot_ids": [1, 3, 7, 12],
"user_id": "optional_user_id"
}GET /api/history/?user_id=1&limit=10GET /api/spots/POST /api/sync/# 가상환경 생성 및 활성화
python -m venv venv
venv\Scripts\activate # Windows
# 패키지 설치
pip install -r requirements.txtSERVER_ADDRESS=localhost
CLIENT_ADDRESS=http://localhost:3000
GEMINI_API_KEY=your_gemini_api_key
GOOGLE_APPLICATION_CREDENTIALS=./your-service-account.json
FIRESTORE_PROJECT_ID=your-project-id
DEBUG=Truecd server/us_check
python manage.py makemigrations
python manage.py migrate# JSON 파일에서 로드
python manage.py load_tourism_data --json-file=tourism_data.json --upload-to-firestore
# 또는 Firestore에서 동기화
python manage.py load_tourism_data --sync-from-firestorepython manage.py runserver