From e4459e423bcd85b1fc55e7872fe2149b90a1694f Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Wed, 5 Jul 2023 19:53:56 +0100 Subject: [PATCH] Mark some output parsers as serializable (cross-checked w/ JS) (#7083) --- langchain/output_parsers/combining.py | 4 ++++ langchain/output_parsers/fix.py | 4 ++++ langchain/output_parsers/list.py | 4 ++++ langchain/output_parsers/regex.py | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/langchain/output_parsers/combining.py b/langchain/output_parsers/combining.py index 9a100c143f8..fc24f018fba 100644 --- a/langchain/output_parsers/combining.py +++ b/langchain/output_parsers/combining.py @@ -10,6 +10,10 @@ from langchain.schema import BaseOutputParser class CombiningOutputParser(BaseOutputParser): """Class to combine multiple output parsers into one.""" + @property + def lc_serializable(self) -> bool: + return True + parsers: List[BaseOutputParser] @root_validator() diff --git a/langchain/output_parsers/fix.py b/langchain/output_parsers/fix.py index 602ff828905..416f88bb001 100644 --- a/langchain/output_parsers/fix.py +++ b/langchain/output_parsers/fix.py @@ -13,6 +13,10 @@ T = TypeVar("T") class OutputFixingParser(BaseOutputParser[T]): """Wraps a parser and tries to fix parsing errors.""" + @property + def lc_serializable(self) -> bool: + return True + parser: BaseOutputParser[T] retry_chain: LLMChain diff --git a/langchain/output_parsers/list.py b/langchain/output_parsers/list.py index 1cf2d39f573..108d0af6877 100644 --- a/langchain/output_parsers/list.py +++ b/langchain/output_parsers/list.py @@ -21,6 +21,10 @@ class ListOutputParser(BaseOutputParser): class CommaSeparatedListOutputParser(ListOutputParser): """Parse out comma separated lists.""" + @property + def lc_serializable(self) -> bool: + return True + def get_format_instructions(self) -> str: return ( "Your response should be a list of comma separated values, " diff --git a/langchain/output_parsers/regex.py b/langchain/output_parsers/regex.py index c7760cbf23a..8245be202e6 100644 --- a/langchain/output_parsers/regex.py +++ b/langchain/output_parsers/regex.py @@ -9,6 +9,10 @@ from langchain.schema import BaseOutputParser class RegexParser(BaseOutputParser): """Class to parse the output into a dictionary.""" + @property + def lc_serializable(self) -> bool: + return True + regex: str output_keys: List[str] default_output_key: Optional[str] = None