import re from mem0.configs.prompts import FACT_RETRIEVAL_PROMPT def get_fact_retrieval_messages(message): return FACT_RETRIEVAL_PROMPT, f"Input: {message}" def parse_messages(messages): response = "" for msg in messages: if msg["role"] == "system": response += f"system: {msg['content']}\n" if msg["role"] == "user": response += f"user: {msg['content']}\n" if msg["role"] == "assistant": response += f"assistant: {msg['content']}\n" return response def format_entities(entities): if not entities: return "" formatted_lines = [] for entity in entities: simplified = f"{entity['source']} -- {entity['relatationship']} -- {entity['destination']}" formatted_lines.append(simplified) return "\n".join(formatted_lines) def remove_code_blocks(content: str) -> str: """ Removes enclosing code block markers ```[language] and ``` from a given string. Remarks: - The function uses a regex pattern to match code blocks that may start with ``` followed by an optional language tag (letters or numbers) and end with ```. - If a code block is detected, it returns only the inner content, stripping out the markers. - If no code block markers are found, the original content is returned as-is. """ pattern = r"^```[a-zA-Z0-9]*\n([\s\S]*?)\n```$" match = re.match(pattern, content.strip()) return match.group(1).strip() if match else content.strip()