diff --git a/src/memos/mem_reader/multi_modal_struct.py b/src/memos/mem_reader/multi_modal_struct.py index 8b0968ca1..a27d64758 100644 --- a/src/memos/mem_reader/multi_modal_struct.py +++ b/src/memos/mem_reader/multi_modal_struct.py @@ -646,6 +646,7 @@ def _merge_memories_with_llm( return None + @timed def _process_string_fine( self, fast_memory_items: list[TextualMemoryItem], @@ -883,6 +884,7 @@ def _get_llm_tool_trajectory_response(self, mem_str: str) -> dict: logger.error(f"[MultiModalFine] Error calling LLM for tool trajectory: {e}") return [] + @timed def _process_tool_trajectory_fine( self, fast_memory_items: list[TextualMemoryItem], info: dict[str, Any], **kwargs ) -> list[TextualMemoryItem]: diff --git a/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py b/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py index 808410e65..81bd25902 100644 --- a/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py +++ b/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py @@ -11,6 +11,7 @@ from memos.log import get_logger from memos.memories.textual.item import SourceMessage, TextualMemoryItem from memos.types import MessagesType +from memos.utils import timed from .assistant_parser import AssistantParser from .base import BaseMessageParser @@ -120,6 +121,7 @@ def _get_parser(self, message: Any) -> BaseMessageParser | None: logger.warning(f"[MultiModalParser] Could not determine parser for message: {message}") return None + @timed def parse( self, message: MessagesType, @@ -157,6 +159,7 @@ def parse( logger.error(f"[MultiModalParser] Error parsing message: {e}") return [] + @timed def parse_batch( self, messages: list[MessagesType], @@ -182,6 +185,7 @@ def parse_batch( results.append(items) return results + @timed def process_transfer( self, source: SourceMessage, diff --git a/src/memos/mem_reader/read_skill_memory/process_skill_memory.py b/src/memos/mem_reader/read_skill_memory/process_skill_memory.py index d691e53a3..d39955ac2 100644 --- a/src/memos/mem_reader/read_skill_memory/process_skill_memory.py +++ b/src/memos/mem_reader/read_skill_memory/process_skill_memory.py @@ -36,6 +36,7 @@ TOOL_GENERATION_PROMPT, ) from memos.types import MessageList +from memos.utils import timed load_dotenv() @@ -64,6 +65,7 @@ def _generate_content_by_llm(llm: BaseLLM, prompt_template: str, **kwargs) -> An return {} if "json" in prompt_template.lower() else "" +@timed def _batch_extract_skills( task_chunks: dict[str, MessageList], related_memories_map: dict[str, list[TextualMemoryItem]], @@ -97,6 +99,7 @@ def _batch_extract_skills( return results +@timed def _batch_generate_skill_details( raw_skills_data: list[tuple[dict[str, Any], str, MessageList]], related_skill_memories_map: dict[str, list[TextualMemoryItem]], @@ -756,6 +759,7 @@ def _delete_skills( logger.warning(f"Error deleting local file: {e}") +@timed def _write_skills_to_file( skill_memory: dict[str, Any], info: dict[str, Any], skills_dir_config: dict[str, Any] ) -> str: @@ -1000,6 +1004,7 @@ def _get_skill_file_storage_location() -> str: return "LOCAL" +@timed def process_skill_memory_fine( fast_memory_items: list[TextualMemoryItem], info: dict[str, Any], @@ -1064,6 +1069,7 @@ def process_skill_memory_fine( ) related_skill_memories_by_task[task_name] = [] + @timed def _simple_extract(): # simple extract skill memory, only one stage memories = [] @@ -1096,6 +1102,7 @@ def _simple_extract(): ) return memories + @timed def _full_extract(): # full extract skill memory, include two stage raw_extraction_results = _batch_extract_skills(