Spaces:
Building
Building
from json_repair import repair_json | |
import json | |
class PostProcessor: | |
def process(self, response: str) -> dict: | |
json_response = {} | |
try: | |
# Extract the JSON from the generated text. Handle variations in output format. | |
json_string = response | |
if "```json" in response: | |
json_string = response.split("```json")[1].split("```")[0] | |
elif "{" in response and "}" in response: | |
# try to grab the json | |
start_index = response.find("{") | |
end_index = response.rfind("}") + 1 | |
json_string = response[start_index:end_index] | |
json_response = json.loads(repair_json(json_string)) # Added for robustness | |
except Exception as e: | |
print(f"Error parsing JSON: {e}") | |
print(f"Generated text: {response}") | |
json_response = {} | |
return json_response | |