From dab334999076c496a1c757c6edd2d0bf854c2452 Mon Sep 17 00:00:00 2001 From: Parshva Daftari <89991302+parshvadaftari@users.noreply.github.com> Date: Mon, 17 Mar 2025 21:57:23 +0530 Subject: [PATCH] Neo4j embeddings error (#2377) --- mem0/client/main.py | 4 ++-- mem0/memory/main.py | 36 +++++++++++++++++++----------------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/mem0/client/main.py b/mem0/client/main.py index bf0bbe60..95024d69 100644 --- a/mem0/client/main.py +++ b/mem0/client/main.py @@ -6,7 +6,7 @@ from typing import Any, Dict, List, Optional, Union import httpx -from mem0.memory.setup import setup_config, get_user_id +from mem0.memory.setup import get_user_id, setup_config from mem0.memory.telemetry import capture_client_event logger = logging.getLogger(__name__) @@ -110,7 +110,7 @@ class MemoryClient: try: error_data = e.response.json() error_message = error_data.get("detail", str(e)) - except: + except Exception: error_message = str(e) raise ValueError(f"Error: {error_message}") diff --git a/mem0/memory/main.py b/mem0/memory/main.py index c2c45d48..e62d76a6 100644 --- a/mem0/memory/main.py +++ b/mem0/memory/main.py @@ -16,12 +16,8 @@ from mem0.memory.base import MemoryBase from mem0.memory.setup import setup_config from mem0.memory.storage import SQLiteManager from mem0.memory.telemetry import capture_event -from mem0.memory.utils import ( - get_fact_retrieval_messages, - parse_messages, - parse_vision_messages, - remove_code_blocks, -) +from mem0.memory.utils import (get_fact_retrieval_messages, parse_messages, + parse_vision_messages, remove_code_blocks) from mem0.utils.factory import EmbedderFactory, LlmFactory, VectorStoreFactory # Setup user config @@ -57,12 +53,27 @@ class Memory(MemoryBase): @classmethod def from_config(cls, config_dict: Dict[str, Any]): try: + config = cls._process_config(config_dict) config = MemoryConfig(**config_dict) except ValidationError as e: logger.error(f"Configuration validation error: {e}") raise return cls(config) + @staticmethod + def _process_config(config_dict: Dict[str, Any]) -> Dict[str, Any]: + if "graph_store" in config_dict: + if "vector_store" not in config_dict and "embedder" in config_dict: + config_dict["vector_store"] = {} + config_dict["vector_store"]["config"] = {} + config_dict["vector_store"]["config"]["embedding_model_dims"] = config_dict["embedder"]["config"]["embedding_dims"] + try: + return config_dict + except ValidationError as e: + logger.error(f"Configuration validation error: {e}") + raise + + def add( self, messages, @@ -305,16 +316,7 @@ class Memory(MemoryBase): ).model_dump(exclude={"score"}) # Add metadata if there are additional keys - excluded_keys = { - "user_id", - "agent_id", - "run_id", - "hash", - "data", - "created_at", - "updated_at", - "id" - } + excluded_keys = {"user_id", "agent_id", "run_id", "hash", "data", "created_at", "updated_at", "id"} additional_metadata = {k: v for k, v in memory.payload.items() if k not in excluded_keys} if additional_metadata: memory_item["metadata"] = additional_metadata @@ -658,4 +660,4 @@ class Memory(MemoryBase): capture_event("mem0.reset", self) def chat(self, query): - raise NotImplementedError("Chat function not implemented yet.") \ No newline at end of file + raise NotImplementedError("Chat function not implemented yet.")