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.

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.