We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qinshu1109/memos-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
from abc import abstractmethod
from typing import Any
from memos.configs.memory import BaseTextMemoryConfig
from memos.memories.base import BaseMemory
from memos.memories.textual.item import TextualMemoryItem
from memos.types import MessageList
class BaseTextMemory(BaseMemory):
"""Base class for all textual memory implementations."""
@abstractmethod
def __init__(self, config: BaseTextMemoryConfig):
"""Initialize memory with the given configuration."""
@abstractmethod
def extract(self, messages: MessageList) -> list[TextualMemoryItem]:
"""Extract memories based on the messages.
Args:
messages (MessageList): The messages to extract memories from.
Returns:
list[TextualMemoryItem]: List of extracted memory items.
"""
@abstractmethod
def add(self, memories: list[TextualMemoryItem | dict[str, Any]]) -> None:
"""Add memories.
Args:
memories: List of TextualMemoryItem objects or dictionaries to add.
"""
@abstractmethod
def update(self, memory_id: str, new_memory: TextualMemoryItem | dict[str, Any]) -> None:
"""Update a memory by memory_id."""
@abstractmethod
def search(self, query: str, top_k: int, info=None) -> list[TextualMemoryItem]:
"""Search for memories based on a query.
Args:
query (str): The query to search for.
top_k (int): The number of top results to return.
info (dict): Leave a record of memory consumption.
Returns:
list[TextualMemoryItem]: List of matching memories.
"""
@abstractmethod
def get(self, memory_id: str) -> TextualMemoryItem:
"""Get a memory by its ID.
Args:
memory_id (str): The ID of the memory to retrieve.
Returns:
TextualMemoryItem: The memory with the given ID.
"""
@abstractmethod
def get_by_ids(self, memory_ids: list[str]) -> list[TextualMemoryItem]:
"""Get memories by their IDs.
Args:
memory_ids (list[str]): List of memory IDs to retrieve.
Returns:
list[TextualMemoryItem]: List of memories with the specified IDs.
"""
@abstractmethod
def get_all(self) -> list[TextualMemoryItem]:
"""Get all memories.
Returns:
list[TextualMemoryItem]: List of all memories.
"""
@abstractmethod
def delete(self, memory_ids: list[str]) -> None:
"""Delete memories.
Args:
memory_ids (list[str]): List of memory IDs to delete.
"""
@abstractmethod
def delete_all(self) -> None:
"""Delete all memories."""
@abstractmethod
def drop(
self,
) -> None:
"""Drop all databases."""