You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Suppose there is a multi-turn dialog:
USER: What is the name of the hero of the novel The Count of Monte Cristo?
ASSISTANT:The hero of the novel "The Count of Monte Cristo" by Alexandre Dumas is Edmond Dantès.
USER:What is the name of his fiancee?
The correct answer is: His fiancée is named Mercédès.
if use mem0
from openai import OpenAI
from mem0 import Memory
openai_client = OpenAI()
memory = Memory()
def chat_with_memories(message: str, user_id: str = "default_user") -> str:
# Retrieve relevant memories
relevant_memories = memory.search(query=message, user_id=user_id, limit=3)
memories_str = "\n".join(f"- {entry['memory']}" for entry in relevant_memories)
# Generate Assistant response
system_prompt = f"You are a helpful AI. Answer the question based on query and memories.\nUser Memories:\n{memories_str}"
messages = [{"role": "system", "content": system_prompt}, {"role": "user", "content": message}]
response = openai_client.chat.completions.create(model="gpt-4o-mini", messages=messages)
assistant_response = response.choices[0].message.content
# Create new memories from the conversation
messages.append({"role": "assistant", "content": assistant_response})
memory.add(messages, user_id=user_id)
return assistant_response
def main():
print("Chat with AI (type 'exit' to quit)")
while True:
user_input = input("You: ").strip()
if user_input.lower() == 'exit':
print("Goodbye!")
break
print(f"AI: {chat_with_memories(user_input)}")
if __name__ == "__main__":
main()
Its response is: I'm sorry, but I don't have any information about someone's fiancée. If you provide more context or details, I may be able to help with something else.
I traced the execution of the code and found out that it was the LLM using FACT_RETRIEVAL_PROMPT to extract the message that returned null, so no message was added to memory.
So my question is, what support can mem0 provide to implement such a simple multi-turn dialog, or does it require the user to manually put the last few rounds of dialog into the prompt?
The text was updated successfully, but these errors were encountered:
Hey @chenk-gd, I tried the example you posted and seems like there is nothing to remember from the conversation and hence no memories were created.
Regarding the multi-turn conversation question, you will have to pass the last-k rounds of the conversation for now to extract the best possible memories. However, we are working on a newer version of the algorithm using which you will only have to pass the new messages and Mem0 will maintain the history for you.
Suppose there is a multi-turn dialog:
USER: What is the name of the hero of the novel The Count of Monte Cristo?
ASSISTANT:The hero of the novel "The Count of Monte Cristo" by Alexandre Dumas is Edmond Dantès.
USER:What is the name of his fiancee?
The correct answer is: His fiancée is named Mercédès.
if use mem0
Its response is: I'm sorry, but I don't have any information about someone's fiancée. If you provide more context or details, I may be able to help with something else.
I traced the execution of the code and found out that it was the LLM using FACT_RETRIEVAL_PROMPT to extract the message that returned null, so no message was added to memory.
So my question is, what support can mem0 provide to implement such a simple multi-turn dialog, or does it require the user to manually put the last few rounds of dialog into the prompt?
The text was updated successfully, but these errors were encountered: