[AI]4단계_LangChain_기반_멀티스텝_AI구현_검토 - 100-hours-a-week/12-marong-Wiki GitHub Wiki

LangChain 기반 AI 추론 흐름 설계도

  • 사용자 피드를 기반으로 MBTI 4개 축(E/I, S/N, T/F, J/P)을 각각 추론하고 점수를 업데이트
  • 각 축별로 프롬프트 구성 -> LLM 호출 -> 결과 파싱 으로 구성된 체인 구조
Chroma + MiniLM → 유사 피드 Top-k 추출
   ↓
축별 반복:
   ↳ PromptTemplate 구성
   ↳ LLMChain (Gemma 3.4B) 실행
   ↳ OutputParser 결과 파싱
   ↓
모든 축 결과 통합하여 dict 반환

체인 내 사용 도구 및 외부 리소스

구성 요소 사용 도구/프레임워크 설명
피드 임베딩 sentence-transformers 의미 기반 피드 벡터화
유사도 검색 ChromaDB 입력 피드와 유사한 문장 k개 추출
프롬프트 템플릿 LangChain PromptTemplate 각 축별로 질문과 예시 포함 프롬프트 생성
LLM 호출 HuggingFacePipeline (Gemma 3.4B) 성격 분석 수행
체인 구성 LangChain LLMChain 축별 추론 체인화
결과 파싱 Custom OutputParser 점수, 변동, 이유 파싱

실제 구현 예시

prompt_template = PromptTemplate(
    input_variables=["user_feed", "current_score", "examples"],
    template="""
    너는 심리학자야. 다음 피드 내용을 바탕으로 분석해줘.
    기준 축: 외향성(E) vs 내향성(I)
    기존 점수: {current_score}
    유사 예시:
    {examples}

    사용자 피드:
    {user_feed}

    결과:
    점수: (숫자)
    """
)

llm_chain = LLMChain(
    llm=HuggingFacePipeline(pipeline=pipe),
    prompt=prompt_template,
    output_parser=MBTIOutputParser()
)

멀티스텝 체인 도입 시 기대효과

  • MBTI는 축별 의미와 판단 기준이 모두 다르기 때문에, 프롬프트가 축마다 달라야함
  • 단일 호출로는 이들 맥락을 모두 처리하기 어려워 체인 분리 필요

단일 모델 호출로 충분한 경우 및 확장 전략

  • 사용자 피드 이력 누적 분석 체인: 시간에 따른 성향 변화 추적