LangChain 기반 멀티스텝 AI 구현 검토(4단계 과제) - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

1. 서비스 내 LLM 활용 흐름

  • 사용자가 업로드한 사진에 대해 특정 스타일(예: 지브리, 픽사 등)로 이미지 변환을 요청하는 시스템
  • 이때, 변환에 사용될 positive prompt는 사용자가 제공한 사진을 기반으로 Gemini API를 활용해 묘사(프롬프트)를 생성하고, 이를 그대로 Stable Diffusion 모델에 전달하는 구조
  • 현재 워크플로우:
    1. 사용자가 스타일과 사진 업로드
    2. → Gemini API에 사진과 함께 프롬프트 생성 요청 (예시 프롬프트 포함)
    3. → Gemini 응답: 스타일 변환용 묘사 프롬프트 반환
    4. → 해당 프롬프트를 사용해 Stable Diffusion 서버에 요청
    5. → 스타일 변환된 이미지 반환

2. 왜 LangChain 기반 체인이 불필요한가?

  • LangChain의 도입은 일반적으로 다음과 같은 경우에 유의미하다:

    • 여러 단계의 복합 추론
    • 외부 검색 / 계산 도구 연동
    • 메모리 기반의 대화 컨텍스트 관리
    • 에이전트 기반의 동적 실행 흐름 제어
  • 하지만 우리 서비스에서는 단일한 요청-응답 구조로 충분하다:

    구분 내용
    추론 단계 1회 프롬프트 생성만 필요 (Gemini API 호출)
    도구 사용 외부 API 호출 1회로 충분, 복수 도구 조합 없음
    복잡도 사용자 요청에 따라 변하지 않음 (에이전트 불필요)
    흐름 고정된 API 흐름 (사진 → 프롬프트 → 이미지)
  • 따라서 LangChain을 도입할 경우, 불필요한 추상화와 복잡도를 추가하게 됨 (과잉설계)


3. 현재 접근의 장점

  • 낮은 지연 시간: 체인 구성 없이 Gemini 호출 → Stable Diffusion 요청으로 즉시 처리
  • 관리 편의성: 추론 흐름이 간단하여 유지보수와 디버깅이 단순
  • 확장 가능성 확보: 구조가 단순하므로 이후 로직을 쉽게 삽입 가능

4. 향후 확장 가능성

  • 현재는 체인이 필요하지 않지만, 다음과 같은 시나리오에서는 체인 또는 LangChain 도입이 고려될 수 있다:

    시나리오 확장 방향
    사용자 요청에 따라 스타일 + 장르 + 인물 강조 등 복합 프롬프트가 필요한 경우 프롬프트 생성 단계에서 멀티스텝 추론 도입 (LangChain SequenceChain 또는 PromptTemplate + Memory 활용)
    Gemini 응답이 부정확할 경우, 자동으로 재질문하거나 예시 프롬프트를 조정하는 로직 LangChain의 Agent + Tool 형태로 흐름 제어