docs: fix search method return value handling in integration and example docs (#3208)
This commit is contained in:
@@ -87,8 +87,8 @@ class Companion:
|
||||
|
||||
previous_memories = self.memory.search(question, user_id=user_id_to_use)
|
||||
relevant_memories_text = ""
|
||||
if previous_memories:
|
||||
relevant_memories_text = '\n'.join(mem["memory"] for mem in previous_memories)
|
||||
if previous_memories and previous_memories.get('results'):
|
||||
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}"
|
||||
|
||||
@@ -146,7 +146,7 @@ def print_memories(user_id, label):
|
||||
memories = ai_companion.get_memories(user_id=user_id)
|
||||
if memories:
|
||||
for m in memories:
|
||||
print(f"- {m['text']}")
|
||||
print(f"- {m['memory']}")
|
||||
else:
|
||||
print("No memories found.")
|
||||
|
||||
|
||||
@@ -213,8 +213,8 @@ class MultiAgentLearningSystem:
|
||||
query="learning machine learning"
|
||||
)
|
||||
|
||||
if memories and len(memories):
|
||||
history = "\n".join(f"- {m['memory']}" for m in memories)
|
||||
if memories and memories.get('results'):
|
||||
history = "\n".join(f"- {m['memory']}" for m in memories['results'])
|
||||
return history
|
||||
else:
|
||||
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.")
|
||||
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"""
|
||||
You are a writing assistant.
|
||||
|
||||
@@ -225,7 +225,7 @@ async function addSampleMemories() {
|
||||
|
||||
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 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}` : "";
|
||||
};
|
||||
|
||||
|
||||
@@ -155,11 +155,11 @@ class PersonalTravelAssistant:
|
||||
|
||||
def get_memories(self, 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):
|
||||
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
|
||||
user_id = "traveler_123"
|
||||
|
||||
@@ -104,7 +104,7 @@ def demonstrate_sync_memory(local_config, sample_messages, sample_preferences, u
|
||||
results = memory.search(query, user_id=user_id)
|
||||
|
||||
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')}")
|
||||
else:
|
||||
print("No results found")
|
||||
|
||||
@@ -128,7 +128,7 @@ def chat_user(
|
||||
if user_input:
|
||||
# Search for relevant memories
|
||||
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
|
||||
prompt = f"""
|
||||
|
||||
@@ -68,7 +68,7 @@ Create a function to get context-aware responses based on user's question and pr
|
||||
```python
|
||||
def get_context_aware_response(question):
|
||||
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:
|
||||
Previous interactions:
|
||||
@@ -100,7 +100,7 @@ manager = ConversableAgent(
|
||||
|
||||
def escalate_to_manager(question):
|
||||
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"""
|
||||
Context from previous interactions:
|
||||
|
||||
@@ -152,7 +152,7 @@ Define the two key memory functions that will be registered as tools:
|
||||
)
|
||||
|
||||
# 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)
|
||||
|
||||
if memories:
|
||||
|
||||
@@ -49,8 +49,8 @@ mem0 = MemoryClient()
|
||||
def search_memory(query: str, user_id: str) -> dict:
|
||||
"""Search through past conversations and memories"""
|
||||
memories = mem0.search(query, user_id=user_id)
|
||||
if memories:
|
||||
memory_context = "\n".join([f"- {mem['memory']}" for mem in memories])
|
||||
if memories.get('results', []):
|
||||
memory_context = "\n".join([f"- {mem['memory']}" for mem in memories.get('results', [])])
|
||||
return {"status": "success", "memories": memory_context}
|
||||
return {"status": "no_memories", "message": "No relevant memories found"}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ Create functions to handle context retrieval, response generation, and addition
|
||||
def retrieve_context(query: str, user_id: str) -> List[Dict]:
|
||||
"""Retrieve relevant context from Mem0"""
|
||||
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 = [
|
||||
{
|
||||
"role": "system",
|
||||
|
||||
@@ -68,7 +68,7 @@ def chatbot(state: State):
|
||||
memories = mem0.search(messages[-1].content, user_id=user_id)
|
||||
|
||||
context = "Relevant information from previous conversations:\n"
|
||||
for memory in memories:
|
||||
for memory in memories.get('results', []):
|
||||
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.
|
||||
|
||||
@@ -119,9 +119,9 @@ class MemoryEnabledAgent(Agent):
|
||||
user_id=RAG_USER_ID,
|
||||
)
|
||||
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 = []
|
||||
for result in search_results:
|
||||
for result in search_results.get('results', []):
|
||||
paragraph = result.get("memory") or result.get("text")
|
||||
if paragraph:
|
||||
source = "mem0 Memories"
|
||||
|
||||
@@ -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."
|
||||
|
||||
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(relevant_memories_text)
|
||||
```
|
||||
@@ -98,9 +98,9 @@ def get_travel_info(question, use_memory=True):
|
||||
if use_memory:
|
||||
previous_memories = memory_client.search(question, user_id=USER_ID)
|
||||
relevant_memories_text = ""
|
||||
if previous_memories:
|
||||
if previous_memories and previous_memories.get('results'):
|
||||
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:"
|
||||
prompt = f"{command}\n Question: {question} \n My preferences: {relevant_memories_text}"
|
||||
|
||||
@@ -47,8 +47,8 @@ mem0 = MemoryClient()
|
||||
def search_memory(query: str, user_id: str) -> str:
|
||||
"""Search through past conversations and memories"""
|
||||
memories = mem0.search(query, user_id=user_id, limit=3)
|
||||
if memories:
|
||||
return "\n".join([f"- {mem['memory']}" for mem in memories])
|
||||
if memories and memories.get('results'):
|
||||
return "\n".join([f"- {mem['memory']}" for mem in memories['results']])
|
||||
return "No relevant memories found."
|
||||
|
||||
@function_tool
|
||||
|
||||
Reference in New Issue
Block a user