The Personalized AI Travel Assistant uses Mem0 to store and retrieve information across interactions, enabling a tailored travel planning experience. It integrates with OpenAI’s GPT-4 model to provide detailed and context-aware responses to user queries.
Here’s the complete code to create and interact with a Personalized AI Travel Assistant using Mem0:
import osfrom openai import OpenAIfrom mem0 import Memory# Set the OpenAI API keyos.environ['OPENAI_API_KEY']="sk-xxx"config ={"llm":{"provider":"openai","config":{"model":"gpt-4o","temperature":0.1,"max_tokens":2000,}},"embedder":{"provider":"openai","config":{"model":"text-embedding-3-large"}},"vector_store":{"provider":"qdrant","config":{"collection_name":"test","embedding_model_dims":3072,}},"version":"v1.1",}classPersonalTravelAssistant:def__init__(self): self.client = OpenAI() self.memory = Memory.from_config(config) self.messages =[{"role":"system","content":"You are a personal AI Assistant."}]defask_question(self, question, user_id):# Fetch previous related memories previous_memories = self.search_memories(question, user_id=user_id)# Build the prompt system_message ="You are a personal AI Assistant."if previous_memories: prompt =f"{system_message}\n\nUser input: {question}\nPrevious memories: {', '.join(previous_memories)}"else: prompt =f"{system_message}\n\nUser input: {question}"# Generate response using Responses API response = self.client.responses.create( model="gpt-4o",input=prompt)# Extract answer from the response answer = response.output[0].content[0].text# Store the question in memory self.memory.add(question, user_id=user_id)return answerdefget_memories(self, user_id): memories = self.memory.get_all(user_id=user_id)return[m['memory']for m in memories['results']]defsearch_memories(self, query, user_id): memories = self.memory.search(query, user_id=user_id)return[m['memory']for m in memories['results']]# Usage exampleuser_id ="traveler_123"ai_assistant = PersonalTravelAssistant()defmain():whileTrue: question =input("Question: ")if question.lower()in['q','exit']:print("Exiting...")break answer = ai_assistant.ask_question(question, user_id=user_id)print(f"Answer: {answer}") memories = ai_assistant.get_memories(user_id=user_id)print("Memories:")for memory in memories:print(f"- {memory}")print("-----")if __name__ =="__main__": main()
This Personalized AI Travel Assistant leverages Mem0’s memory capabilities to provide context-aware responses. As you interact with it, the assistant learns and improves, offering increasingly personalized travel advice and information.