create_model_v2() — langchain Function Reference
Architecture documentation for the create_model_v2() function in pydantic.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD b8865414_42c0_49d9_3e9c_7fa9ff60c3a7["create_model_v2()"] 892b1d9f_bb87_0364_19af_71382204e430["pydantic.py"] b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 -->|defined in| 892b1d9f_bb87_0364_19af_71382204e430 c2f6fa80_5d24_efc6_4956_e42101ac1fc3["create_model()"] c2f6fa80_5d24_efc6_4956_e42101ac1fc3 -->|calls| b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 b8865414_42c0_49d9_3e9c_7fa9ff60c3a7["create_model_v2()"] b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 -->|calls| b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 b8865414_42c0_49d9_3e9c_7fa9ff60c3a7["create_model_v2()"] b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 -->|calls| b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 b9af98f3_3d27_bff1_7437_4fe45a239f0b["_create_root_model_cached()"] b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 -->|calls| b9af98f3_3d27_bff1_7437_4fe45a239f0b 2871abd3_cccd_0317_0db7_f334717b473b["_create_root_model()"] b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 -->|calls| 2871abd3_cccd_0317_0db7_f334717b473b 2891438b_5268_cd63_94df_fad7098651ca["_create_model_cached()"] b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 -->|calls| 2891438b_5268_cd63_94df_fad7098651ca 8f551cf3_c318_ebfe_7a69_a7721fa2af54["_remap_field_definitions()"] b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 -->|calls| 8f551cf3_c318_ebfe_7a69_a7721fa2af54 style b8865414_42c0_49d9_3e9c_7fa9ff60c3a7 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/langchain_core/utils/pydantic.py lines 510–584
def create_model_v2(
model_name: str,
*,
module_name: str | None = None,
field_definitions: dict[str, Any] | None = None,
root: Any | None = None,
) -> type[BaseModel]:
"""Create a Pydantic model with the given field definitions.
!!! warning
Do not use outside of langchain packages. This API is subject to change at any
time.
Args:
model_name: The name of the model.
module_name: The name of the module where the model is defined.
This is used by Pydantic to resolve any forward references.
field_definitions: The field definitions for the model.
root: Type for a root model (`RootModel`)
Returns:
The created model.
"""
field_definitions = field_definitions or {}
if root:
if field_definitions:
msg = (
"When specifying __root__ no other "
f"fields should be provided. Got {field_definitions}"
)
raise NotImplementedError(msg)
if isinstance(root, tuple):
kwargs = {"type_": root[0], "default_": root[1]}
else:
kwargs = {"type_": root}
try:
named_root_model = _create_root_model_cached(
model_name, module_name=module_name, **kwargs
)
except TypeError:
# something in the arguments into _create_root_model_cached is not hashable
named_root_model = _create_root_model(
model_name,
module_name=module_name,
**kwargs,
)
return named_root_model
# No root, just field definitions
names = set(field_definitions.keys())
capture_warnings = False
for name in names:
# Also if any non-reserved name is used (e.g., model_id or model_name)
if name.startswith("model"):
capture_warnings = True
with warnings.catch_warnings() if capture_warnings else nullcontext():
if capture_warnings:
warnings.filterwarnings(action="ignore")
try:
return _create_model_cached(model_name, **field_definitions)
except TypeError:
# something in field definitions is not hashable
return _create_model_base(
model_name,
__config__=_SchemaConfig,
**_remap_field_definitions(field_definitions),
)
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does create_model_v2() do?
create_model_v2() is a function in the langchain codebase, defined in libs/core/langchain_core/utils/pydantic.py.
Where is create_model_v2() defined?
create_model_v2() is defined in libs/core/langchain_core/utils/pydantic.py at line 510.
What does create_model_v2() call?
create_model_v2() calls 5 function(s): _create_model_cached, _create_root_model, _create_root_model_cached, _remap_field_definitions, create_model_v2.
What calls create_model_v2()?
create_model_v2() is called by 2 function(s): create_model, create_model_v2.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free