Skip to content

sunjin12/Lang

Repository files navigation

LangGraph AI 에세이 평가 루프 (Writer-Critique Loop)

이 프로젝트는 LangChain과 LangGraph를 활용하여 사용자가 입력한 주제에 대한 AI 에세이 작성, 피드백, 그리고 순환 보완 교정을 수행하는 완전한 동작형 워크플로우 학습 예제입니다.


1. 워크플로우 아키텍처 (LangGraph Diagram)

본 프로젝트는 다음과 같은 상태 기반 전이도를 가집니다. 초안 작성(Writer) ➡️ 평가(Critic) ➡️ (반려 시) 수정(Rewriter) ➡️ 다시 평가 과정을 반복하며, 승인되거나 최대 교정 횟수(3회)에 도달할 때까지 루프가 지속됩니다.

LangGraph Architecture


2. 에이전트 실행 로그 및 결과

Jupyter Notebook 환경에서 스트리밍으로 실행했을 때 노드들이 실시간으로 상태(State)를 업데이트하며 피드백 교정을 거치는 실행 화면입니다.

Execution Result


3. 핵심 기술 스택 및 구현 사항

  • 상태 관리 (EssayState): TypedDict를 활용해 노드 간의 상태 데이터를 유기적으로 전달 및 누적
  • 프롬프트 체이닝 (LCEL): Prompt | ChatOpenAI | StrOutputParser 조합의 간결한 랭체인 표현 기법 적용
  • 조건부 라우터 (should_continue): 승인 통과 및 무한 루프 방지를 위한 가드레일(3회 제한) 탑재
  • DeepSeek API: OpenAI 규격 호환(OpenAI-Compatible Spec) 엔드포인트를 적용해 연동

4. 로컬 실행 방법

1) 의존성 라이브러리 설치

pip install -r requirements.txt

2) 환경 변수 세팅

루트 경로에 .env 파일을 생성하고 본인의 API 키를 입력합니다. (깃허브 업로드 시 안전하게 제외되도록 .gitignore 설정 완료)

DEEPSEEK_API_KEY="본인의-deepseek-api-key"
DEEPSEEK_API_BASE="https://api.deepseek.com"

3) 실습 및 테스트

  • 단위 테스트 실행 (TDD):
    python -m pytest
  • Jupyter Notebook 실습: essay_critic.ipynb 파일을 열어 셀을 차례대로 실행하여 랭그래프 시각화 및 스트리밍을 경험합니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors