Download backend/qkernel/executors/memory_executor.py from metarm/QMetaRam: direct link, hf CLI and curl.
- Browser
- Download file 1.65 kB
-
https://huggingface.co/metarm/QMetaRam/resolve/main/backend/qkernel/executors/memory_executor.py
- Command line
-
hf download hf://metarm/QMetaRam/backend/qkernel/executors/memory_executor.py
-
curl -L -o memory_executor.py https://huggingface.co/metarm/QMetaRam/resolve/main/backend/qkernel/executors/memory_executor.py
1.65 kB
| import logging | |
| import json | |
| from ..core import BaseService | |
| from ..memory import MemoryEngine | |
| logger = logging.getLogger("qkernel.executors.memory") | |
| class MemoryExecutor(BaseService): | |
| name: str = "memory" | |
| def __init__(self, engine: MemoryEngine | None = None) -> None: | |
| self.engine = engine or MemoryEngine() | |
| async def process(self, event: dict) -> dict: | |
| action = event.get("action", "read") | |
| user_id = event.get("user_id", "anonymous") | |
| session_id = event.get("session_id", "default") | |
| if action == "store": | |
| content = event.get("content", "") | |
| role = event.get("role", "user") | |
| if not content.strip(): | |
| return {"error": "empty_content", "action": action} | |
| self.engine.write(user_id, session_id, role, content) | |
| return {"action": action, "stored": True, "length": len(content)} | |
| if action == "search": | |
| query = event.get("query", "") | |
| limit = int(event.get("limit", 10)) | |
| records = self.engine.read(user_id, session_id, limit=limit) | |
| if query.strip(): | |
| records = [ | |
| r for r in records if query.lower() in r.get("content", "").lower() | |
| ] | |
| return {"action": action, "results": records} | |
| if action == "stats": | |
| return {"action": action, "stats": self.engine.get_stats()} | |
| records = self.engine.read(user_id, session_id) | |
| return { | |
| "action": "read", | |
| "records": records, | |
| "note": json.dumps({"user_id": user_id, "session_id": session_id}), | |
| } |