주뇽's 저장소

Part 5: LangGraph 상태 수동 업데이트 - AI의 행동 제어하기 🎮 본문

LangGraph

Part 5: LangGraph 상태 수동 업데이트 - AI의 행동 제어하기 🎮

뎁쭌 2025. 1. 18. 23:05
728x90
반응형

Part 5: LangGraph 상태 수동 업데이트 - AI의 행동 제어하기 🎮

LangGraph의 상태를 수동으로 업데이트하여 AI의 행동을 제어하는 방법을 설명한다. AI의 응답을 수정하거나 대화의 흐름을 변경하는 방법을 예제와 함께 알아본다.

주요 내용 요약 💡

  1. 상태 수동 업데이트 방법
  2. 메시지 수정 기능
  3. 상태 관리와 검증
  4. 실제 활용 사례

예제 코드로 알아보기 🔍

Example 1: 기본적인 상태 업데이트

# 기본 상태 업데이트 예제
@tool
def update_and_verify(message_content: str) -> str:
    """메시지를 업데이트하고 검증하는 예제"""
    # 상태 업데이트 전 검증 수행
    verified = verify_content(message_content)

    if verified:
        new_state = {
            "messages": [("AI", message_content)]
        }
        return Command(update=new_state)
    return "검증 실패"

# 사용 예시
test_case = "이 정보를 업데이트해주세요."
result = update_and_verify(test_case)

실행 결과:

🔄 상태 업데이트 시작...
✅ 검증 완료
📝 새로운 상태: 이 정보를 업데이트해주세요.

Example 2: 메시지 수정하기

# 메시지 수정 예제
def modify_message(graph, config: dict):
    # 현재 상태 가져오기
    current_state = graph.get_state(config)

    # 마지막 메시지 수정
    modified_content = "수정된 메시지입니다."
    new_message = AIMessage(
        content=modified_content,
        id=current_state.values["messages"][-1].id
    )

    # 상태 업데이트
    graph.update_state(
        config,
        {"messages": [new_message]}
    )

# 테스트
config = {"thread_id": "test_123"}
modify_message(graph, config)

실행 결과:

📝 원본 메시지: 안녕하세요
✏️ 수정 후 메시지: 수정된 메시지입니다.

실제 활용 사례 🎯

  1. 고객 서비스 봇
    # 부적절한 응답 수정
    original_response = "죄송합니다만 도와드릴 수 없습니다."
    modified_response = "구체적으로 어떤 도움이 필요하신지 알려주시겠어요?"
    

modify_message(graph, config, original_response, modified_response)


2. 교육용 챗봇
```python
# 학생 수준에 맞게 응답 조정
student_level = "beginner"
original_response = "이는 고급 알고리즘의 예시입니다."
simplified_response = "간단한 예시로 설명해드리겠습니다."

adapt_response(graph, config, student_level)

주의사항 ⚠️

  1. 상태 업데이트 시
    • 데이터 유효성 검증
    • 이전 상태 백업
    • 에러 처리 구현
  2. ID 관리
  3. # 올바른 예시 new_message.id = original_message.id

다음 단계 🚀

이러한 LangGraph의 상태 관리와 검증 시스템을 활용하면 복잡한 정보를 더 안전하고 효율적으로 관리할 수 있다. 다음 글에서는 시간 여행 기능을 통한 상태 관리의 고급 기능을 살펴본다.

 

이렇게 LangGraph의 상태 관리 기능을 활용하면 더 똑똑하고 안정적인 AI 시스템을 구축할 수 있다.

 

참고 : https://langchain-ai.github.io/langgraph/tutorials/introduction/#part-5-customizing-state

 

Learn the basics

Home Guides Tutorials Quick Start 🚀 LangGraph Quickstart In this tutorial, we will build a support chatbot in LangGraph that can: ✅ Answer common questions by searching the web ✅ Maintain conversation state across calls ✅ Route complex queries to

langchain-ai.github.io

 

참고 : https://github.com/junyong1111/LangGraph/tree/main/example5

 

LangGraph/example5 at main · junyong1111/LangGraph

Contribute to junyong1111/LangGraph development by creating an account on GitHub.

github.com