mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-16 08:06:14 +00:00
add test
This commit is contained in:
parent
0c752c6b81
commit
360daf74e9
@ -788,7 +788,7 @@ def _recursive_set_additional_properties_false(
|
||||
schema["additionalProperties"] = False
|
||||
|
||||
# Recursively check 'properties' and 'items' if they exist
|
||||
if 'anyOf' in schema:
|
||||
if "anyOf" in schema:
|
||||
for sub_schema in schema["anyOf"]:
|
||||
_recursive_set_additional_properties_false(sub_schema)
|
||||
if "properties" in schema:
|
||||
|
@ -497,6 +497,61 @@ def test_convert_to_openai_function_nested_strict() -> None:
|
||||
assert actual == expected
|
||||
|
||||
|
||||
def test_convert_to_openai_function_strict_union_type() -> None:
|
||||
class NestedA(BaseModel):
|
||||
foo: str
|
||||
|
||||
class NestedB(BaseModel):
|
||||
bar: int
|
||||
|
||||
class NestedC(BaseModel):
|
||||
baz: bool
|
||||
|
||||
def my_function(my_arg: Union[NestedA, NestedB, NestedC]) -> None:
|
||||
"""Dummy function."""
|
||||
|
||||
expected = {
|
||||
"name": "my_function",
|
||||
"description": "Dummy function.",
|
||||
"parameters": {
|
||||
"properties": {
|
||||
"my_arg": {
|
||||
"anyOf": [
|
||||
{
|
||||
"properties": {"foo": {"title": "Foo", "type": "string"}},
|
||||
"required": ["foo"],
|
||||
"title": "NestedA",
|
||||
"type": "object",
|
||||
"additionalProperties": False,
|
||||
},
|
||||
{
|
||||
"properties": {"bar": {"title": "Bar", "type": "integer"}},
|
||||
"required": ["bar"],
|
||||
"title": "NestedB",
|
||||
"type": "object",
|
||||
"additionalProperties": False,
|
||||
},
|
||||
{
|
||||
"properties": {"baz": {"title": "Baz", "type": "boolean"}},
|
||||
"required": ["baz"],
|
||||
"title": "NestedC",
|
||||
"type": "object",
|
||||
"additionalProperties": False,
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": ["my_arg"],
|
||||
"type": "object",
|
||||
"additionalProperties": False,
|
||||
},
|
||||
"strict": True,
|
||||
}
|
||||
|
||||
actual = convert_to_openai_function(my_function, strict=True)
|
||||
assert actual == expected, str(actual)
|
||||
|
||||
|
||||
json_schema_no_description_no_params = {
|
||||
"title": "dummy_function",
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user