14 KiB
14 KiB
In [ ]:
from mem0 import Memory
import os
import logging
import sys
from dotenv import load_dotenv
load_dotenv()
logging.getLogger("mem0.graphs.neptune.main").setLevel(logging.INFO)
logging.getLogger("mem0.graphs.neptune.base").setLevel(logging.INFO)
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logging.basicConfig(
format="%(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
stream=sys.stdout, # Explicitly set output to stdout
)In [ ]:
bedrock_embedder_model = "amazon.titan-embed-text-v2:0"
bedrock_llm_model = "us.anthropic.claude-3-7-sonnet-20250219-v1:0"
embedding_model_dims = 1024
graph_identifier = os.environ.get("GRAPH_ID")
config = {
"embedder": {
"provider": "aws_bedrock",
"config": {
"model": bedrock_embedder_model,
"embedding_dims": embedding_model_dims
}
},
"llm": {
"provider": "aws_bedrock",
"config": {
"model": bedrock_llm_model,
"temperature": 0.1,
"max_tokens": 2000
}
},
"vector_store": {
"provider": "neptune",
"config": {
"endpoint": f"neptune-graph://{graph_identifier}",
},
},
"graph_store": {
"provider": "neptune",
"config": {
"endpoint": f"neptune-graph://{graph_identifier}",
},
},
}In [ ]:
m = Memory.from_config(config_dict=config)
app_id = "movies"
user_id = "alice"
m.delete_all(user_id=user_id)In [ ]:
messages = [
{
"role": "user",
"content": "I'm planning to watch a movie tonight. Any recommendations?",
},
]
# Store inferred memories (default behavior)
result = m.add(messages, user_id=user_id, metadata={"category": "movie_recommendations"})
all_results = m.get_all(user_id=user_id)
for n in all_results["results"]:
print(f"node \"{n['memory']}\": [hash: {n['hash']}]")
for e in all_results["relations"]:
print(f"edge \"{e['source']}\" --{e['relationship']}--> \"{e['target']}\"")In [ ]:
messages = [
{
"role": "assistant",
"content": "How about a thriller movies? They can be quite engaging.",
},
]
# Store inferred memories (default behavior)
result = m.add(messages, user_id=user_id, metadata={"category": "movie_recommendations"})
all_results = m.get_all(user_id=user_id)
for n in all_results["results"]:
print(f"node \"{n['memory']}\": [hash: {n['hash']}]")
for e in all_results["relations"]:
print(f"edge \"{e['source']}\" --{e['relationship']}--> \"{e['target']}\"")In [ ]:
messages = [
{
"role": "user",
"content": "I'm not a big fan of thriller movies but I love sci-fi movies.",
},
]
# Store inferred memories (default behavior)
result = m.add(messages, user_id=user_id, metadata={"category": "movie_recommendations"})
all_results = m.get_all(user_id=user_id)
for n in all_results["results"]:
print(f"node \"{n['memory']}\": [hash: {n['hash']}]")
for e in all_results["relations"]:
print(f"edge \"{e['source']}\" --{e['relationship']}--> \"{e['target']}\"")In [ ]:
messages = [
{
"role": "assistant",
"content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future.",
},
]
# Store inferred memories (default behavior)
result = m.add(messages, user_id=user_id, metadata={"category": "movie_recommendations"})
all_results = m.get_all(user_id=user_id)
for n in all_results["results"]:
print(f"node \"{n['memory']}\": [hash: {n['hash']}]")
for e in all_results["relations"]:
print(f"edge \"{e['source']}\" --{e['relationship']}--> \"{e['target']}\"")In [ ]:
search_results = m.search("what does alice love?", user_id=user_id)
for result in search_results["results"]:
print(f"\"{result['memory']}\" [score: {result['score']}]")
for relation in search_results["relations"]:
print(f"{relation}")In [ ]:
m.delete_all(user_id)
m.reset()


