# import os # from mem0 import Memory # import os # from dotenv import load_dotenv # load_dotenv() # os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY") # config = { # "vector_store": { # "provider": "redis", # "config": { # "collection_name": "mem0", # "embedding_model_dims": 1536, # "redis_url": "redis://default:FO6JF6mPJ0bgPj1Rpof84OtYyZUeIxUm@redis-17714.c81.us-east-1-2.ec2.redns.redis-cloud.com:17714" # } # }, "version": "v1.1" # } # m = Memory.from_config(config) # m.add("Likes to play cricket on weekends", user_id="alice", metadata={"category": "hobbies"}) # m.search("Likes to play cricket on weekends", user_id="alice") # m.add("this is srivatsav", user_id="alice", metadata={"category": "hobbies"}) # m.search("vatsav", user_id="alice") #graphql - starts from heare # mem0_graph_demo.py import os from mem0 import Memory from dotenv import load_dotenv load_dotenv() # mem0_aura_fixed.py # mem0_aura_perfect.py import os from mem0 import Memory # === YOUR NEO4J AURA CREDENTIALS === # Replace with YOUR Aura instance (or set as env vars) os.environ["NEO4J_URL"] = "neo4j+s://dc642ef8.databases.neo4j.io" os.environ["NEO4J_USERNAME"] = "neo4j" os.environ["NEO4J_PASSWORD"] = "rKJnbgleD_USIXBo5wfI-zJxRahh8V-IRbksPTZEoYs" # ← PUT YOUR REAL PASSWORD # === CONFIG: Graph ON + High confidence === config = { "version": "v1.1", # REQUIRED for graph "graph_store": { "provider": "neo4j", "config": { "url": os.getenv("NEO4J_URL"), "username": os.getenv("NEO4J_USERNAME"), "password": os.getenv("NEO4J_PASSWORD"), "database": "neo4j", "threshold": 0.85, # only rock-solid edges }, "custom_prompt": ( "Extract ONLY people, events, locations. " "Create a MET edge with properties {event, location}." ), } } print("šŸš€ Starting Mem0 with Neo4j Aura...") memory = Memory.from_config(config_dict=config) print("āœ… Connected – Graph Memory LIVE") # === 1. ADD RELATIONSHIP (official syntax) === messages = [ {"role": "user", "content": "Alice met Bob at GraphConf 2025 in San Francisco."}, {"role": "assistant", "content": "Saved! Building the graph..."} ] memory.add(messages, user_id="alice-2025") # ← NO data=, NO enable_graph= print("āœ… Alice ↔ Bob added to Neo4j") # === 2. SEARCH (official syntax) === results = memory.search( "Who did Alice meet at GraphConf?", # ← positional query user_id="alice-2025", limit=3 ) print("\nšŸ”„ Recall:") for r in results["results"]: print(" •", r["memory"]) # === 3. VERIFY IN NEO4J BROWSER === cypher = """ MATCH (p:Person {name:"Alice"})-[r:MET]->(q:Person {name:"Bob"}) RETURN p.name, r.event, r.location, q.name """ print("\nšŸ“Š Paste into Neo4j Browser:") print(cypher)