Home / Function/ _serialize_lc_object() — langchain Function Reference

_serialize_lc_object() — langchain Function Reference

Architecture documentation for the _serialize_lc_object() function in _validation.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  d5caf201_e072_55dd_f795_53d30216643e["_serialize_lc_object()"]
  1b9f9aae_21a8_0928_76d1_c2f1609b2193["_validation.py"]
  d5caf201_e072_55dd_f795_53d30216643e -->|defined in| 1b9f9aae_21a8_0928_76d1_c2f1609b2193
  12e29989_c05d_0426_3212_cc4e68daaa88["_serialize_value()"]
  12e29989_c05d_0426_3212_cc4e68daaa88 -->|calls| d5caf201_e072_55dd_f795_53d30216643e
  3f4f9112_d69f_2284_13b6_85518e946059["_is_lc_secret()"]
  d5caf201_e072_55dd_f795_53d30216643e -->|calls| 3f4f9112_d69f_2284_13b6_85518e946059
  12e29989_c05d_0426_3212_cc4e68daaa88["_serialize_value()"]
  d5caf201_e072_55dd_f795_53d30216643e -->|calls| 12e29989_c05d_0426_3212_cc4e68daaa88
  style d5caf201_e072_55dd_f795_53d30216643e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/langchain_core/load/_validation.py lines 117–145

def _serialize_lc_object(obj: Any) -> dict[str, Any]:
    """Serialize a `Serializable` object with escaping of user data in kwargs.

    Args:
        obj: The `Serializable` object to serialize.

    Returns:
        The serialized dict with user data in kwargs escaped as needed.

    Note:
        Kwargs values are processed with `_serialize_value` to escape user data (like
        metadata) that contains `'lc'` keys. Secret fields (from `lc_secrets`) are
        skipped because `to_json()` replaces their values with secret markers.
    """
    if not isinstance(obj, Serializable):
        msg = f"Expected Serializable, got {type(obj)}"
        raise TypeError(msg)

    serialized: dict[str, Any] = dict(obj.to_json())

    # Process kwargs to escape user data that could be confused with LC objects
    # Skip secret fields - to_json() already converted them to secret markers
    if serialized.get("type") == "constructor" and "kwargs" in serialized:
        serialized["kwargs"] = {
            k: v if _is_lc_secret(v) else _serialize_value(v)
            for k, v in serialized["kwargs"].items()
        }

    return serialized

Subdomains

Called By

Frequently Asked Questions

What does _serialize_lc_object() do?
_serialize_lc_object() is a function in the langchain codebase, defined in libs/core/langchain_core/load/_validation.py.
Where is _serialize_lc_object() defined?
_serialize_lc_object() is defined in libs/core/langchain_core/load/_validation.py at line 117.
What does _serialize_lc_object() call?
_serialize_lc_object() calls 2 function(s): _is_lc_secret, _serialize_value.
What calls _serialize_lc_object()?
_serialize_lc_object() is called by 1 function(s): _serialize_value.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free