Memory

Memory는 AI가 이전 대화를 기억할 수 있도록 합니다. 아래와 같이 LLM을 설정하면 대화내용을 history에 기억하게됩니다.

You are an assistant for human, powered by a large language model trained by OpenAI.
Whether the human needs help with a specific questino or
just wants to have a conversation about a particular topic, you are here to assist.

Current conversation:
{history}

대화내용을 기억하는데는 Short Term Memory와 Long Term Memory를 이용합니다.

kubChain에서는 아래와 같이 Memory를 제공합니다.

  • Buffer Memory

  • Buffer Window Memory

  • Conversation Summary Memory

  • DynamoDB Chat Memory

  • Motorhead Memory

  • Redis-Backed Chat Memory

  • Upstash Redis-Backed Chat Memory

  • Zep Memory

Short Term Memory

단기메모리(Short Term Memory)는 RAM에 과거 대화만 저장할 수 있는 임시 메모리 노드입니다. 대화 내용을 배열로 저장하고, kubChain을 다시 실행하면 그전에 기억하고 있던 대화들은 모두 사라집니다.

3개의 단기메모리 노드가 있습니다.

  • Buffer Memory: 가장 간단한 단기메모리 노드로, 대화를 배열에 저장하고 그 정보를 LLM에 전달합니다.

  • Buffer Window Memory: 대화가 길어지면 토큰한도를 초과하는 문제가 발생할 수 있습니다. 제한된 LLM 컨텍스트 크기에 맞추기에는 텍스트가 너무 많기 때문에 토큰한도 초과 문제가 발생합니다. 따라서 모든 대화를 저장하는 대신 K개의 대화만 저장할 수 있도록 슬라이딩 윈도우 구현을 사용하여 가장 최근의 상호작용 K만 저장하고 전달합니다.

  • Conversation Summary Memory: LLM을 사용하여 대화 요약을 만들고 저장합니다.

Long Term Memory

장기메모리(Long Term Memory)는 과거 대화를 지속할 수 있는 메모리 노드를 의미하며, 나중에 검색하여 대화를 재개할 수 있습니다.

5개의 장기메모리 노드가 있습니다.

  • DynamoDB Chat Memory

  • Motorhead Memory

  • Redis Chat Memory

  • Upstash Chat Memory

  • Zep Memory

Last updated