Files
AI/참고/guardrails-main/guardrails/schema/primitive_schema.py

37 lines
1.1 KiB
Python
Raw Normal View History

2026-05-12 19:40:31 +09:00
from typing import List, Optional
from guardrails_ai.types import Validator as ValidatorReference, JSONSchema
from guardrails.classes.output_type import OutputTypes
from guardrails.classes.schema.processed_schema import ProcessedSchema
from guardrails.types.simple import SimpleTypes
from guardrails.validator_base import Validator
def primitive_to_schema(
validators: List[Validator],
*,
type: SimpleTypes = SimpleTypes.STRING,
description: Optional[str] = None,
) -> ProcessedSchema:
processed_schema = ProcessedSchema(validators=[], validator_map={})
# TODO: Update when we support other primitive types
processed_schema.output_type = OutputTypes.STRING
processed_schema.validators = [
ValidatorReference(
id=v.rail_alias,
on="$",
on_fail=v.on_fail_descriptor, # type: ignore
kwargs=v.get_args(),
)
for v in validators
]
processed_schema.validator_map = {"$": validators}
processed_schema.json_schema = JSONSchema(
type=type, description=description
).model_dump(exclude_none=True, by_alias=True)
return processed_schema