Spaces:
Sleeping
Sleeping
import json | |
from pydantic import BaseModel | |
def base_model_to_json(model: BaseModel, indent: int = 3): | |
""" | |
Converts the JSON schema of a base model to a formatted JSON string. | |
Args: | |
model (BaseModel): The base model for which to generate the JSON schema. | |
Returns: | |
str: The JSON schema of the base model as a formatted JSON string. | |
""" | |
out = model.model_json_schema() | |
return str_to_json(out, indent=indent) | |
def extract_json_from_str(response: str): | |
""" | |
Extracts a JSON object from a string. | |
Args: | |
response (str): The string containing the JSON object. | |
Returns: | |
dict: The extracted JSON object. | |
Raises: | |
ValueError: If the string does not contain a valid JSON object. | |
""" | |
json_start = response.index("{") | |
json_end = response.rfind("}") | |
return json.loads(response[json_start : json_end + 1]) | |
def str_to_json(response: str, indent: int = 3): | |
""" | |
Converts a string representation of JSON to a JSON object. | |
Args: | |
response (str): The string representation of JSON. | |
indent (int, optional): The number of spaces to use for indentation in the JSON output. Defaults to 3. | |
Returns: | |
str: The JSON object as a string. | |
""" | |
return json.dumps(response, indent=indent) | |