이전의 기록을 자체적으로 기억하지 못함
이를 구현하는 것임
이외에 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개 토큰까지는 원본 그대로 가지고 있어서 이전 내용을 번역해줘 같은 질문에 잘 답