From 7a90b13eba494393b11a5c17e93ee9675db8b1ca Mon Sep 17 00:00:00 2001 From: Kolja Beigel Date: Mon, 31 Jul 2023 17:42:16 +0200 Subject: [PATCH] Excluding properties with defaults from required as per issue #41 (#74) --- openai_function_call/function_calls.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/openai_function_call/function_calls.py b/openai_function_call/function_calls.py index ddd4a91..7b138f8 100644 --- a/openai_function_call/function_calls.py +++ b/openai_function_call/function_calls.py @@ -72,8 +72,9 @@ class openai_function: if k not in ("v__duplicate_kwargs", "args", "kwargs") } parameters["required"] = sorted( - parameters["properties"] - ) # bug workaround see lc + k for k, v in parameters["properties"].items() + if not "default" in v + ) _remove_a_key(parameters, "additionalProperties") self.openai_schema = { "name": self.func.__name__, @@ -130,7 +131,10 @@ class OpenAISchema(BaseModel): parameters = { k: v for k, v in schema.items() if k not in ("title", "description") } - parameters["required"] = sorted(parameters["properties"]) + parameters["required"] = sorted( + k for k, v in parameters["properties"].items() + if not "default" in v + ) if "description" not in schema: schema[