Skip to content

Commit 51fa046

Browse files
committed
🐛 fix(metadata): Enhance YAML parsing error handling
1 parent 27728ce commit 51fa046

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

.github/scripts/generate_metadata.py

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,30 +57,32 @@ def generate_metadata(prompt_content):
5757
logger.info(f"Response structure: {type(message)}")
5858
logger.info(f"Content structure: {type(message.content)}")
5959

60-
# Extract the YAML content from the AI response
60+
# Extract the content from the AI response
6161
content = message.content[0].text if isinstance(message.content, list) else message.content
6262
logger.info(f"Extracted content: {content[:100]}...")
6363

64+
# Check if the content is enclosed in output tags
6465
output_start = content.find("<output>")
6566
output_end = content.find("</output>")
67+
6668
if output_start != -1 and output_end != -1:
6769
yaml_content = content[output_start + 8:output_end].strip()
68-
logger.info(f"Extracted YAML content: {yaml_content[:100]}...")
70+
else:
71+
yaml_content = content.strip()
72+
73+
logger.info(f"Extracted YAML content: {yaml_content[:100]}...")
6974

70-
class SafeLoaderIgnoreUnknown(yaml.SafeLoader):
71-
def ignore_unknown(self, node):
72-
return None
73-
74-
SafeLoaderIgnoreUnknown.add_constructor(None, SafeLoaderIgnoreUnknown.ignore_unknown)
75+
class SafeLoaderIgnoreUnknown(yaml.SafeLoader):
76+
def ignore_unknown(self, node):
77+
return None
78+
79+
SafeLoaderIgnoreUnknown.add_constructor(None, SafeLoaderIgnoreUnknown.ignore_unknown)
7580

76-
try:
77-
metadata = yaml.load(yaml_content, Loader=SafeLoaderIgnoreUnknown)
78-
logger.info("YAML content parsed successfully")
79-
except yaml.YAMLError as e:
80-
logger.error(f"YAML parsing error: {e}")
81-
metadata = {}
82-
else:
83-
logger.error("Could not find metadata output in AI response")
81+
try:
82+
metadata = yaml.load(yaml_content, Loader=SafeLoaderIgnoreUnknown)
83+
logger.info("YAML content parsed successfully")
84+
except yaml.YAMLError as e:
85+
logger.error(f"YAML parsing error: {e}")
8486
metadata = {}
8587

8688
return metadata

0 commit comments

Comments
 (0)