Skip to content

Commit 7e08db2

Browse files
committed
Deprecate dict and use asdict instead
1 parent 4231efa commit 7e08db2

File tree

4 files changed

+33
-11
lines changed

4 files changed

+33
-11
lines changed

libs/core/langchain_core/language_models/chat_models.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ def _get_invocation_params(
628628
stop: Optional[list[str]] = None,
629629
**kwargs: Any,
630630
) -> dict:
631-
params = self.model_dump()
631+
params = self.asdict()
632632
params["stop"] = stop
633633
return {**params, **kwargs}
634634

@@ -1300,8 +1300,12 @@ async def apredict_messages(
13001300
def _llm_type(self) -> str:
13011301
"""Return type of chat model."""
13021302

1303+
@deprecated("0.3.61", alternative="asdict", removal="1.0")
13031304
@override
1304-
def model_dump(self, **kwargs: Any) -> dict:
1305+
def dict(self, **kwargs: Any) -> dict:
1306+
return self.asdict()
1307+
1308+
def asdict(self) -> typing.Dict[str, Any]: # noqa: UP006
13051309
"""Return a dictionary of the LLM."""
13061310
starter_dict = dict(self._identifying_params)
13071311
starter_dict["_type"] = self._llm_type

libs/core/langchain_core/language_models/llms.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import inspect
88
import json
99
import logging
10+
import typing
1011
import warnings
1112
from abc import ABC, abstractmethod
1213
from collections.abc import AsyncIterator, Iterator, Sequence
@@ -530,7 +531,7 @@ def stream(
530531
else:
531532
prompt = self._convert_input(input).to_string()
532533
config = ensure_config(config)
533-
params = self.model_dump()
534+
params = self.asdict()
534535
params["stop"] = stop
535536
params = {**params, **kwargs}
536537
options = {"stop": stop}
@@ -600,7 +601,7 @@ async def astream(
600601

601602
prompt = self._convert_input(input).to_string()
602603
config = ensure_config(config)
603-
params = self.model_dump()
604+
params = self.asdict()
604605
params["stop"] = stop
605606
params = {**params, **kwargs}
606607
options = {"stop": stop}
@@ -943,7 +944,7 @@ def generate(
943944
] * len(prompts)
944945
run_name_list = [cast("Optional[str]", run_name)] * len(prompts)
945946
run_ids_list = self._get_run_ids_list(run_id, prompts)
946-
params = self.model_dump()
947+
params = self.asdict()
947948
params["stop"] = stop
948949
options = {"stop": stop}
949950
(
@@ -1195,7 +1196,7 @@ async def agenerate(
11951196
] * len(prompts)
11961197
run_name_list = [cast("Optional[str]", run_name)] * len(prompts)
11971198
run_ids_list = self._get_run_ids_list(run_id, prompts)
1198-
params = self.model_dump()
1199+
params = self.asdict()
11991200
params["stop"] = stop
12001201
options = {"stop": stop}
12011202
(
@@ -1401,8 +1402,12 @@ def __str__(self) -> str:
14011402
def _llm_type(self) -> str:
14021403
"""Return type of llm."""
14031404

1405+
@deprecated("0.3.61", alternative="asdict", removal="1.0")
14041406
@override
1405-
def model_dump(self, **kwargs: Any) -> dict:
1407+
def dict(self, **kwargs: Any) -> dict:
1408+
return self.asdict()
1409+
1410+
def asdict(self) -> typing.Dict[str, Any]: # noqa: UP006
14061411
"""Return a dictionary of the LLM."""
14071412
starter_dict = dict(self._identifying_params)
14081413
starter_dict["_type"] = self._llm_type
@@ -1429,7 +1434,7 @@ def save(self, file_path: Union[Path, str]) -> None:
14291434
directory_path.mkdir(parents=True, exist_ok=True)
14301435

14311436
# Fetch dictionary to save
1432-
prompt_dict = self.model_dump()
1437+
prompt_dict = self.asdict()
14331438

14341439
if save_path.suffix == ".json":
14351440
with save_path.open("w") as f:

libs/core/langchain_core/output_parsers/base.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from __future__ import annotations
44

55
import contextlib
6+
import typing
67
from abc import ABC, abstractmethod
78
from typing import (
89
TYPE_CHECKING,
@@ -15,6 +16,7 @@
1516

1617
from typing_extensions import override
1718

19+
from langchain_core._api import deprecated
1820
from langchain_core.language_models import LanguageModelOutput
1921
from langchain_core.messages import AnyMessage, BaseMessage
2022
from langchain_core.outputs import ChatGeneration, Generation
@@ -324,7 +326,12 @@ def _type(self) -> str:
324326
)
325327
raise NotImplementedError(msg)
326328

327-
def model_dump(self, **kwargs: Any) -> dict:
329+
@deprecated("0.3.61", alternative="asdict", removal="1.0")
330+
@override
331+
def dict(self, **kwargs: Any) -> dict:
332+
return self.asdict(**kwargs)
333+
334+
def asdict(self, **kwargs: Any) -> typing.Dict[str, Any]: # noqa: UP006
328335
"""Return dictionary representation of output parser."""
329336
output_parser_dict = super().model_dump(**kwargs)
330337
with contextlib.suppress(NotImplementedError):

libs/core/langchain_core/prompts/base.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from pydantic import BaseModel, ConfigDict, Field, model_validator
2424
from typing_extensions import Self, override
2525

26+
from langchain_core._api import deprecated
2627
from langchain_core.exceptions import ErrorCode, create_message
2728
from langchain_core.load import dumpd
2829
from langchain_core.output_parsers.base import BaseOutputParser
@@ -331,7 +332,12 @@ def _prompt_type(self) -> str:
331332
"""Return the prompt type key."""
332333
raise NotImplementedError
333334

334-
def model_dump(self, **kwargs: Any) -> dict:
335+
@deprecated("0.3.61", alternative="asdict", removal="1.0")
336+
@override
337+
def dict(self, **kwargs: Any) -> dict:
338+
return self.asdict(**kwargs)
339+
340+
def asdict(self, **kwargs: Any) -> typing.Dict[str, Any]: # noqa: UP006
335341
"""Return dictionary representation of prompt.
336342
337343
Args:
@@ -369,7 +375,7 @@ def save(self, file_path: Union[Path, str]) -> None:
369375
raise ValueError(msg)
370376

371377
# Fetch dictionary to save
372-
prompt_dict = self.model_dump()
378+
prompt_dict = self.asdict()
373379
if "_type" not in prompt_dict:
374380
msg = f"Prompt {self} does not support saving."
375381
raise NotImplementedError(msg)

0 commit comments

Comments
 (0)