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[