validate_input_variables() — langchain Function Reference
Architecture documentation for the validate_input_variables() function in chat.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 667da55a_6fd3_6435_1529_5240cb4dec4c["validate_input_variables()"] 6be4a9a5_5fe4_e64f_c374_e63767576bf6["ChatPromptTemplate"] 667da55a_6fd3_6435_1529_5240cb4dec4c -->|defined in| 6be4a9a5_5fe4_e64f_c374_e63767576bf6 style 667da55a_6fd3_6435_1529_5240cb4dec4c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/langchain_core/prompts/chat.py lines 1048–1098
def validate_input_variables(cls, values: dict) -> Any:
"""Validate input variables.
If `input_variables` is not set, it will be set to the union of all input
variables in the messages.
Args:
values: values to validate.
Returns:
Validated values.
Raises:
ValueError: If input variables do not match.
"""
messages = values["messages"]
input_vars: set = set()
optional_variables = set()
input_types: dict[str, Any] = values.get("input_types", {})
for message in messages:
if isinstance(message, (BaseMessagePromptTemplate, BaseChatPromptTemplate)):
input_vars.update(message.input_variables)
if isinstance(message, MessagesPlaceholder):
if "partial_variables" not in values:
values["partial_variables"] = {}
if (
message.optional
and message.variable_name not in values["partial_variables"]
):
values["partial_variables"][message.variable_name] = []
optional_variables.add(message.variable_name)
if message.variable_name not in input_types:
input_types[message.variable_name] = list[AnyMessage]
if "partial_variables" in values:
input_vars -= set(values["partial_variables"])
if optional_variables:
input_vars -= optional_variables
if "input_variables" in values and values.get("validate_template"):
if input_vars != set(values["input_variables"]):
msg = (
"Got mismatched input_variables. "
f"Expected: {input_vars}. "
f"Got: {values['input_variables']}"
)
raise ValueError(msg)
else:
values["input_variables"] = sorted(input_vars)
if optional_variables:
values["optional_variables"] = sorted(optional_variables)
values["input_types"] = input_types
return values
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does validate_input_variables() do?
validate_input_variables() is a function in the langchain codebase, defined in libs/core/langchain_core/prompts/chat.py.
Where is validate_input_variables() defined?
validate_input_variables() is defined in libs/core/langchain_core/prompts/chat.py at line 1048.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free