| 1234567891011121314151617181920212223 |
- from langchain.memory import ConversationBufferMemory
- from typing import Dict, Any
- from pydantic import Field
- class LimitedConversationBufferMemory(ConversationBufferMemory):
- """
- 可以设置大小的对话Memeory缓存
- """
- max_size: int = Field(default=10, description="缓存大小")
- def __init__(self, max_size: int = 500, **kwargs: Any):
- super().__init__(**kwargs)
- self.max_size = max_size
- def save_context(self, inputs: Dict[str, Any], outputs: Dict[str, str]) -> None:
- # 先调用父类的保存方法
- super().save_context(inputs, outputs)
- # 当缓冲区超过最大大小时,移除最早的消息
- while len(self.chat_memory.messages) > self.max_size:
- self.chat_memory.messages.pop(0)
|