Skip to content

[Week2] StateGraph를 활용한 클래식 공연 예습 State Memory 구현 과제#15

Open
daexvk wants to merge 1 commit into
mainfrom
daexvk/week2-state-memory
Open

[Week2] StateGraph를 활용한 클래식 공연 예습 State Memory 구현 과제#15
daexvk wants to merge 1 commit into
mainfrom
daexvk/week2-state-memory

Conversation

@daexvk

@daexvk daexvk commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

변경점 👍

  • 1주차 클래식 공연 예습 ReAct 그래프를 week2 과제로 확장했습니다.
  • InMemorySaver checkpointer를 compile()에 연결해 thread별 상태 저장을 적용했습니다.
  • 같은 thread_id로 이어지는 대화와 다른 thread_id로 새로 시작되는 대화를 노트북 결과에 포함했습니다.
  • 실행제어 패턴으로 interrupt_before=["tools"]를 적용했습니다.
  • 공연 상세 정보가 포스터 이미지에 들어있는 경우, 사용자 승인 후 포스터 이미지를 읽고 공연 정보를 정리하도록 구성했습니다.
  • 맥락 질문 3개 이상에 대한 실행 결과를 week2_mission.ipynb에 정리했습니다.

버그 해결 💊

  • PrepAnswer가 checkpointer에 직접 저장되며 생길 수 있는 직렬화/파싱 문제를 줄이기 위해 최종 답변 상태를 dict 형태로 저장하도록 변경했습니다.
  • 포스터 OCR 결과가 raw OCR 로그나 이미지 후보 목록으로 노출되지 않도록, 사용자에게 필요한 공연 정보 요약만 반환하게 수정했습니다.

테스트 💻

  • python -m py_compile graph.py tools.py schema.py

  • python -m json.tool week2_mission.ipynb

  • 같은 thread 테스트:

    • thread_id: classical-week2-same
    • 첫 질문: 말러 교향곡 5번 공연 전에 예습하고 싶어. 처음 듣는 사람 기준으로 알려줘.
    • 두 번째 질문: 같은 thread, 두번째 질문: 그럼 4악장 아다지에토만 먼저 들을 때 어디에 집중하면 돼?
    • 결과: 두 번째 질문에서 이전 질문의 말러 5번 맥락을 이어 받아 말러 교향곡 5번 4악장 아다지에토 중심으로 답변했습니다.
    • latest_messages: 9
    • latest_message_length: 1626
  • 다른 thread 테스트:

    • thread_id: classical-week2-new
    • 질문: 다른 thread, 같은 질문: 그럼 4악장 아다지에토만 먼저 들을 때 어디에 집중하면 돼?
    • 결과: 같은 질문이어도 별도 thread로 실행되어 이전 대화와 분리된 새 대화로 답변했습니다.
    • latest_messages: 5
    • latest_message_length: 1585
  • get_state_history() 결과:

    • same thread: snapshots=8, latest_messages=9, latest_message_length=1626
    • different thread: snapshots=5, latest_messages=5, latest_message_length=1585
  • interrupt 테스트:

    • graph_with_interrupt = builder.compile(checkpointer=interrupt_memory, interrupt_before=["tools"])
    • 포스터 이미지에 공연 상세 정보가 있는 링크에서 extract_poster_image_text 도구 실행 전 중단되는 것을 확인했습니다.
    • 사용자 승인 후 포스터 OCR 결과가 raw 로그가 아니라 공연 정보 요약으로 정리되는 것을 확인했습니다.

@daexvk daexvk changed the title Upload week2 state memory assignment [Week1] StateGraph를 활용한 클래식 공연 예습 State Memory 구현 과제 Jun 6, 2026
@daexvk daexvk changed the title [Week1] StateGraph를 활용한 클래식 공연 예습 State Memory 구현 과제 [Week2] StateGraph를 활용한 클래식 공연 예습 State Memory 구현 과제 Jun 6, 2026
@daexvk daexvk added the 과제 label Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant