-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
TILToday I Learned..Today I Learned..
Description
graph TD
A[사용자 가입/소셜 프로필 완성] --> B[AiProfileEvent 발행]
B --> C[초기 AI 프로필 생성]
C --> D[사용자 선택 토픽 기반 프로필]
subgraph "AI 프로필 생성 과정"
E[사용자 활동 데이터 수집] --> F[북마크 게시글 분석]
E --> G[좋아요한 게시글 분석]
E --> H[작성한 게시글 분석]
F --> F1[최근 3개 북마크 게시글]
F1 --> F2[제목+내용으로 텍스트 구성]
F2 --> F3[AI 분석: 관심사 패턴 파악]
G --> G1[최근 3개 좋아요 게시글]
G1 --> G2[제목+내용으로 텍스트 구성]
G2 --> G3[AI 분석: 흥미 패턴 파악]
H --> H1[최근 3개 작성 게시글]
H1 --> H2[제목+내용으로 텍스트 구성]
H2 --> H3[AI 분석: 전문성/스타일 파악]
F3 --> I[활동 요약 데이터 생성]
G3 --> I
H3 --> I
I --> J[최종 AI 프로필 생성]
J --> K[persona_description + interest_keywords]
end
subgraph "게시글 임베딩 시스템"
L[게시글 작성/수정] --> M[게시글 임베딩 생성]
M --> N[제목+내용 포맷팅]
N --> O[임베딩 모델로 벡터 변환]
O --> P[EmbeddingStore에 저장]
P --> Q[메타데이터: postId, userId, boardType, 생성일]
end
subgraph "추천 게시글 생성 과정"
R[스케줄러: 매일 새벽 5시] --> S[AI 프로필 보유 사용자 조회]
S --> T[사용자별 추천 생성]
T --> U[AI 프로필 기반 쿼리 구성]
U --> U1[persona_description + interest_keywords]
U1 --> V[임베딩 기반 유사도 검색]
V --> V1[쿼리를 임베딩으로 변환]
V1 --> V2[EmbeddingStore에서 유사 게시글 검색]
V2 --> V3[자신이 작성한 게시글 제외]
V3 --> V4[유사도 점수로 정렬]
V4 --> W[추천 게시글 DB 저장]
W --> W1[기존 추천 데이터 삭제]
W1 --> W2[새로운 추천 데이터 저장]
W2 --> W3[boardId 매핑 및 상태 확인]
end
subgraph "사용자 추천 조회"
X[메인 페이지 접근] --> Y[저장된 추천 게시글 조회]
Y --> Z[블라인드 처리된 게시글 필터링]
Z --> AA[최종 추천 목록 반환]
end
%% 스케줄링 프로세스
BB[3일마다 새벽 4시] --> CC[활성 사용자 AI 프로필 업데이트]
CC --> DD[최근 3일간 활동 체크]
DD --> EE{활동 있음?}
EE -->|Yes| E
EE -->|No| FF[프로필 업데이트 스킵]
%% 연결
D --> K
K --> U
CC --> E
%% 스타일링
classDef profileProcess fill:#e1f5fe
classDef embeddingProcess fill:#f3e5f5
classDef recommendProcess fill:#e8f5e8
classDef scheduleProcess fill:#fff3e0
class E,F,G,H,F1,F2,F3,G1,G2,G3,H1,H2,H3,I,J,K profileProcess
class L,M,N,O,P,Q embeddingProcess
class R,S,T,U,U1,V,V1,V2,V3,V4,W,W1,W2,W3 recommendProcess
class BB,CC,DD,EE,FF scheduleProcess
Metadata
Metadata
Assignees
Labels
TILToday I Learned..Today I Learned..