시작하기무료로 시작하기

메모리로 멀티턴 대화를 활성화하기

이제 학교 행정팀과 챗봇 업데이트를 공유할 준비가 거의 끝났어요! 학생들이 원활하게 학습하려면 후속 질문을 할 수 있어야 해요. 이렇게 하면 챗봇의 첫 답변에 빠진 정보가 있을 때, 학생들이 대화를 이어가며 질문을 보완할 수 있어요. 이제 스트리밍 함수를 멀티턴을 지원하도록 수정해, 사용자의 질의와 챗봇의 답변을 모두 출력해 보세요. 메모리를 활성화하면, 후속 질문이 들어올 때 LangGraph가 전체 대화를 LLM에 전달해요. 시작을 위해, 한 사용자를 위한 config 파라미터가 이미 설정되어 있어요:

config = {"configurable": {"thread_id": "1"}}

이 연습은 강의의 일부입니다

LangChain으로 에이전트형 시스템 설계하기

강의 보기

연습 안내

  • 각 턴마다 queries 리스트에서 사용자의 query를 먼저 출력하세요.
  • app.stream()을 사용해 msgmetadata를 순회하고, config와 함께 HumanMessagecontentquery를 전달하여 생성되는 msg.content 값을 이어 붙이세요.
  • 챗봇의 응답을 추출하려면, HumanMessage로 라벨된 msg는 제외하고 msg.content를 출력한 뒤, 다음 질의 전에 새 줄을 추가하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Print the user query first for every interaction 
def user_agent_multiturn(queries):  
    for ____ in ____:
        print(f"User: {____}")
        
        # Stream through messages corresponding to queries, excluding metadata 
        print("Agent: " + "".join(____.____ for ____, ____ in app.____(
                {"messages": [____(____=_____)]}, config, stream_mode="messages") 
            
            # Filter out the human messages to print agent messages
            if ____.____ and not isinstance(____, ____)) + "____")       

queries = ["Is `stressed desserts?` a palindrome?", "What about the word `kayak`?",
    "What happened on the May 8th, 1945?", "What about 9 November 1989?"]
user_agent_multiturn(queries)
코드 편집 및 실행