sparrow-ml / rag /agents /sparrow_parse /sparrow_validator.py
katanaml's picture
Sparrow Parse
42cd5f6
raw
history blame contribute delete
951 Bytes
from genson import SchemaBuilder
from jsonschema import validate, ValidationError
import json
class Validator:
def __init__(self, example_json):
self.generated_schema = self.generate_schema_from_example(example_json)
def generate_schema_from_example(self, example_json):
# Parse the example JSON into a Python object
example_data = json.loads(example_json)
# Generate the schema using Genson
builder = SchemaBuilder()
builder.add_object(example_data)
return builder.to_schema()
def validate_json_against_schema(self, json_string, schema):
try:
json_data = json.loads(json_string) # Parse LLM JSON output
validate(instance=json_data, schema=schema) # Validate against schema
return None # Return None if valid
except (json.JSONDecodeError, ValidationError) as e:
return str(e) # Return error message if invalid