Fix not working with Gemini models (#2021)

This commit is contained in:
Hieu Lam
2025-01-09 18:49:26 +07:00
committed by GitHub
parent c90f87e657
commit 4c31c65649
4 changed files with 63 additions and 17 deletions

View File

@@ -1,3 +1,4 @@
import re
import json
from mem0.configs.prompts import FACT_RETRIEVAL_PROMPT
@@ -21,10 +22,24 @@ def parse_messages(messages):
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)
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()