from guardrails.schema.rail_schema import rail_string_to_schema
def test_rail_scalar_string():
rail_spec = """
Hello world
Hello world
"""
rail_string_to_schema(rail_spec)
def test_rail_object_with_scalar():
rail_spec = """
Hello world
Hello world
"""
rail_string_to_schema(rail_spec)
def test_rail_object_with_list():
rail_spec = """
Hello world
"""
rail_string_to_schema(rail_spec)
def test_rail_object_with_object():
rail_spec = """
Hello world
"""
rail_string_to_schema(rail_spec)
def test_rail_list_with_scalar():
rail_spec = """
Hello world
"""
rail_string_to_schema(rail_spec)
def test_rail_list_with_list():
rail_spec = """
Hello world
"""
rail_string_to_schema(rail_spec)
def test_rail_list_with_object():
rail_spec = """
Hello world
"""
rail_string_to_schema(rail_spec)
def test_rail_outermost_list():
rail_spec = """
Hello world
"""
rail_string_to_schema(rail_spec)
def test_format_not_read_as_validators():
rail_spec = """
Hello world
Hello world
"""
# Declaring Validators in the format field was dropped in 0.5.x
# as stated in the previous DeprecationWarning.
processed_schema = rail_string_to_schema(rail_spec)
assert len(processed_schema.validators) == 0
def test_rail_with_messages():
rail_spec = """
You are a helpful assistant.Tell me a joke.Be brief and concise.
It should not be longer than 1-2 sentences.
"""
schema = rail_string_to_schema(rail_spec)
assert len(schema.exec_opts.messages) == 3
assert schema.exec_opts.messages == [
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": "Tell me a joke.",
},
{
"role": "system",
"content": "Be brief and concise. \n"
" It should not be longer than 1-2 sentences.",
},
]