이 프로젝트는 LangChain과 LangGraph를 활용하여 사용자가 입력한 주제에 대한 AI 에세이 작성, 피드백, 그리고 순환 보완 교정을 수행하는 완전한 동작형 워크플로우 학습 예제입니다.
본 프로젝트는 다음과 같은 상태 기반 전이도를 가집니다. 초안 작성(Writer) ➡️ 평가(Critic) ➡️ (반려 시) 수정(Rewriter) ➡️ 다시 평가 과정을 반복하며, 승인되거나 최대 교정 횟수(3회)에 도달할 때까지 루프가 지속됩니다.
Jupyter Notebook 환경에서 스트리밍으로 실행했을 때 노드들이 실시간으로 상태(State)를 업데이트하며 피드백 교정을 거치는 실행 화면입니다.
- 상태 관리 (
EssayState):TypedDict를 활용해 노드 간의 상태 데이터를 유기적으로 전달 및 누적 - 프롬프트 체이닝 (LCEL):
Prompt | ChatOpenAI | StrOutputParser조합의 간결한 랭체인 표현 기법 적용 - 조건부 라우터 (
should_continue): 승인 통과 및 무한 루프 방지를 위한 가드레일(3회 제한) 탑재 - DeepSeek API: OpenAI 규격 호환(OpenAI-Compatible Spec) 엔드포인트를 적용해 연동
pip install -r requirements.txt루트 경로에 .env 파일을 생성하고 본인의 API 키를 입력합니다. (깃허브 업로드 시 안전하게 제외되도록 .gitignore 설정 완료)
DEEPSEEK_API_KEY="본인의-deepseek-api-key"
DEEPSEEK_API_BASE="https://api.deepseek.com"- 단위 테스트 실행 (TDD):
python -m pytest
- Jupyter Notebook 실습:
essay_critic.ipynb파일을 열어 셀을 차례대로 실행하여 랭그래프 시각화 및 스트리밍을 경험합니다.

