validate_chains() — langchain Function Reference
Architecture documentation for the validate_chains() function in sequential.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 9a79e356_f008_9ba8_a047_1413b54e13c6["validate_chains()"] 68ecb97b_8f93_4457_513e_9002d34f708b["SequentialChain"] 9a79e356_f008_9ba8_a047_1413b54e13c6 -->|defined in| 68ecb97b_8f93_4457_513e_9002d34f708b dbb29170_cc29_b773_e4de_50231f248825["validate_chains()"] dbb29170_cc29_b773_e4de_50231f248825 -->|calls| 9a79e356_f008_9ba8_a047_1413b54e13c6 dbb29170_cc29_b773_e4de_50231f248825["validate_chains()"] 9a79e356_f008_9ba8_a047_1413b54e13c6 -->|calls| dbb29170_cc29_b773_e4de_50231f248825 style 9a79e356_f008_9ba8_a047_1413b54e13c6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain/langchain_classic/chains/sequential.py lines 41–90
def validate_chains(cls, values: dict) -> Any:
"""Validate that the correct inputs exist for all chains."""
chains = values["chains"]
input_variables = values["input_variables"]
memory_keys = []
if "memory" in values and values["memory"] is not None:
"""Validate that prompt input variables are consistent."""
memory_keys = values["memory"].memory_variables
if set(input_variables).intersection(set(memory_keys)):
overlapping_keys = set(input_variables) & set(memory_keys)
msg = (
f"The input key(s) {''.join(overlapping_keys)} are found "
f"in the Memory keys ({memory_keys}) - please use input and "
f"memory keys that don't overlap."
)
raise ValueError(msg)
known_variables = set(input_variables + memory_keys)
for chain in chains:
missing_vars = set(chain.input_keys).difference(known_variables)
if chain.memory:
missing_vars = missing_vars.difference(chain.memory.memory_variables)
if missing_vars:
msg = (
f"Missing required input keys: {missing_vars}, "
f"only had {known_variables}"
)
raise ValueError(msg)
overlapping_keys = known_variables.intersection(chain.output_keys)
if overlapping_keys:
msg = f"Chain returned keys that already exist: {overlapping_keys}"
raise ValueError(msg)
known_variables |= set(chain.output_keys)
if "output_variables" not in values:
if values.get("return_all", False):
output_keys = known_variables.difference(input_variables)
else:
output_keys = chains[-1].output_keys
values["output_variables"] = output_keys
else:
missing_vars = set(values["output_variables"]).difference(known_variables)
if missing_vars:
msg = f"Expected output variables that were not found: {missing_vars}."
raise ValueError(msg)
return values
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does validate_chains() do?
validate_chains() is a function in the langchain codebase, defined in libs/langchain/langchain_classic/chains/sequential.py.
Where is validate_chains() defined?
validate_chains() is defined in libs/langchain/langchain_classic/chains/sequential.py at line 41.
What does validate_chains() call?
validate_chains() calls 1 function(s): validate_chains.
What calls validate_chains()?
validate_chains() is called by 1 function(s): validate_chains.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free