docs: fix search method return value handling in integration and example docs (#3208)

This commit is contained in:
cnScarb
2025-08-11 12:16:01 -05:00
committed by GitHub
parent 2307dc8613
commit c2792c6558
15 changed files with 25 additions and 25 deletions
+3 -3
View File
@@ -87,8 +87,8 @@ class Companion:
previous_memories = self.memory.search(question, user_id=user_id_to_use) previous_memories = self.memory.search(question, user_id=user_id_to_use)
relevant_memories_text = "" relevant_memories_text = ""
if previous_memories: if previous_memories and previous_memories.get('results'):
relevant_memories_text = '\n'.join(mem["memory"] for mem in previous_memories) relevant_memories_text = '\n'.join(mem["memory"] for mem in previous_memories['results'])
prompt = f"User input: {question}\nPrevious {check_answer} memories: {relevant_memories_text}" prompt = f"User input: {question}\nPrevious {check_answer} memories: {relevant_memories_text}"
@@ -146,7 +146,7 @@ def print_memories(user_id, label):
memories = ai_companion.get_memories(user_id=user_id) memories = ai_companion.get_memories(user_id=user_id)
if memories: if memories:
for m in memories: for m in memories:
print(f"- {m['text']}") print(f"- {m['memory']}")
else: else:
print("No memories found.") print("No memories found.")
@@ -213,8 +213,8 @@ class MultiAgentLearningSystem:
query="learning machine learning" query="learning machine learning"
) )
if memories and len(memories): if memories and memories.get('results'):
history = "\n".join(f"- {m['memory']}" for m in memories) history = "\n".join(f"- {m['memory']}" for m in memories['results'])
return history return history
else: else:
return "No learning history found yet. Let's start building your profile!" return "No learning history found yet. Let's start building your profile!"
@@ -86,7 +86,7 @@ def apply_writing_style(original_content):
print("No preferences found.") print("No preferences found.")
return None return None
preferences = "\n".join(r["memory"] for r in results) preferences = "\n".join(r["memory"] for r in results.get('results', []))
system_prompt = f""" system_prompt = f"""
You are a writing assistant. You are a writing assistant.
+1 -1
View File
@@ -225,7 +225,7 @@ async function addSampleMemories() {
const getMemoryString = (memories) => { const getMemoryString = (memories) => {
const MEMORY_STRING_PREFIX = "These are the memories I have stored. Give more weightage to the question by users and try to answer that first. You have to modify your answer based on the memories I have provided. If the memories are irrelevant you can ignore them. Also don't reply to this section of the prompt, or the memories, they are only for your reference. The MEMORIES of the USER are: \n\n"; const MEMORY_STRING_PREFIX = "These are the memories I have stored. Give more weightage to the question by users and try to answer that first. You have to modify your answer based on the memories I have provided. If the memories are irrelevant you can ignore them. Also don't reply to this section of the prompt, or the memories, they are only for your reference. The MEMORIES of the USER are: \n\n";
const memoryString = memories.map((mem) => `${mem.memory}`).join("\n") ?? ""; const memoryString = (memories?.results || memories).map((mem) => `${mem.memory}`).join("\n") ?? "";
return memoryString.length > 0 ? `${MEMORY_STRING_PREFIX}${memoryString}` : ""; return memoryString.length > 0 ? `${MEMORY_STRING_PREFIX}${memoryString}` : "";
}; };
+2 -2
View File
@@ -155,11 +155,11 @@ class PersonalTravelAssistant:
def get_memories(self, user_id): def get_memories(self, user_id):
memories = self.memory.get_all(user_id=user_id) memories = self.memory.get_all(user_id=user_id)
return [m['memory'] for m in memories['memories']] return [m['memory'] for m in memories.get('results', [])]
def search_memories(self, query, user_id): def search_memories(self, query, user_id):
memories = self.memory.search(query, user_id=user_id) memories = self.memory.search(query, user_id=user_id)
return [m['memory'] for m in memories['memories']] return [m['memory'] for m in memories.get('results', [])]
# Usage example # Usage example
user_id = "traveler_123" user_id = "traveler_123"
+1 -1
View File
@@ -104,7 +104,7 @@ def demonstrate_sync_memory(local_config, sample_messages, sample_preferences, u
results = memory.search(query, user_id=user_id) results = memory.search(query, user_id=user_id)
if results and "results" in results: if results and "results" in results:
for j, result in enumerate(results): for j, result in enumerate(results['results']):
print(f"Result {j+1}: {result.get('memory', 'N/A')}") print(f"Result {j+1}: {result.get('memory', 'N/A')}")
else: else:
print("No results found") print("No results found")
+1 -1
View File
@@ -128,7 +128,7 @@ def chat_user(
if user_input: if user_input:
# Search for relevant memories # Search for relevant memories
memories = client.search(user_input, user_id=user_id) memories = client.search(user_input, user_id=user_id)
memory_context = "\n".join(f"- {m['memory']}" for m in memories) memory_context = "\n".join(f"- {m['memory']}" for m in memories.get('results', []))
# Construct the prompt # Construct the prompt
prompt = f""" prompt = f"""
+2 -2
View File
@@ -68,7 +68,7 @@ Create a function to get context-aware responses based on user's question and pr
```python ```python
def get_context_aware_response(question): def get_context_aware_response(question):
relevant_memories = memory_client.search(question, user_id=USER_ID) relevant_memories = memory_client.search(question, user_id=USER_ID)
context = "\n".join([m["memory"] for m in relevant_memories]) context = "\n".join([m["memory"] for m in relevant_memories.get('results', [])])
prompt = f"""Answer the user question considering the previous interactions: prompt = f"""Answer the user question considering the previous interactions:
Previous interactions: Previous interactions:
@@ -100,7 +100,7 @@ manager = ConversableAgent(
def escalate_to_manager(question): def escalate_to_manager(question):
relevant_memories = memory_client.search(question, user_id=USER_ID) relevant_memories = memory_client.search(question, user_id=USER_ID)
context = "\n".join([m["memory"] for m in relevant_memories]) context = "\n".join([m["memory"] for m in relevant_memories.get('results', [])])
prompt = f""" prompt = f"""
Context from previous interactions: Context from previous interactions:
+1 -1
View File
@@ -152,7 +152,7 @@ Define the two key memory functions that will be registered as tools:
) )
# Extract and join the memory texts # Extract and join the memory texts
memories = ' '.join([result["memory"] for result in results]) memories = ' '.join([result["memory"] for result in results.get('results', [])])
print("[ Memories ]", memories) print("[ Memories ]", memories)
if memories: if memories:
+2 -2
View File
@@ -49,8 +49,8 @@ mem0 = MemoryClient()
def search_memory(query: str, user_id: str) -> dict: def search_memory(query: str, user_id: str) -> dict:
"""Search through past conversations and memories""" """Search through past conversations and memories"""
memories = mem0.search(query, user_id=user_id) memories = mem0.search(query, user_id=user_id)
if memories: if memories.get('results', []):
memory_context = "\n".join([f"- {mem['memory']}" for mem in memories]) memory_context = "\n".join([f"- {mem['memory']}" for mem in memories.get('results', [])])
return {"status": "success", "memories": memory_context} return {"status": "success", "memories": memory_context}
return {"status": "no_memories", "message": "No relevant memories found"} return {"status": "no_memories", "message": "No relevant memories found"}
+1 -1
View File
@@ -64,7 +64,7 @@ Create functions to handle context retrieval, response generation, and addition
def retrieve_context(query: str, user_id: str) -> List[Dict]: def retrieve_context(query: str, user_id: str) -> List[Dict]:
"""Retrieve relevant context from Mem0""" """Retrieve relevant context from Mem0"""
memories = mem0.search(query, user_id=user_id) memories = mem0.search(query, user_id=user_id)
serialized_memories = ' '.join([mem["memory"] for mem in memories]) serialized_memories = ' '.join([mem["memory"] for mem in memories.get('results', [])])
context = [ context = [
{ {
"role": "system", "role": "system",
+1 -1
View File
@@ -68,7 +68,7 @@ def chatbot(state: State):
memories = mem0.search(messages[-1].content, user_id=user_id) memories = mem0.search(messages[-1].content, user_id=user_id)
context = "Relevant information from previous conversations:\n" context = "Relevant information from previous conversations:\n"
for memory in memories: for memory in memories.get('results', []):
context += f"- {memory['memory']}\n" context += f"- {memory['memory']}\n"
system_message = SystemMessage(content=f"""You are a helpful customer support assistant. Use the provided context to personalize your responses and remember user preferences and past interactions. system_message = SystemMessage(content=f"""You are a helpful customer support assistant. Use the provided context to personalize your responses and remember user preferences and past interactions.
+2 -2
View File
@@ -119,9 +119,9 @@ class MemoryEnabledAgent(Agent):
user_id=RAG_USER_ID, user_id=RAG_USER_ID,
) )
logger.info(f"mem0_client.search returned: {search_results}") logger.info(f"mem0_client.search returned: {search_results}")
if search_results and isinstance(search_results, list): if search_results and search_results.get('results', []):
context_parts = [] context_parts = []
for result in search_results: for result in search_results.get('results', []):
paragraph = result.get("memory") or result.get("text") paragraph = result.get("memory") or result.get("text")
if paragraph: if paragraph:
source = "mem0 Memories" source = "mem0 Memories"
+3 -3
View File
@@ -71,7 +71,7 @@ Define search command and retrieve relevant memories from Mem0.
command = "Find papers on arxiv that I should read based on my interests." command = "Find papers on arxiv that I should read based on my interests."
relevant_memories = memory.search(command, user_id=USER_ID, limit=3) relevant_memories = memory.search(command, user_id=USER_ID, limit=3)
relevant_memories_text = '\n'.join(mem['text'] for mem in relevant_memories) relevant_memories_text = '\n'.join(mem['memory'] for mem in relevant_memories['results'])
print(f"Relevant memories:") print(f"Relevant memories:")
print(relevant_memories_text) print(relevant_memories_text)
``` ```
@@ -98,9 +98,9 @@ def get_travel_info(question, use_memory=True):
if use_memory: if use_memory:
previous_memories = memory_client.search(question, user_id=USER_ID) previous_memories = memory_client.search(question, user_id=USER_ID)
relevant_memories_text = "" relevant_memories_text = ""
if previous_memories: if previous_memories and previous_memories.get('results'):
print("Using previous memories to enhance the search...") print("Using previous memories to enhance the search...")
relevant_memories_text = '\n'.join(mem["memory"] for mem in previous_memories) relevant_memories_text = '\n'.join(mem["memory"] for mem in previous_memories['results'])
command = "Find travel information based on my interests:" command = "Find travel information based on my interests:"
prompt = f"{command}\n Question: {question} \n My preferences: {relevant_memories_text}" prompt = f"{command}\n Question: {question} \n My preferences: {relevant_memories_text}"
+2 -2
View File
@@ -47,8 +47,8 @@ mem0 = MemoryClient()
def search_memory(query: str, user_id: str) -> str: def search_memory(query: str, user_id: str) -> str:
"""Search through past conversations and memories""" """Search through past conversations and memories"""
memories = mem0.search(query, user_id=user_id, limit=3) memories = mem0.search(query, user_id=user_id, limit=3)
if memories: if memories and memories.get('results'):
return "\n".join([f"- {mem['memory']}" for mem in memories]) return "\n".join([f"- {mem['memory']}" for mem in memories['results']])
return "No relevant memories found." return "No relevant memories found."
@function_tool @function_tool