@@ -57,30 +57,32 @@ def generate_metadata(prompt_content):
57
57
logger .info (f"Response structure: { type (message )} " )
58
58
logger .info (f"Content structure: { type (message .content )} " )
59
59
60
- # Extract the YAML content from the AI response
60
+ # Extract the content from the AI response
61
61
content = message .content [0 ].text if isinstance (message .content , list ) else message .content
62
62
logger .info (f"Extracted content: { content [:100 ]} ..." )
63
63
64
+ # Check if the content is enclosed in output tags
64
65
output_start = content .find ("<output>" )
65
66
output_end = content .find ("</output>" )
67
+
66
68
if output_start != - 1 and output_end != - 1 :
67
69
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 ]} ..." )
69
74
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 )
75
80
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 } " )
84
86
metadata = {}
85
87
86
88
return metadata
0 commit comments