Neo4j embeddings error (#2377)

This commit is contained in:
Parshva Daftari
2025-03-17 21:57:23 +05:30
committed by GitHub
parent 6db87e8d07
commit dab3349990
2 changed files with 21 additions and 19 deletions

View File

@@ -6,7 +6,7 @@ from typing import Any, Dict, List, Optional, Union
import httpx 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 from mem0.memory.telemetry import capture_client_event
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -110,7 +110,7 @@ class MemoryClient:
try: try:
error_data = e.response.json() error_data = e.response.json()
error_message = error_data.get("detail", str(e)) error_message = error_data.get("detail", str(e))
except: except Exception:
error_message = str(e) error_message = str(e)
raise ValueError(f"Error: {error_message}") raise ValueError(f"Error: {error_message}")

View File

@@ -16,12 +16,8 @@ from mem0.memory.base import MemoryBase
from mem0.memory.setup import setup_config from mem0.memory.setup import setup_config
from mem0.memory.storage import SQLiteManager from mem0.memory.storage import SQLiteManager
from mem0.memory.telemetry import capture_event from mem0.memory.telemetry import capture_event
from mem0.memory.utils import ( from mem0.memory.utils import (get_fact_retrieval_messages, parse_messages,
get_fact_retrieval_messages, parse_vision_messages, remove_code_blocks)
parse_messages,
parse_vision_messages,
remove_code_blocks,
)
from mem0.utils.factory import EmbedderFactory, LlmFactory, VectorStoreFactory from mem0.utils.factory import EmbedderFactory, LlmFactory, VectorStoreFactory
# Setup user config # Setup user config
@@ -57,12 +53,27 @@ class Memory(MemoryBase):
@classmethod @classmethod
def from_config(cls, config_dict: Dict[str, Any]): def from_config(cls, config_dict: Dict[str, Any]):
try: try:
config = cls._process_config(config_dict)
config = MemoryConfig(**config_dict) config = MemoryConfig(**config_dict)
except ValidationError as e: except ValidationError as e:
logger.error(f"Configuration validation error: {e}") logger.error(f"Configuration validation error: {e}")
raise raise
return cls(config) 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( def add(
self, self,
messages, messages,
@@ -305,16 +316,7 @@ class Memory(MemoryBase):
).model_dump(exclude={"score"}) ).model_dump(exclude={"score"})
# Add metadata if there are additional keys # Add metadata if there are additional keys
excluded_keys = { excluded_keys = {"user_id", "agent_id", "run_id", "hash", "data", "created_at", "updated_at", "id"}
"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} additional_metadata = {k: v for k, v in memory.payload.items() if k not in excluded_keys}
if additional_metadata: if additional_metadata:
memory_item["metadata"] = additional_metadata memory_item["metadata"] = additional_metadata
@@ -658,4 +660,4 @@ class Memory(MemoryBase):
capture_event("mem0.reset", self) capture_event("mem0.reset", self)
def chat(self, query): def chat(self, query):
raise NotImplementedError("Chat function not implemented yet.") raise NotImplementedError("Chat function not implemented yet.")