docs(home): AI 캐릭터 홈 노출 개수 변경을 기록한다
This commit is contained in:
@@ -72,7 +72,7 @@
|
||||
- 방금 활동한 크리에이터: 10개
|
||||
- 최근 데뷔한 크리에이터: 10개
|
||||
- 처음부터 함께 성장: 10개
|
||||
- 크리에이터와 이야기를 나눠요: 10개
|
||||
- 크리에이터와 이야기를 나눠요: 20개
|
||||
- 장르의 크리에이터: 장르 최대 5개, 장르별 크리에이터 8명
|
||||
- 최근 응원이 많은 크리에이터: 8명
|
||||
- 인기 커뮤니티: 10개
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
#### Requirements
|
||||
- AI 캐릭터 리스트를 조회한다.
|
||||
- 홈 첫 화면은 10개를 조회한다.
|
||||
- 홈 첫 화면은 20개를 조회한다.
|
||||
- 전체 리스트 API는 페이징으로 조회할 수 있어야 한다.
|
||||
- 노출 정보는 캐릭터 id, AI 캐릭터에 대응하는 creator id, 캐릭터 이름, 캐릭터 소개, 프로필 이미지, 작품명, 사용자들이 친 전체 채팅 수를 포함한다.
|
||||
- AI 캐릭터에 대응하는 creator id는 `ChatCharacter.creatorMember.id`이며, 해당 Member는 `role = CREATOR`, `memberKind = AI_CHARACTER`인 내부 크리에이터 Member다.
|
||||
@@ -279,7 +279,7 @@
|
||||
- 일 1회 갱신 스냅샷은 후보를 application/service 메모리로 모두 불러와 점수를 계산하지 않는다. DB 조회에서 모든 적격 후보의 최종 점수와 랜덤 tie-breaker를 계산한 뒤 `score desc, randomTieBreaker asc` 기준으로 정렬하고, 그 이후에만 최종 저장 개수 limit을 적용한다.
|
||||
- 최종 점수 계산 전 candidate pre-limit, 랜덤 후보 컷오프, 임의 2배수 선제 제한은 정확한 top 후보를 누락할 수 있으므로 금지한다.
|
||||
- DB score expression과 Kotlin `RecommendationScorePolicy`는 동일한 `RecommendationScoreSpec`의 가중치/부스트 구간 상수를 공유해 산식 drift를 방지한다.
|
||||
- 스냅샷 최종 저장 개수는 동점자 랜덤 노출 여지를 확보하기 위해 홈 첫 화면 노출 수의 2배인 AI 캐릭터 최대 20개, 최근 응원이 많은 크리에이터 최대 16개, 인기 커뮤니티 최대 20개로 한다. 단, 이 숫자는 최종 점수 계산과 동점 랜덤 정렬 이후 적용하는 저장 limit이며 candidate pre-limit가 아니다.
|
||||
- 스냅샷 최종 저장 개수는 AI 캐릭터 홈 첫 화면 20개 안정 노출을 위해 AI 캐릭터 최대 20개, 동점자 랜덤 노출 여지를 확보하기 위해 최근 응원이 많은 크리에이터 최대 16개, 인기 커뮤니티 최대 20개로 한다. 단, 이 숫자는 최종 점수 계산과 동점 랜덤 정렬 이후 적용하는 저장 limit이며 candidate pre-limit가 아니다.
|
||||
- 공개 시간은 UTC 기준 응답을 원칙으로 한다.
|
||||
- 응답 DTO의 enum 값은 앱 다국어 처리를 위해 안정적인 영문 code로 내려준다.
|
||||
- 기존 API 스키마는 변경하지 않고 신규 v2 endpoint로 분리한다.
|
||||
|
||||
Reference in New Issue
Block a user