[AI]3단계_서비스_아키텍처_모듈화_미션_생성 - 100-hours-a-week/12-marong-Wiki GitHub Wiki
1. 모듈화 적용 후 새롭게 설계된 서비스 아키텍처 다이어그램 작성
마니또 미션 생성 서비스 아키텍처 다이어그램
2. 주요 모듈별 책임 정리
LangGraph 플로우
check_completion_node
: 난이도별 생성 완료 여부 판단
select_query_node
: 난이도별 쿼리 랜덤 선택
rag_node
: ChromaDB에서 유사 예시 검색
generate_mission_node
: LangChain + HyperCLOVA-X 기반 미션 생성
postprocess_node
: 미션 정제, 이모지 부착, 난이도 분류, 중복 제거 포함
eval_node
: EXAONE 기반 LLM으로 생성된 미션 평가
update_state_node
: 다음 난이도 이동 또는 추가 생성 시도 조정
3. 주요 모델 및 리소스
HyperCLOVA-X 1.5B
+ LoRA (생성 모델)
Exaone 2.4B
(평가 모델)
SBERT
(유사도 측정 및 DBSCAN 클러스터링)
ChromaDB
(mission_collection
, hated_mission_collection
)
4. 입력 및 실행 예시
초기 상태 예시 (initial_state
)
initial_state = {
"attempt": 0,
"difficulty_idx": 0,
"difficulty_order": ["상", "중", "하"],
"current_diff": "상",
"mid_output": [],
"final_output": {"상": [], "중": [], "하": []},
"target_counts": {"상": 0, "중": 3, "하": 0},
"clean_tool": CleanMission(),
"emoji_generator": EmojiGen(),
"sbert_model": sbert_model,
"hated_mission_collection": hated_mission_collection,
"mission_collection": mission_collection,
"contents": [피드 상],[피드 중],[피드 하](/100-hours-a-week/12-marong-Wiki/wiki/피드-상],[피드-중],[피드-하),
"group_description": "ex) 마포구 외향적인 대학생들",
"user_query": None,
"random_queries": RANDOM_QUERIES,
"gen_llm_chain": gen_llm_chain,
"eval_llm_chain": eval_llm_chain
}
결과 포맷
final_output = {
"상": [("💻 마니띠에게 코드 관련 이모지 보내기", "마니띠에게 프로그래밍 관련 이모지 보내기")],
"중": [...],
"하": [...]
}
5. 모듈화 설계 장점
- LangGraph 플로우로 상태 관리 자동화
- LLM 생성과 평가 파이프라인 통합
- 중복 제거, 난이도 분류, 클린 필터 모두 재사용 가능
- 난이도별 자동 생성 및 할당 수 조정 가능
- 후처리와 평가가 통합되어 품질 필터링 강화
6. 향후 확장 가능성
- 평가 기준 다양화: 일관성/창의성/수행가능성 등 점수별 분석 가능
- 피드백 기반 hated_mission_collection 강화 가능
- Web UI 또는 Discord와 연동하여 자동 미션 생성 주기 설정 가능
- 쿼리 전략, 평가 기준, 이모지 세트 분리로 A/B 테스트 가능