from qdrant_client import QdrantClient from mem0 import Memory from app.core.config import * # ========================================================= # MEM0 + QDRANT CONFIG # ========================================================= config = { "version": "v1.1", "llm": { "provider": "gemini", "config": { "api_key": GEMINI_API_KEY, "model": "gemini-2.5-flash" } }, "embedder": { "provider": "gemini", "config": { "api_key": GEMINI_API_KEY, "model": "gemini-embedding-001" } }, "vector_store": { "provider": "qdrant", "config": { "url": QDRANT_URL, "api_key": QDRANT_API_KEY, "collection_name": "mem0_memory", "embedding_model_dims": 768 } } } mem_client = Memory.from_config(config) # ========================================================= # SEARCH MEMORY # ========================================================= def search_memory(user_id, user_query): try: results = mem_client.search( query=user_query, filters={"user_id": user_id} ) memories = [ f"ID:{mem.get('id')}\nMemory:{mem.get('memory')}" for mem in results.get("results", []) ] return memories except Exception as e: print(f"[MEMORY SEARCH ERROR]: {e}") return [] # ========================================================= # ADD MEMORY # ========================================================= def add_memory(user_id, user_query, ai_response): try: mem_client.add( user_id=user_id, messages=[ { "role": "user", "content": user_query }, { "role": "assistant", "content": ai_response } ] ) except Exception as e: print(f"[MEMORY ADD ERROR]: {e}")