_recursive_set_additional_properties_false() — langchain Function Reference
Architecture documentation for the _recursive_set_additional_properties_false() function in function_calling.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 93b93d40_4003_ab0c_4132_2e7d4ae7d2e9["_recursive_set_additional_properties_false()"] 344b2838_87a8_d5dc_b550_fdb443ff6c4e["function_calling.py"] 93b93d40_4003_ab0c_4132_2e7d4ae7d2e9 -->|defined in| 344b2838_87a8_d5dc_b550_fdb443ff6c4e 8dd6ec0a_3761_ea6f_0c59_c034b831f0df["convert_to_openai_function()"] 8dd6ec0a_3761_ea6f_0c59_c034b831f0df -->|calls| 93b93d40_4003_ab0c_4132_2e7d4ae7d2e9 style 93b93d40_4003_ab0c_4132_2e7d4ae7d2e9 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/langchain_core/utils/function_calling.py lines 785–812
def _recursive_set_additional_properties_false(
schema: dict[str, Any],
) -> dict[str, Any]:
if isinstance(schema, dict):
# Check if 'required' is a key at the current level or if the schema is empty,
# in which case additionalProperties still needs to be specified.
if (
"required" in schema
or ("properties" in schema and not schema["properties"])
# Since Pydantic 2.11, it will always add `additionalProperties: True`
# for arbitrary dictionary schemas
# See: https://pydantic.dev/articles/pydantic-v2-11-release#changes
# If it is already set to True, we need override it to False
or "additionalProperties" in schema
):
schema["additionalProperties"] = False
# Recursively check 'properties' and 'items' if they exist
if "anyOf" in schema:
for sub_schema in schema["anyOf"]:
_recursive_set_additional_properties_false(sub_schema)
if "properties" in schema:
for sub_schema in schema["properties"].values():
_recursive_set_additional_properties_false(sub_schema)
if "items" in schema:
_recursive_set_additional_properties_false(schema["items"])
return schema
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does _recursive_set_additional_properties_false() do?
_recursive_set_additional_properties_false() is a function in the langchain codebase, defined in libs/core/langchain_core/utils/function_calling.py.
Where is _recursive_set_additional_properties_false() defined?
_recursive_set_additional_properties_false() is defined in libs/core/langchain_core/utils/function_calling.py at line 785.
What calls _recursive_set_additional_properties_false()?
_recursive_set_additional_properties_false() is called by 1 function(s): convert_to_openai_function.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free