[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 테스트 가능