__init__() — langchain Function Reference
Architecture documentation for the __init__() function in pii.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD fa1679df_f25b_9844_3766_68a5bcbba53c["__init__()"] dc527b75_da40_4d1c_e472_82d1252ba70b["PIIMiddleware"] fa1679df_f25b_9844_3766_68a5bcbba53c -->|defined in| dc527b75_da40_4d1c_e472_82d1252ba70b style fa1679df_f25b_9844_3766_68a5bcbba53c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/langchain/agents/middleware/pii.py lines 100–154
def __init__(
self,
# From a typing point of view, the literals are covered by 'str'.
# Nonetheless, we escape PYI051 to keep hints and autocompletion for the caller.
pii_type: Literal["email", "credit_card", "ip", "mac_address", "url"] | str, # noqa: PYI051
*,
strategy: Literal["block", "redact", "mask", "hash"] = "redact",
detector: Callable[[str], list[PIIMatch]] | str | None = None,
apply_to_input: bool = True,
apply_to_output: bool = False,
apply_to_tool_results: bool = False,
) -> None:
"""Initialize the PII detection middleware.
Args:
pii_type: Type of PII to detect.
Can be a built-in type (`email`, `credit_card`, `ip`, `mac_address`,
`url`) or a custom type name.
strategy: How to handle detected PII.
Options:
* `block`: Raise `PIIDetectionError` when PII is detected
* `redact`: Replace with `[REDACTED_TYPE]` placeholders
* `mask`: Partially mask PII (show last few characters)
* `hash`: Replace with deterministic hash (format: `<type_hash:digest>`)
detector: Custom detector function or regex pattern.
* If `Callable`: Function that takes content string and returns
list of `PIIMatch` objects
* If `str`: Regex pattern to match PII
* If `None`: Uses built-in detector for the `pii_type`
apply_to_input: Whether to check user messages before model call.
apply_to_output: Whether to check AI messages after model call.
apply_to_tool_results: Whether to check tool result messages after tool execution.
Raises:
ValueError: If `pii_type` is not built-in and no detector is provided.
"""
super().__init__()
self.apply_to_input = apply_to_input
self.apply_to_output = apply_to_output
self.apply_to_tool_results = apply_to_tool_results
self._resolved_rule: ResolvedRedactionRule = RedactionRule(
pii_type=pii_type,
strategy=strategy,
detector=detector,
).resolve()
self.pii_type = self._resolved_rule.pii_type
self.strategy = self._resolved_rule.strategy
self.detector = self._resolved_rule.detector
Domain
Subdomains
Source
Frequently Asked Questions
What does __init__() do?
__init__() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/pii.py.
Where is __init__() defined?
__init__() is defined in libs/langchain_v1/langchain/agents/middleware/pii.py at line 100.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free