Spaces:
Sleeping
Sleeping
| 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}") |