MemoryOS 2.0.19__tar.gz → 2.0.20__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {memoryos-2.0.19 → memoryos-2.0.20}/PKG-INFO +1 -1
- {memoryos-2.0.19 → memoryos-2.0.20}/pyproject.toml +1 -1
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/__init__.py +1 -1
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/formatters_handler.py +11 -2
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/search_handler.py +17 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/product_models.py +13 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/searcher.py +79 -21
- memoryos-2.0.20/src/memos/plugins/README.md +448 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/plugins/hook_defs.py +16 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/search/search_service.py +1 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/LICENSE +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/README.md +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/client.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/config.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/context/dependencies.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/exceptions.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/add_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/base_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/chat_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/component_init.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/config_builders.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/cube_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/memory_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/scheduler_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/handlers/suggestion_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/mcp_serve.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/middleware/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/middleware/auth.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/middleware/rate_limit.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/middleware/request_context.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/routers/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/routers/admin_router.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/routers/server_router.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/server_api.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/server_api_ext.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/utils/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/api/utils/api_keys.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/chunkers/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/chunkers/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/chunkers/charactertext_chunker.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/chunkers/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/chunkers/markdown_chunker.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/chunkers/sentence_chunker.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/chunkers/simple_chunker.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/cli.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/chunker.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/embedder.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/graph_db.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/internet_retriever.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/llm.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/mem_agent.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/mem_chat.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/mem_cube.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/mem_os.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/mem_reader.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/mem_scheduler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/mem_user.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/memory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/reranker.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/configs/vec_db.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/context/context.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dependency.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/deprecation.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/contextualization.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/enrichment.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/hook_defs.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/hooks.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/maintenance.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/pipeline/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/pipeline/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/pipeline/diary.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/pipeline/motive.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/pipeline/persistence.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/pipeline/reasoning.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/pipeline/recall.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/plugin.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/prompts/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/prompts/context_binding_prompt.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/prompts/context_summary_prompt.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/prompts/motive_prompt.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/prompts/reasoning_prompt.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/routers/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/routers/diary_router.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/routers/trigger_router.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/routes.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/search.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/signal_store.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/dream/types.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/embedders/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/embedders/ark.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/embedders/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/embedders/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/embedders/ollama.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/embedders/sentence_transformer.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/embedders/universal_api.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/exceptions.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/extras/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/graph_dbs/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/graph_dbs/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/graph_dbs/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/graph_dbs/item.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/graph_dbs/neo4j.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/graph_dbs/neo4j_community.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/graph_dbs/polardb.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/graph_dbs/postgres.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/hello_world.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/deepseek.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/hf.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/hf_singleton.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/minimax.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/ollama.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/openai.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/openai_new.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/qwen.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/llms/vllm.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/log.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_agent/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_agent/deepsearch_agent.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_agent/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_chat/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_chat/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_chat/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_chat/simple.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_cube/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_cube/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_cube/general.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_cube/navie.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_cube/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_feedback/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_feedback/feedback.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_feedback/simple_feedback.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_feedback/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_os/core.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_os/main.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_os/utils/default_config.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_os/utils/format_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_os/utils/reference_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/memory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/multi_modal_struct.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/assistant_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/file_content_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/image_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/multi_modal_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/string_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/system_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/text_content_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/tool_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/user_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_multi_modal/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_pref_memory/process_preference_memory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_skill_memory/process_skill_memory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/read_skill_memory/upload_skill_memory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/simple_struct.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/strategy_struct.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_reader/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/analyzer/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/analyzer/api_analyzer.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/analyzer/eval_analyzer.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/analyzer/mos_for_test_scheduler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/analyzer/scheduler_for_eval.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/base_mixins/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/base_mixins/memory_ops.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/base_mixins/queue_ops.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/base_mixins/web_log_ops.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/base_scheduler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/general_modules/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/general_modules/api_misc.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/general_modules/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/general_modules/init_components_for_scheduler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/general_modules/misc.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/general_modules/scheduler_logger.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/general_modules/task_threads.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/general_scheduler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/activation_memory_manager.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/enhancement_pipeline.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/filter_pipeline.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/memory_filter.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/post_processor.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/rerank_pipeline.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/retriever.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/search_pipeline.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/memory_manage_modules/search_service.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/monitors/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/monitors/dispatcher_monitor.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/monitors/general_monitor.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/monitors/task_schedule_monitor.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/optimized_scheduler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/orm_modules/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/orm_modules/api_redis_model.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/orm_modules/base_model.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/orm_modules/monitor_models.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/orm_modules/redis_model.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/scheduler_factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/schemas/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/schemas/analyzer_schemas.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/schemas/api_schemas.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/schemas/general_schemas.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/schemas/message_schemas.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/schemas/monitor_schemas.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/schemas/task_schemas.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/base_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/context.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/dispatcher.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/add_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/answer_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/feedback_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_dream_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_read_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/mem_reorganize_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/memory_update_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/pref_add_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/handlers/query_handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/local_queue.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/orchestrator.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/redis_queue.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/registry.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/task_schedule_modules/task_queue.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/api_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/config_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/db_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/filter_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/metrics.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/misc_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/monitor_event_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/utils/status_tracker.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/webservice_modules/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_scheduler/webservice_modules/redis_service.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_user/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_user/mysql_persistent_user_manager.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_user/mysql_user_manager.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_user/persistent_factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_user/persistent_user_manager.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_user/redis_persistent_user_manager.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/mem_user/user_manager.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/activation/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/activation/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/activation/item.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/activation/kv.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/activation/vllmkv.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/parametric/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/parametric/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/parametric/item.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/parametric/lora.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/general.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/item.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/naive.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/prefer_text_memory/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/prefer_text_memory/adder.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/prefer_text_memory/config.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/prefer_text_memory/extractor.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/prefer_text_memory/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/prefer_text_memory/retrievers.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/prefer_text_memory/spliter.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/prefer_text_memory/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/preference.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/simple_preference.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/simple_tree.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/organize/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/organize/handler.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/organize/manager.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/organize/reorganizer.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/advanced_searcher.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/bm25_util.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/reasoner.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/recall.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/reranker.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/retrieve_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/tavilysearch.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memos_tools/dinding_report_bot.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memos_tools/lockfree_dict.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memos_tools/notification_service.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memos_tools/notification_utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memos_tools/singleton.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memos_tools/thread_safe_dict.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memos_tools/thread_safe_dict_segment.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/multi_mem_cube/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/multi_mem_cube/composite_cube.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/multi_mem_cube/single_cube.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/multi_mem_cube/views.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/parsers/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/parsers/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/parsers/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/parsers/markitdown.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/plugins/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/plugins/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/plugins/component_bootstrap.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/plugins/hooks.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/plugins/manager.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/concat.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/cosine_local.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/http_bge.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/http_bge_strategy.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/noop.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/strategies/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/strategies/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/strategies/concat_background.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/strategies/concat_docsource.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/strategies/dialogue_common.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/strategies/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/strategies/single_turn.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/reranker/strategies/singleturn_outmem.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/search/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/settings.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/advanced_search_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/cloud_service_prompt.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/instruction_completion.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/mem_agent_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/mem_feedback_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/mem_reader_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/mem_reader_strategy_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/mem_scheduler_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/mem_search_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/mos_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/prefer_complete_prompt.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/skill_mem_prompt.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/tool_mem_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/templates/tree_reorganize_prompts.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/general_types.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_assistant_message_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_image_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_input_audio_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_refusal_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_content_part_text_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_message_custom_tool_call_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_message_function_tool_call_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_message_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_message_tool_call_union_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_system_message_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_tool_message_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/types/openai_chat_completion_types/chat_completion_user_message_param.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/utils.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/vec_dbs/__init__.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/vec_dbs/base.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/vec_dbs/factory.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/vec_dbs/item.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/vec_dbs/milvus.py +0 -0
- {memoryos-2.0.19 → memoryos-2.0.20}/src/memos/vec_dbs/qdrant.py +0 -0
|
@@ -13,6 +13,13 @@ from memos.templates.instruction_completion import instruct_completion
|
|
|
13
13
|
|
|
14
14
|
logger = get_logger(__name__)
|
|
15
15
|
|
|
16
|
+
__all__ = [
|
|
17
|
+
"format_memory_item",
|
|
18
|
+
"post_process_textual_mem",
|
|
19
|
+
"rerank_knowledge_mem",
|
|
20
|
+
"to_iter",
|
|
21
|
+
]
|
|
22
|
+
|
|
16
23
|
|
|
17
24
|
def to_iter(running: Any) -> list[Any]:
|
|
18
25
|
"""
|
|
@@ -164,6 +171,7 @@ def rerank_knowledge_mem(
|
|
|
164
171
|
text_mem: list[dict[str, Any]],
|
|
165
172
|
top_k: int,
|
|
166
173
|
file_mem_proportion: float = 0.5,
|
|
174
|
+
strip_conversation_sources: bool = False,
|
|
167
175
|
) -> list[dict[str, Any]]:
|
|
168
176
|
"""
|
|
169
177
|
Rerank knowledge memories and keep conversation memories.
|
|
@@ -193,8 +201,9 @@ def rerank_knowledge_mem(
|
|
|
193
201
|
item["memory"] = item["metadata"]["sources"][0]["content"]
|
|
194
202
|
item["metadata"]["sources"] = []
|
|
195
203
|
|
|
196
|
-
|
|
197
|
-
item
|
|
204
|
+
if strip_conversation_sources:
|
|
205
|
+
for item in conversation_mem:
|
|
206
|
+
item.setdefault("metadata", {})["sources"] = []
|
|
198
207
|
|
|
199
208
|
# deduplicate: remove items with duplicate memory content
|
|
200
209
|
original_count = len(reranked_knowledge_mem)
|
|
@@ -118,6 +118,23 @@ class SearchHandler(BaseHandler):
|
|
|
118
118
|
top_k=search_req_local.top_k,
|
|
119
119
|
file_mem_proportion=0.5,
|
|
120
120
|
)
|
|
121
|
+
hooked_results = trigger_hook(
|
|
122
|
+
H.SEARCH_RESULTS_AFTER_RERANK,
|
|
123
|
+
handler=self,
|
|
124
|
+
search_req=search_req_local,
|
|
125
|
+
results=results,
|
|
126
|
+
)
|
|
127
|
+
if hooked_results is not None:
|
|
128
|
+
results = hooked_results
|
|
129
|
+
|
|
130
|
+
hooked_results = trigger_hook(
|
|
131
|
+
H.SEARCH_CONTEXT_RENDER,
|
|
132
|
+
handler=self,
|
|
133
|
+
search_req=search_req_local,
|
|
134
|
+
results=results,
|
|
135
|
+
)
|
|
136
|
+
if hooked_results is not None:
|
|
137
|
+
results = hooked_results
|
|
121
138
|
|
|
122
139
|
self.logger.info(
|
|
123
140
|
f"[SearchHandler] Final search results: count={len(results)} results={results}"
|
|
@@ -422,6 +422,14 @@ class APISearchRequest(BaseRequest):
|
|
|
422
422
|
),
|
|
423
423
|
)
|
|
424
424
|
|
|
425
|
+
rerank: bool = Field(
|
|
426
|
+
True,
|
|
427
|
+
description=(
|
|
428
|
+
"Whether to apply the textual memory reranker during search. "
|
|
429
|
+
"Set false to return retrieval-order candidates before post-search dedup/formatting."
|
|
430
|
+
),
|
|
431
|
+
)
|
|
432
|
+
|
|
425
433
|
pref_top_k: int = Field(
|
|
426
434
|
6,
|
|
427
435
|
ge=0,
|
|
@@ -464,6 +472,11 @@ class APISearchRequest(BaseRequest):
|
|
|
464
472
|
description="Number of skill memories to retrieve (top-K). Default: 3.",
|
|
465
473
|
)
|
|
466
474
|
|
|
475
|
+
context_format: str = Field(
|
|
476
|
+
"memory",
|
|
477
|
+
description="Optional search context format passed through to installed plugins.",
|
|
478
|
+
)
|
|
479
|
+
|
|
467
480
|
# ==== Filter conditions ====
|
|
468
481
|
# TODO: maybe add detailed description later
|
|
469
482
|
filter: dict[str, Any] | None = Field(
|
{memoryos-2.0.19 → memoryos-2.0.20}/src/memos/memories/textual/tree_text_memory/retrieve/searcher.py
RENAMED
|
@@ -77,6 +77,30 @@ class Searcher:
|
|
|
77
77
|
self.tokenizer = tokenizer
|
|
78
78
|
self._usage_executor = ContextThreadPoolExecutor(max_workers=4, thread_name_prefix="usage")
|
|
79
79
|
|
|
80
|
+
def _maybe_rerank(
|
|
81
|
+
self,
|
|
82
|
+
enabled: bool,
|
|
83
|
+
*,
|
|
84
|
+
query: str,
|
|
85
|
+
graph_results: list[TextualMemoryItem],
|
|
86
|
+
top_k: int,
|
|
87
|
+
**kwargs,
|
|
88
|
+
) -> list[tuple[TextualMemoryItem, float]]:
|
|
89
|
+
if not enabled or self.reranker is None:
|
|
90
|
+
return [(item, 0.0) for item in graph_results[:top_k]]
|
|
91
|
+
return self.reranker.rerank(
|
|
92
|
+
query=query,
|
|
93
|
+
graph_results=graph_results,
|
|
94
|
+
top_k=top_k,
|
|
95
|
+
**kwargs,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
@staticmethod
|
|
99
|
+
def _query_embedding_for_rerank(enabled: bool, query_embedding):
|
|
100
|
+
if not enabled:
|
|
101
|
+
return None
|
|
102
|
+
return query_embedding[0]
|
|
103
|
+
|
|
80
104
|
@timed
|
|
81
105
|
def retrieve(
|
|
82
106
|
self,
|
|
@@ -99,6 +123,7 @@ class Searcher:
|
|
|
99
123
|
logger.info(
|
|
100
124
|
f"[RECALL] Start query='{query}', top_k={top_k}, mode={mode}, memory_type={memory_type}, user_name={user_name}"
|
|
101
125
|
)
|
|
126
|
+
rerank = bool(kwargs.get("rerank", True))
|
|
102
127
|
parsed_goal, query_embedding, _context, query = self._parse_task(
|
|
103
128
|
query,
|
|
104
129
|
info,
|
|
@@ -125,6 +150,7 @@ class Searcher:
|
|
|
125
150
|
skill_mem_top_k,
|
|
126
151
|
include_preference_memory,
|
|
127
152
|
pref_mem_top_k,
|
|
153
|
+
rerank,
|
|
128
154
|
)
|
|
129
155
|
return results
|
|
130
156
|
|
|
@@ -350,6 +376,7 @@ class Searcher:
|
|
|
350
376
|
skill_mem_top_k: int = 3,
|
|
351
377
|
include_preference_memory: bool = False,
|
|
352
378
|
pref_mem_top_k: int = 6,
|
|
379
|
+
rerank: bool = True,
|
|
353
380
|
):
|
|
354
381
|
"""Run A/B/C/D/E/F retrieval paths in parallel"""
|
|
355
382
|
tasks = []
|
|
@@ -372,6 +399,7 @@ class Searcher:
|
|
|
372
399
|
search_priority,
|
|
373
400
|
user_name,
|
|
374
401
|
id_filter,
|
|
402
|
+
rerank=rerank,
|
|
375
403
|
)
|
|
376
404
|
)
|
|
377
405
|
tasks.append(
|
|
@@ -387,6 +415,7 @@ class Searcher:
|
|
|
387
415
|
user_name,
|
|
388
416
|
id_filter,
|
|
389
417
|
mode=mode,
|
|
418
|
+
rerank=rerank,
|
|
390
419
|
)
|
|
391
420
|
)
|
|
392
421
|
tasks.append(
|
|
@@ -400,6 +429,7 @@ class Searcher:
|
|
|
400
429
|
mode,
|
|
401
430
|
memory_type,
|
|
402
431
|
user_name,
|
|
432
|
+
rerank=rerank,
|
|
403
433
|
)
|
|
404
434
|
)
|
|
405
435
|
if self.use_fulltext:
|
|
@@ -415,6 +445,7 @@ class Searcher:
|
|
|
415
445
|
search_priority,
|
|
416
446
|
user_name,
|
|
417
447
|
id_filter,
|
|
448
|
+
rerank=rerank,
|
|
418
449
|
)
|
|
419
450
|
)
|
|
420
451
|
if search_tool_memory:
|
|
@@ -431,6 +462,7 @@ class Searcher:
|
|
|
431
462
|
user_name,
|
|
432
463
|
id_filter,
|
|
433
464
|
mode=mode,
|
|
465
|
+
rerank=rerank,
|
|
434
466
|
)
|
|
435
467
|
)
|
|
436
468
|
if include_skill_memory:
|
|
@@ -447,6 +479,7 @@ class Searcher:
|
|
|
447
479
|
user_name,
|
|
448
480
|
id_filter,
|
|
449
481
|
mode=mode,
|
|
482
|
+
rerank=rerank,
|
|
450
483
|
)
|
|
451
484
|
)
|
|
452
485
|
if include_preference_memory:
|
|
@@ -463,6 +496,7 @@ class Searcher:
|
|
|
463
496
|
user_name,
|
|
464
497
|
id_filter,
|
|
465
498
|
mode=mode,
|
|
499
|
+
rerank=rerank,
|
|
466
500
|
)
|
|
467
501
|
)
|
|
468
502
|
results = []
|
|
@@ -485,6 +519,7 @@ class Searcher:
|
|
|
485
519
|
search_priority: dict | None = None,
|
|
486
520
|
user_name: str | None = None,
|
|
487
521
|
id_filter: dict | None = None,
|
|
522
|
+
rerank: bool = True,
|
|
488
523
|
):
|
|
489
524
|
"""Retrieve and rerank from WorkingMemory"""
|
|
490
525
|
if memory_type not in ["All", "WorkingMemory"]:
|
|
@@ -501,9 +536,10 @@ class Searcher:
|
|
|
501
536
|
id_filter=id_filter,
|
|
502
537
|
use_fast_graph=self.use_fast_graph,
|
|
503
538
|
)
|
|
504
|
-
return self.
|
|
539
|
+
return self._maybe_rerank(
|
|
540
|
+
rerank,
|
|
505
541
|
query=query,
|
|
506
|
-
query_embedding=query_embedding
|
|
542
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
507
543
|
graph_results=items,
|
|
508
544
|
top_k=top_k,
|
|
509
545
|
parsed_goal=parsed_goal,
|
|
@@ -613,6 +649,7 @@ class Searcher:
|
|
|
613
649
|
search_priority: dict | None = None,
|
|
614
650
|
user_name: str | None = None,
|
|
615
651
|
id_filter: dict | None = None,
|
|
652
|
+
rerank: bool = True,
|
|
616
653
|
) -> list[tuple[TextualMemoryItem, float]]:
|
|
617
654
|
"""Keyword/fulltext path that directly calls graph DB fulltext search."""
|
|
618
655
|
|
|
@@ -687,9 +724,10 @@ class Searcher:
|
|
|
687
724
|
ordered_nodes.append(node)
|
|
688
725
|
|
|
689
726
|
results = [TextualMemoryItem.from_dict(n) for n in ordered_nodes]
|
|
690
|
-
return self.
|
|
727
|
+
return self._maybe_rerank(
|
|
728
|
+
rerank,
|
|
691
729
|
query=query,
|
|
692
|
-
query_embedding=query_embedding
|
|
730
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
693
731
|
graph_results=results,
|
|
694
732
|
top_k=top_k,
|
|
695
733
|
parsed_goal=parsed_goal,
|
|
@@ -710,6 +748,7 @@ class Searcher:
|
|
|
710
748
|
user_name: str | None = None,
|
|
711
749
|
id_filter: dict | None = None,
|
|
712
750
|
mode: str = "fast",
|
|
751
|
+
rerank: bool = True,
|
|
713
752
|
):
|
|
714
753
|
"""Retrieve and rerank from LongTermMemory and UserMemory"""
|
|
715
754
|
results = []
|
|
@@ -781,9 +820,10 @@ class Searcher:
|
|
|
781
820
|
results = self._deduplicate_rawfile_results(results, user_name=user_name)
|
|
782
821
|
results = self._filter_intermediate_content(results)
|
|
783
822
|
|
|
784
|
-
return self.
|
|
823
|
+
return self._maybe_rerank(
|
|
824
|
+
rerank,
|
|
785
825
|
query=query,
|
|
786
|
-
query_embedding=query_embedding
|
|
826
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
787
827
|
graph_results=results,
|
|
788
828
|
top_k=top_k,
|
|
789
829
|
parsed_goal=parsed_goal,
|
|
@@ -792,7 +832,13 @@ class Searcher:
|
|
|
792
832
|
|
|
793
833
|
@timed
|
|
794
834
|
def _retrieve_from_memcubes(
|
|
795
|
-
self,
|
|
835
|
+
self,
|
|
836
|
+
query,
|
|
837
|
+
parsed_goal,
|
|
838
|
+
query_embedding,
|
|
839
|
+
top_k,
|
|
840
|
+
cube_name="memos_cube01",
|
|
841
|
+
rerank: bool = True,
|
|
796
842
|
):
|
|
797
843
|
"""Retrieve and rerank from LongTermMemory and UserMemory"""
|
|
798
844
|
results = self.graph_retriever.retrieve_from_cube(
|
|
@@ -802,9 +848,10 @@ class Searcher:
|
|
|
802
848
|
cube_name=cube_name,
|
|
803
849
|
user_name=cube_name,
|
|
804
850
|
)
|
|
805
|
-
return self.
|
|
851
|
+
return self._maybe_rerank(
|
|
852
|
+
rerank,
|
|
806
853
|
query=query,
|
|
807
|
-
query_embedding=query_embedding
|
|
854
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
808
855
|
graph_results=results,
|
|
809
856
|
top_k=top_k,
|
|
810
857
|
parsed_goal=parsed_goal,
|
|
@@ -822,6 +869,7 @@ class Searcher:
|
|
|
822
869
|
mode,
|
|
823
870
|
memory_type,
|
|
824
871
|
user_id: str | None = None,
|
|
872
|
+
rerank: bool = True,
|
|
825
873
|
):
|
|
826
874
|
"""Retrieve and rerank from Internet source"""
|
|
827
875
|
if not self.internet_retriever:
|
|
@@ -838,9 +886,10 @@ class Searcher:
|
|
|
838
886
|
query=query, top_k=2 * top_k, parsed_goal=parsed_goal, info=info, mode=mode
|
|
839
887
|
)
|
|
840
888
|
logger.info(f"[PATH-C] '{query}' Retrieved from internet {len(items)} items: {items}")
|
|
841
|
-
return self.
|
|
889
|
+
return self._maybe_rerank(
|
|
890
|
+
rerank,
|
|
842
891
|
query=query,
|
|
843
|
-
query_embedding=query_embedding
|
|
892
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
844
893
|
graph_results=items,
|
|
845
894
|
top_k=top_k,
|
|
846
895
|
parsed_goal=parsed_goal,
|
|
@@ -860,6 +909,7 @@ class Searcher:
|
|
|
860
909
|
user_name: str | None = None,
|
|
861
910
|
id_filter: dict | None = None,
|
|
862
911
|
mode: str = "fast",
|
|
912
|
+
rerank: bool = True,
|
|
863
913
|
):
|
|
864
914
|
"""Retrieve and rerank from ToolMemory"""
|
|
865
915
|
results = {
|
|
@@ -920,17 +970,19 @@ class Searcher:
|
|
|
920
970
|
elif rsp and rsp[0].metadata.memory_type == "ToolTrajectoryMemory":
|
|
921
971
|
results["ToolTrajectoryMemory"].extend(rsp)
|
|
922
972
|
|
|
923
|
-
schema_reranked = self.
|
|
973
|
+
schema_reranked = self._maybe_rerank(
|
|
974
|
+
rerank,
|
|
924
975
|
query=query,
|
|
925
|
-
query_embedding=query_embedding
|
|
976
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
926
977
|
graph_results=results["ToolSchemaMemory"],
|
|
927
978
|
top_k=top_k,
|
|
928
979
|
parsed_goal=parsed_goal,
|
|
929
980
|
search_filter=search_filter,
|
|
930
981
|
)
|
|
931
|
-
trajectory_reranked = self.
|
|
982
|
+
trajectory_reranked = self._maybe_rerank(
|
|
983
|
+
rerank,
|
|
932
984
|
query=query,
|
|
933
|
-
query_embedding=query_embedding
|
|
985
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
934
986
|
graph_results=results["ToolTrajectoryMemory"],
|
|
935
987
|
top_k=top_k,
|
|
936
988
|
parsed_goal=parsed_goal,
|
|
@@ -952,6 +1004,7 @@ class Searcher:
|
|
|
952
1004
|
user_name: str | None = None,
|
|
953
1005
|
id_filter: dict | None = None,
|
|
954
1006
|
mode: str = "fast",
|
|
1007
|
+
rerank: bool = True,
|
|
955
1008
|
):
|
|
956
1009
|
"""Retrieve and rerank from SkillMemory"""
|
|
957
1010
|
|
|
@@ -982,9 +1035,10 @@ class Searcher:
|
|
|
982
1035
|
use_fast_graph=self.use_fast_graph,
|
|
983
1036
|
)
|
|
984
1037
|
|
|
985
|
-
return self.
|
|
1038
|
+
return self._maybe_rerank(
|
|
1039
|
+
rerank,
|
|
986
1040
|
query=query,
|
|
987
|
-
query_embedding=query_embedding
|
|
1041
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
988
1042
|
graph_results=items,
|
|
989
1043
|
top_k=top_k,
|
|
990
1044
|
parsed_goal=parsed_goal,
|
|
@@ -1004,6 +1058,7 @@ class Searcher:
|
|
|
1004
1058
|
user_name: str | None = None,
|
|
1005
1059
|
id_filter: dict | None = None,
|
|
1006
1060
|
mode: str = "fast",
|
|
1061
|
+
rerank: bool = True,
|
|
1007
1062
|
):
|
|
1008
1063
|
"""Retrieve and rerank from PreferenceMemory"""
|
|
1009
1064
|
if memory_type not in ["All", "PreferenceMemory"]:
|
|
@@ -1033,9 +1088,10 @@ class Searcher:
|
|
|
1033
1088
|
use_fast_graph=self.use_fast_graph,
|
|
1034
1089
|
)
|
|
1035
1090
|
|
|
1036
|
-
return self.
|
|
1091
|
+
return self._maybe_rerank(
|
|
1092
|
+
rerank,
|
|
1037
1093
|
query=query,
|
|
1038
|
-
query_embedding=query_embedding
|
|
1094
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embedding),
|
|
1039
1095
|
graph_results=items,
|
|
1040
1096
|
top_k=top_k,
|
|
1041
1097
|
parsed_goal=parsed_goal,
|
|
@@ -1086,9 +1142,11 @@ class Searcher:
|
|
|
1086
1142
|
logger.info(
|
|
1087
1143
|
f"[SIMPLESEARCH] after unrelated subgroup selection items count: {len(selected_items)}"
|
|
1088
1144
|
)
|
|
1089
|
-
|
|
1145
|
+
rerank = bool(kwargs.get("rerank", True))
|
|
1146
|
+
return self._maybe_rerank(
|
|
1147
|
+
rerank,
|
|
1090
1148
|
query=query,
|
|
1091
|
-
query_embedding=query_embeddings
|
|
1149
|
+
query_embedding=self._query_embedding_for_rerank(rerank, query_embeddings),
|
|
1092
1150
|
graph_results=selected_items,
|
|
1093
1151
|
top_k=top_k,
|
|
1094
1152
|
)
|