EmptyMemoryWarning

class EmptyMemoryWarning(UserWarning):
Warning raised when attempting to access an empty memory. This warning is raised when operations are performed on memory that contains no records. It can be safely caught and suppressed in contexts where empty memory is expected.

ChatHistoryBlock

class ChatHistoryBlock(MemoryBlock):
An implementation of the :obj:MemoryBlock abstract base class for maintaining a record of chat histories. This memory block helps manage conversation histories with a key-value storage backend, either provided by the user or using a default in-memory storage. It offers a windowed approach to retrieving chat histories, allowing users to specify how many recent messages they’d like to fetch. Parameters:
  • storage (BaseKeyValueStorage, optional): A storage mechanism for storing chat history. If None, an :obj:InMemoryKeyValueStorage will be used. (default: :obj:None)
  • keep_rate (float, optional): In historical messages, the score of the last message is 1.0, and with each step taken backward, the score of the message is multiplied by the keep_rate. Higher keep_rate leads to high possibility to keep history messages during context creation. (default: :obj:0.9)

init

def __init__(
    self,
    storage: Optional[BaseKeyValueStorage] = None,
    keep_rate: float = 0.9
):

retrieve

def retrieve(self, window_size: Optional[int] = None):
Retrieves records with a proper size for the agent from the memory based on the window size or fetches the entire chat history if no window size is specified. Parameters:
  • window_size (int, optional): Specifies the number of recent chat messages to retrieve. If not provided, the entire chat history will be retrieved. (default: :obj:None)
Returns: List[ContextRecord]: A list of retrieved records.

write_records

def write_records(self, records: List[MemoryRecord]):
Writes memory records to the memory. Additionally, performs validation checks on the messages. Parameters:
  • records (List[MemoryRecord]): Memory records to be added to the memory.

clear

def clear(self):
Clears all chat messages from the memory.