RangChain

0301 Memory

유방울 2025. 2. 27. 16:24

이전의 기록을 자체적으로 기억하지 못함

이를 구현하는 것임

 

이외에 Chathistory가 있고 나중에 살펴봐야 함

 

window buffer memory 등등 다양함

 

사람이 질문을 한 것을 단독으로 저장하지 못하고

human과 ai를 쌍으로 저장할 수 있음

 

save_context로 하나하나 저장할 수 있음

원래 이거를 하나하나 수작업인데

chain 사용하면 굉장히 편리하게 사용할 수 있음..

단점 : 입력으로 받는 일정 수준의 토큰 이상으로 memory에 저장하면 어느정도 되면 cut하는 것도 구현해야 함

 

ConversationTokenBufferMemory

토큰 단위로 비용이 부과됨

비용측면에서 유용함

 

llm 자체에 토큰을 사용하는 거라 비용청구는 안 될것임;;

모델에 따라서 토큰 계산량이 다름

실제로 사용할 모델 name를 

150토큰을 넘어가지 않는 선에서

 

ConversationEntitiyBufferMemory

과거의 기록에서 entity를 함

정보에서 쓸데없는 정보가 많이 있는데 그 중에서 핵심이라고 생각하는 엔티티를 추출함

대화맥락을 보고 압축해서, 효율적으로 저장해야겠다는 것음

시간이 지남에 따라 엔티티 정보를 축적

엔티티 저장하는 것도 나중에 볼 수 있는데

대화가 길어져도 효율적으로 핵심 내용만 저장할 수 있음

 

ConversationKGMemory

개체간의 연결고리가 잇는데 이 연결을 파악해서 저장하는 것임

지식그래프 형식을 저장

 

Entity도 비슷한 맥락인데 핵심 내용은 entity를 할 것인지 kg로 할 것인지임

 

ConversationSummaryMemory

모든 내용의 요약본

이럴 때 약간 정보의 소실이 있을 수도 있음

 

ConversationSummaryMemory

일정 수준 넘어가면 요약메모리를 만듦

max_token_limit가 있음

이전대화내용을 요점정리하기가 어려움

n개 토큰까지는 원본 그대로 가지고 있어서 이전 내용을 번역해줘 같은 질문에 잘 답