본문으로 건너뛰기

사주 분석 & 오늘의 기운

개요

생년월일시 정보를 입력받아 사주 원국(四柱原局)을 계산하고, 이를 기반으로 오늘의 기운 점수와 일별 추천 콘텐츠를 생성하는 핵심 기능입니다.


사주 등록 흐름

생년월일시 + 성별 + 출생도시 입력

POST /api/saju

Ablecity GET /api/v2/saju/fortune ← 사주 8자 계산

Ablecity GET /api/v2/saju/fortune/daily ← 오늘 기운 점수

OpenAI GPT ← 사주 도메인 프롬프트 + 오늘 점수 주입 → 일별 인사이트 생성

saju_info + daily_energy DB 저장

사주 원국 + 오늘의 기운 통합 응답

사주 원국 데이터 구성

Ablecity /fortune 응답으로부터 아래 데이터를 추출해 저장합니다.

항목설명
사주 8자(四柱八字)연·월·일·시 각 천간(天干)·지지(地支) 쌍
오행(五行) 비율목·화·토·금·수 백분율
신강/신약일간(日干)의 에너지 강도
격국(格局)사주 구조 유형 (예: 식신격, 정관격)
용신(用神)도움이 되는 오행 (primary / secondary)
행운 속성행운 숫자·방향·오행
대운(大運)10년 주기 운세 흐름 (Ablecity 원본 JSON)
12운성일별 에너지 단계 (Ablecity 원본 JSON)

오늘의 기운 생성

점수 계산

todayScore는 Ablecity /fortune/daily 응답의 운세별 점수(재물운·건강운·연애운 등) 평균으로 서버에서 직접 계산합니다. Ablecity가 직접 제공하는 값이 아닙니다.

GPT 인사이트 생성

Ablecity 점수·요약과 사주 원국 데이터를 GPT 프롬프트에 주입해 구조화된 인사이트를 생성합니다.

{
"goodTime": "오후 2~4시",
"mood": "차분한 집중",
"dailyMessage": "오늘은 성실하게 임하면 좋은 결과가 있습니다.",
"goodActions": ["기록", "정리", "독서"],
"avoidActions": ["충동적 결정", "과도한 운동"],
"avoidFlows": ["과한 일정", "감정적 대화"],
"recommendPlaces": ["숲카페", "갤러리", "한강공원"]
}

response_format: { type: "json_object" } 모드를 사용해 응답 파싱 실패를 최소화합니다.

재방문 시 처리

당일 daily_energy 레코드가 이미 존재하면 DB에서 즉시 반환합니다. Ablecity·GPT 재호출 없음.


사주 수정

PUT /api/saju/me 로 기존 사주 정보를 수정할 수 있습니다. 수정 시 원국과 오늘의 기운을 모두 재계산합니다.