Describe
Spring Boot 가 호출할 AI 추천 생성 엔드포인트 /internal/ai/recommendations 를 구현합니다.
Spring 이 보낸 후보 종목 중 상승 확률이 가장 높은 하나를 골라 추천 카드로 반환하고, 결정 로그를 남깁니다.
- 요청/응답 Pydantic 스키마 (기존
CamelModel 재사용)
- 후보별 LightGBM 추론 후 최고 확률 종목 선택
- 추천 사유 텍스트 생성
decision_logs 에 RECOMMENDATION 타입으로 기록
decision_type 컬럼 추가, participant_id / ai_strategy nullable 완화
Additional
- 요청 명세 변경이 필요합니다.
{challengeId, market} 만으로는 고를 종목도, 반환할 symbolId 도 알 수 없어서 Spring 이 candidates 배열(symbolId + symbol + features)을 보내는 형태로 백엔드와 합의해야 합니다.
- 추천 로그의
action 은 BUY 고정입니다. 전략이 없어 매매 결정 쪽 임계값을 쓸 수 없습니다.
reasonText 는 확률 기반 템플릿입니다. GPT 를 쓰지 않습니다 (추천은 LightGBM 담당, GPT 는 피드백/리포트 전용).
- SHAP 계산과
shap_values 기록은 실모델을 붙일 때 함께 합니다.
- 마이그레이션 0003 의 downgrade 가 롤백 시 행을 지우지 않는지 확인이 필요합니다.
Describe
Spring Boot 가 호출할 AI 추천 생성 엔드포인트
/internal/ai/recommendations를 구현합니다.Spring 이 보낸 후보 종목 중 상승 확률이 가장 높은 하나를 골라 추천 카드로 반환하고, 결정 로그를 남깁니다.
CamelModel재사용)decision_logs에RECOMMENDATION타입으로 기록decision_type컬럼 추가,participant_id/ai_strategynullable 완화Additional
{challengeId, market}만으로는 고를 종목도, 반환할symbolId도 알 수 없어서 Spring 이candidates배열(symbolId+symbol+features)을 보내는 형태로 백엔드와 합의해야 합니다.action은BUY고정입니다. 전략이 없어 매매 결정 쪽 임계값을 쓸 수 없습니다.reasonText는 확률 기반 템플릿입니다. GPT 를 쓰지 않습니다 (추천은 LightGBM 담당, GPT 는 피드백/리포트 전용).shap_values기록은 실모델을 붙일 때 함께 합니다.