letxinet / fix_braces.py
C2MV's picture
Initial upload for Build Small Hackathon
68fb5e2 verified
Raw
History Blame Contribute Delete
1.81 kB
import re
with open("backend/prompts/synthesis.py", "r", encoding="utf-8") as f:
content = f.read()
# Separate MASTER_SYNTHESIS_PROMPT from the rest
idx = content.find('WRITING_PROMPT = """')
if idx == -1:
print("Could not find WRITING_PROMPT")
exit(1)
master_part = content[:idx]
rest_part = content[idx:]
# In rest_part, we want to fix the curly braces.
# \section{{{section}}} -> \section{{section}}
rest_part = rest_part.replace(r"\section{{{section}}}", r"\section{{section}}")
# \subsection{{}} -> \subsection{}
rest_part = rest_part.replace(r"\subsection{{}}", r"\subsection{}")
# \subsubsection{{}} -> \subsubsection{}
rest_part = rest_part.replace(r"\subsubsection{{}}", r"\subsubsection{}")
# \textbf{{texto}} -> \textbf{texto}
rest_part = rest_part.replace(r"\textbf{{texto}}", r"\textbf{texto}")
# \textit{{texto}} -> \textit{texto}
rest_part = rest_part.replace(r"\textit{{texto}}", r"\textit{texto}")
# \begin{{itemize}} -> \begin{itemize}
rest_part = rest_part.replace(r"\begin{{itemize}}", r"\begin{itemize}")
# \end{{itemize}} -> \end{itemize}
rest_part = rest_part.replace(r"\end{{itemize}}", r"\end{itemize}")
# {{{{BIB:ID}}}} -> {{BIB:ID}}
rest_part = rest_part.replace(r"{{{{BIB:ID}}}}", r"{{BIB:ID}}")
# For JSON in VALIDATION_PROMPT, AUDIT_PROMPT, ARA_PROMPT
# We can replace {{ with { and }} with } but we MUST NOT break {{BIB:ID}}
# So first we temporarily change {{BIB:ID}} to something else
rest_part = rest_part.replace(r"{{BIB:ID}}", r"__BIB_ID__")
rest_part = rest_part.replace(r"{{", r"{")
rest_part = rest_part.replace(r"}}", r"}")
rest_part = rest_part.replace(r"__BIB_ID__", r"{{BIB:ID}}")
# Write back
with open("backend/prompts/synthesis.py", "w", encoding="utf-8") as f:
f.write(master_part + rest_part)
print("Fixed backend/prompts/synthesis.py")