TransformChain Class — langchain Architecture
Architecture documentation for the TransformChain class in transform.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 7144c443_e893_b66a_5e9b_98c6b8dbbaac["TransformChain"] f3cef70e_11b0_61c9_7ec0_7308f4b45056["Chain"] 7144c443_e893_b66a_5e9b_98c6b8dbbaac -->|extends| f3cef70e_11b0_61c9_7ec0_7308f4b45056 e6c07047_5b21_318e_c458_6d7282d06c1a["transform.py"] 7144c443_e893_b66a_5e9b_98c6b8dbbaac -->|defined in| e6c07047_5b21_318e_c458_6d7282d06c1a 4ccfbc6b_6152_f478_6eb4_7b822a2fa40f["_log_once()"] 7144c443_e893_b66a_5e9b_98c6b8dbbaac -->|method| 4ccfbc6b_6152_f478_6eb4_7b822a2fa40f 14347cb3_4317_0dde_dd1d_dd89533833be["input_keys()"] 7144c443_e893_b66a_5e9b_98c6b8dbbaac -->|method| 14347cb3_4317_0dde_dd1d_dd89533833be ce421d7b_e328_25f1_6b44_e7cc4a3997e7["output_keys()"] 7144c443_e893_b66a_5e9b_98c6b8dbbaac -->|method| ce421d7b_e328_25f1_6b44_e7cc4a3997e7 023ef111_e214_aa65_28ba_021e80a40e68["_call()"] 7144c443_e893_b66a_5e9b_98c6b8dbbaac -->|method| 023ef111_e214_aa65_28ba_021e80a40e68 796cc76c_c848_fa6a_171b_5a673a24518d["_acall()"] 7144c443_e893_b66a_5e9b_98c6b8dbbaac -->|method| 796cc76c_c848_fa6a_171b_5a673a24518d
Relationship Graph
Source Code
libs/langchain/langchain_classic/chains/transform.py lines 20–79
class TransformChain(Chain):
"""Chain that transforms the chain output.
Example:
```python
from langchain_classic.chains import TransformChain
transform_chain = TransformChain(input_variables=["text"],
output_variables["entities"], transform=func())
```
"""
input_variables: list[str]
"""The keys expected by the transform's input dictionary."""
output_variables: list[str]
"""The keys returned by the transform's output dictionary."""
transform_cb: Callable[[dict[str, str]], dict[str, str]] = Field(alias="transform")
"""The transform function."""
atransform_cb: Callable[[dict[str, Any]], Awaitable[dict[str, Any]]] | None = Field(
None, alias="atransform"
)
"""The async coroutine transform function."""
@staticmethod
@functools.lru_cache
def _log_once(msg: str) -> None:
"""Log a message once."""
logger.warning(msg)
@property
def input_keys(self) -> list[str]:
"""Expect input keys."""
return self.input_variables
@property
def output_keys(self) -> list[str]:
"""Return output keys."""
return self.output_variables
@override
def _call(
self,
inputs: dict[str, str],
run_manager: CallbackManagerForChainRun | None = None,
) -> dict[str, str]:
return self.transform_cb(inputs)
@override
async def _acall(
self,
inputs: dict[str, Any],
run_manager: AsyncCallbackManagerForChainRun | None = None,
) -> dict[str, Any]:
if self.atransform_cb is not None:
return await self.atransform_cb(inputs)
self._log_once(
"TransformChain's atransform is not provided, falling"
" back to synchronous transform",
)
return self.transform_cb(inputs)
Extends
Source
Frequently Asked Questions
What is the TransformChain class?
TransformChain is a class in the langchain codebase, defined in libs/langchain/langchain_classic/chains/transform.py.
Where is TransformChain defined?
TransformChain is defined in libs/langchain/langchain_classic/chains/transform.py at line 20.
What does TransformChain extend?
TransformChain extends Chain.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free