AI 이사 도우미 movemate의 FastAPI 백엔드 서버입니다.
py -3.12-m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env # .env 열어서 값 입력
.\venv\Scripts\uvicorn.exe app.main:app --reload --host 0.0.0.0--port 8000서버 실행 후 http://localhost:8000/docs 에서 Swagger UI 확인
AGENT_PATH=C:\movemate_agentGROQ_API_KEY=your_key_here# 구글 캘린더 연동 (선택)GOOGLE_OAUTH_CREDENTIALS=C:\movemate_agent\gcp-oauth.keys.jsonGOOGLE_CALENDAR_MCP_TOKEN_PATH=C:\Users\<사용자명>\.config\google-calendar-mcp\tokens.json구글 캘린더 최초 인증:
$env:GOOGLE_OAUTH_CREDENTIALS="C:\movemate_agent\gcp-oauth.keys.json"
npx -y @cocal/google-calendar-mcp auth normalschema → service → router 흐름을 따릅니다.
movemate_backend/
├── app/
│ ├── main.py
│ ├── core/ # agent 초기화, 데이터 캡처
│ ├── schemas/ # 요청/응답 모델 (Pydantic)
│ ├── services/ # 비즈니스 로직
│ └── api/ # HTTP 라우터
└── .env
| Method | Endpoint | 설명 |
|---|---|---|
| GET | /health | 서버 상태 확인 |
| POST | /api/v1/chat | 채팅 (에이전트 호출) |
| GET | /api/v1/chat/stream | 채팅 SSE 스트리밍 |
| GET | /api/v1/policy?session_id= | 정책 카드 조회 |
| GET | /api/v1/schedule?session_id= | 이사 일정 조회 |
| PUT | /api/v1/schedule/{title}?session_id= | 일정 날짜 수정 |
| PUT | /api/v1/schedule/{title}/done?session_id= | 일정 완료 체크 |
| POST | /api/v1/search | ChromaDB 직접 검색 |
| 필드 | 필수 | 설명 |
|---|---|---|
query | ✅ | 질문 내용 |
session_id | ❌ | 없으면 UUID 자동 생성 |
moving_date | ❌ | 이사 날짜 YYYY-MM-DD |
contract_type | ❌ | 전세 | 월세 | 매매 |
move_stage | ❌ | 이사전 | 이사중 | 이사후 |
region | ❌ | 지역 (예: 서울) |
target | ❌ | 대상 (예: 청년, 신혼부부) |
completed_items | ❌ | 완료된 항목 목록 |
| route | ui.policy_cards | schedule_ui |
|---|---|---|
legal | null | null |
policy | ✅ top-3 | null |
schedule | null | ✅ |
both | ✅ top-3 | ✅ |
/api/v1/policy,/api/v1/schedule는/api/v1/chat호출 후session_id로 조회합니다. 서버 재시작 시 세션 데이터가 초기화됩니다.