Spaces:
Runtime error
Runtime error
Scott Cogan commited on
Commit ·
1e77542
1
Parent(s): 41caec1
fix: Improve template processing for code blocks and newlines
Browse files
app.py
CHANGED
|
@@ -91,22 +91,28 @@ with open("prompts.yaml", 'r') as stream:
|
|
| 91 |
try:
|
| 92 |
# First, ensure we have valid template syntax
|
| 93 |
if '{{' in value or '{%' in value:
|
|
|
|
|
|
|
|
|
|
| 94 |
# Ensure template variables are properly formatted
|
| 95 |
value = value.replace('{{', '{{ ').replace('}}', ' }}')
|
| 96 |
# Ensure template blocks are properly formatted
|
| 97 |
value = value.replace('{%', '{% ').replace('%}', ' %}')
|
| 98 |
-
|
| 99 |
-
value = value.replace('\n', '\\n')
|
| 100 |
# Add spaces around template expressions if missing
|
| 101 |
-
value = re.sub(r'{{([^{}]+)}}', r'{{ \1 }}', value)
|
| 102 |
-
value = re.sub(r'{%([^{}]+)%}', r'{% \1 %}', value)
|
| 103 |
-
# Ensure proper spacing in template expressions
|
| 104 |
value = re.sub(r'{{([^{}]+)}}', lambda m: '{{ ' + m.group(1).strip() + ' }}', value)
|
| 105 |
value = re.sub(r'{%([^{}]+)%}', lambda m: '{% ' + m.group(1).strip() + ' %}', value)
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
logger.debug(f"Processed template string: {value[:100]}...")
|
| 111 |
else:
|
| 112 |
logger.debug("No template syntax found in string")
|
|
|
|
| 91 |
try:
|
| 92 |
# First, ensure we have valid template syntax
|
| 93 |
if '{{' in value or '{%' in value:
|
| 94 |
+
# Handle code blocks first
|
| 95 |
+
value = re.sub(r'```([^`]+)```', lambda m: m.group(0).replace('\n', '\\n'), value)
|
| 96 |
+
|
| 97 |
# Ensure template variables are properly formatted
|
| 98 |
value = value.replace('{{', '{{ ').replace('}}', ' }}')
|
| 99 |
# Ensure template blocks are properly formatted
|
| 100 |
value = value.replace('{%', '{% ').replace('%}', ' %}')
|
| 101 |
+
|
|
|
|
| 102 |
# Add spaces around template expressions if missing
|
|
|
|
|
|
|
|
|
|
| 103 |
value = re.sub(r'{{([^{}]+)}}', lambda m: '{{ ' + m.group(1).strip() + ' }}', value)
|
| 104 |
value = re.sub(r'{%([^{}]+)%}', lambda m: '{% ' + m.group(1).strip() + ' %}', value)
|
| 105 |
+
|
| 106 |
+
# Handle newlines in a way that preserves formatting
|
| 107 |
+
value = value.replace('\n', '\\n')
|
| 108 |
+
|
| 109 |
+
# Remove any double spaces except in code blocks
|
| 110 |
+
value = re.sub(r'(?<!```)(\s+)(?!```)', ' ', value)
|
| 111 |
+
|
| 112 |
+
# Restore code blocks
|
| 113 |
+
value = value.replace('\\n```', '\n```')
|
| 114 |
+
value = value.replace('```\\n', '```\n')
|
| 115 |
+
|
| 116 |
logger.debug(f"Processed template string: {value[:100]}...")
|
| 117 |
else:
|
| 118 |
logger.debug("No template syntax found in string")
|