From 3f23d22e6bfcf60655d2c873832419191c18e73c Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 15 Jun 2026 20:25:34 +0200 Subject: [PATCH] Implement content extraction for 'remember' and 'save' messages --- backend/agent/api.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/backend/agent/api.py b/backend/agent/api.py index 24bc45f..7d4c2ce 100644 --- a/backend/agent/api.py +++ b/backend/agent/api.py @@ -63,6 +63,24 @@ def _slugify(value: str) -> str: return slug[:90] or f"workflow-{uuid.uuid4().hex[:8]}" +_REMEMBER_CONTENT_PATTERNS = [ + re.compile(r"^\s*(?:please\s+)?remember\s+(?:this|that)\s*[:\-–—]?\s*(.+)$", re.IGNORECASE | re.DOTALL), + re.compile(r"^\s*(?:please\s+)?save\s+(?:this|that)\s*[:\-–—]?\s*(.+)$", re.IGNORECASE | re.DOTALL), + re.compile(r"^\s*(?:bitte\s+)?merk\s+dir\s+(?:das\s*)?[:\-–—]?\s*(.+)$", re.IGNORECASE | re.DOTALL), + re.compile(r"^\s*(?:bitte\s+)?speicher(?:e)?\s+(?:das|dies|diese|diesen)?\s*[:\-–—]?\s*(.+)$", re.IGNORECASE | re.DOTALL), +] + + +def _extract_remember_content(message: str) -> Optional[str]: + text = str(message or "").strip() + for pattern in _REMEMBER_CONTENT_PATTERNS: + match = pattern.match(text) + if match: + content = match.group(1).strip() + return content or None + return None + + def initialize_agent_system() -> None: Base.metadata.create_all(bind=engine) db = SessionLocal()