memoryscope.core.service

class memoryscope.core.service.BaseMemoryService(memory_operations: ~typing.Dict[str, dict], context: ~memoryscope.core.utils.singleton.singleton.<locals>._singleton, assistant_name: str | None = None, human_name: str | None = None, **kwargs)[source]

Bases: object

An abstract base class for managing memory operations within a multithreaded context. It sets up the infrastructure for operation handling, message storage, and synchronization, along with logging capabilities and customizable configurations.

__init__(memory_operations: ~typing.Dict[str, dict], context: ~memoryscope.core.utils.singleton.singleton.<locals>._singleton, assistant_name: str | None = None, human_name: str | None = None, **kwargs)[source]

Initializes the BaseMemoryService with operation definitions, keys for memory access, and additional keyword arguments for flexibility.

Parameters:
  • memory_operations (Dict[str, dict]) – A dictionary defining available memory operations.

  • context (MemoryscopeContext) – runtime context.

  • human_name (str) – human name.

  • assistant_name (str) – assistant name.

  • **kwargs – Additional parameters to customize service behavior.

property human_name: str
property assistant_name: str
get_chat_messages_scatter(recent_n_pair: int) List[Message][source]
property op_description_dict: Dict[str, str]

Property to retrieve a dictionary mapping operation keys to their descriptions. :returns: A dictionary where keys are operation identifiers and values are their descriptions. :rtype: Dict[str, str]

abstract add_messages_pair(messages: List[Message])[source]
abstract register_operation(name: str, operation_config: dict, **kwargs)[source]
abstract init_service(**kwargs)[source]
start_backend_service(name: str | None = None, **kwargs)[source]
stop_backend_service(wait_service: bool = False)[source]
abstract run_operation(name: str, role_name: str = '', **kwargs)[source]
class memoryscope.core.service.MemoryScopeService(history_msg_count: int = 100, contextual_msg_max_count: int = 10, contextual_msg_min_count: int = 0, **kwargs)[source]

Bases: BaseMemoryService

__init__(history_msg_count: int = 100, contextual_msg_max_count: int = 10, contextual_msg_min_count: int = 0, **kwargs)[source]

init function. :param history_msg_count: The conversation history in memory, control the quantity, and reduce memory usage. :type history_msg_count: int :param contextual_msg_max_count: The maximum context length in a conversation. If it exceeds this length,

it will not be included in the context to prevent token overflow.

Parameters:
  • contextual_msg_min_count (int) – The minimum context length in a conversation. If it is shorter than this length, no conversation summary will be made and no long-term memory will be generated.

  • kwargs (dict) – Additional parameters to customize service behavior.

add_messages_pair(messages: List[Message])[source]

Adds a list of messages to the chat history, it can be a pair [user_message, assistant_message]. Ensuring the message list remains sorted by creation time and does not exceed the maximum history message count.

Parameters:
  • messages (List[Message] | Message) – A single message instance or a list of message instances

  • history. (to be added to the chat)

register_operation(name: str, operation_config: dict, **kwargs)[source]
init_service(**kwargs)[source]
run_operation(name: str, role_name: str = '', **kwargs)[source]

Executes a specific operation by its name with provided keyword arguments.

Parameters:
  • name (str) – The name of the operation to execute.

  • role_name (str) – The name of the operation to execute.

  • **kwargs – Keyword arguments for the operation’s execution.

Returns:

The result of the operation execution, if any. Otherwise, None.

Raises:

Warning – If the operation name is not initialized in _operation_dict.

start_backend_service(name: str | None = None, **kwargs)[source]

Start all backend operations.

stop_backend_service(wait_service: bool = False)[source]

Stops all backend operations that are currently running.