LangGraph + Gemini로 만든 나만의 Stylist AI Agent

지구본욱·2025년 5월 24일

프로젝트 개요

“ 일주일에 다섯 번 학교를 가니까 이제 뭘 입어야할지 모르겠네.."
" 내 옷장 속에 이런 옷이 있었어? "
" 옷장에 있는 옷을 어떻게 입어야 이쁘지? "

이런 생각에서 하루동안 진행한 토이 프로젝트.
Gemini Flash 모델을 LangGraph와 결합해, 자연어 피드백까지 반영 가능한 “AI Stylist: Style For U”를 만들었습니다.

사용 기술 스택

기술설명
LangChain프롬프트 기반 LLM 활용
LangGraph상태 기반 LLM 워크플로우 구성
Gemini Flash빠른 응답 LLM 모델
Streamlit프론트엔드 웹 UI 구성
BLIP이미지 자동 설명 (태그 추출)

LangGraph 를 사용한 이유

초기에는 LangChain만 사용했지만,
“추천 → 피드백 반영 → 수정” 흐름을 구성하려면
상태 관리와 흐름 제어가 중요한데, 이 부분에서 LangGraph가 딱 맞았습니다.

전체 구조 요약

[옷장 json + 사용자의 위치/성별] -> [initial_plan_node] -> [초기 코디 출력] -> [피드백 입력] -> [feedback_node] -> [수정된 코디 출력]

LangGraph 주요 코드

graph = StateGraph(WardrobeState)
graph.add_node("initial_plan", initial_plan_node)
graph.add_node("apply_feedback", feedback_node)
graph.set_entry_point("initial_plan")
graph.add_edge("initial_plan", "apply_feedback")
graph.add_edge("apply_feedback", END)
app = graph.compile()
  • initial_plan_node: 옷장과 위치 정보를 바탕으로 GPT가 코디를 생성
  • feedback_node: 사용자 피드백 기반으로 요일별 추천을 수정

주요 기능

  1. 사용자 옷장 관리
  • 사용자가 사진을 첨부하면 옷에 관련된 태그를 자동으로 부여 (색깔, 두께, 스타일)
  • 태그는 사용자가 직접 수정할 수 있음
  1. 사용자의 위치/성별을 기반으로 일주일의 코디 추천
  • 사용자가 자신의 위치 (서울, 대전, 대구, 부산 등), 성별 (여성,남성)을 입력
  • LLM이 사용자의 옷장에 있는 데이터 + 해당 위치의 날씨를 기반으로 일주일 코디 추천
  1. 코디 미리보기
  • 코디 정보를 바탕으로 요일 마다 옷의 조합을 미리 볼 수 있도록 사진 제공
  1. 사용자 피드백을 통한 코디 수정
  • 사용자가 LLM의 코디에 대해 피드백을 주면 LLM은 해당 피드백을 수용하여 코디를 수정

Streamlit 인터페이스

시연 링크

시연 링크는 아래를 참고해주시면 감사하겠습니다!
AI Stylist : Style For U

느낀 점 & 수상 후기

단순히 결과만 보여주는 AI가 아니라, 사용자와 대화하며 점점 더 똑똑해지는 AI Agent를 직접 만들어봤다는 것이 가장 인상 깊었습니다.

이 프로젝트는 단순한 코드 실행이 아니라, LangGraph를 통해 LLM을 능동적으로 제어하며 에이전트 형태로 구성한 첫 경험이었습니다. 사용자 피드백에 따라 요일별 코디를 수정하는 구조를 만들며, 진짜 대화형 AI Agent를 설계하고 운영하는 감각을 배웠습니다.

또한 Gemini LLM을 사용하면서 프롬프트 구성, LLM 응답 제어, 상태 기반 워크플로우 구성까지 실전에서 경험할 수 있었습니다.

덕분에 5등 안에 들어 에어팟🏆 까지 받을 수 있었고, 무엇보다도 LLM 기반 프로젝트에 자신감을 가지게 된 계기였습니다. 😄

profile
어제보다 1cm라도 나아가는 사람 (위로)

0개의 댓글