2.5.4 stateless 구조 이해하기
앞에서 살펴본 메시지 목록은 이전 대화 내용을 전달하는 데 사용할 수 있습니다. 실제 챗봇 서비스에서는 애플리케이션이 이전 대화(history)를 저장한 뒤 이를 새로운 사용자 요청과 함께 LLM에 전달해 멀티턴 대화를 구현합니다.
반면 LLM은 기본적으로 stateless 방식으로 동작합니다. stateless는 ‘상태를 저장하지 않는다’는 뜻입니다. 즉, 각 invoke() 호출은 서로 독립적인 요청이며 이전 대화 내용을 기억하지 않습니다.
다음 예제를 보면 더 쉽게 이해할 수 있습니다.
examples/6_stateless.py
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
load_dotenv()
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
response1 = llm.invoke("내 이름을 '철수'로 기억해줘.")
print(response1.content)
response2 = llm.invoke("내 이름이 뭐야?")
print(response2.content)