diff --git a/libs/langchain/langchain/chains/llm.py b/libs/langchain/langchain/chains/llm.py index bb24607a97..b1bbfae78a 100644 --- a/libs/langchain/langchain/chains/llm.py +++ b/libs/langchain/langchain/chains/llm.py @@ -20,8 +20,8 @@ from langchain.schema import ( BaseLLMOutputParser, BasePromptTemplate, LLMResult, - NoOpOutputParser, PromptValue, + StrOutputParser, ) from langchain.schema.language_model import BaseLanguageModel from langchain.utils.input import get_colored_text @@ -50,7 +50,7 @@ class LLMChain(Chain): llm: BaseLanguageModel """Language model to call.""" output_key: str = "text" #: :meta private: - output_parser: BaseLLMOutputParser = Field(default_factory=NoOpOutputParser) + output_parser: BaseLLMOutputParser = Field(default_factory=StrOutputParser) """Output parser to use. Defaults to one that takes the most likely string but does not change it otherwise.""" diff --git a/libs/langchain/langchain/prompts/loading.py b/libs/langchain/langchain/prompts/loading.py index 9e2371a4a2..80f3c3ee33 100644 --- a/libs/langchain/langchain/prompts/loading.py +++ b/libs/langchain/langchain/prompts/loading.py @@ -10,7 +10,7 @@ import yaml from langchain.output_parsers.regex import RegexParser from langchain.prompts.few_shot import FewShotPromptTemplate from langchain.prompts.prompt import PromptTemplate -from langchain.schema import BaseLLMOutputParser, BasePromptTemplate, NoOpOutputParser +from langchain.schema import BaseLLMOutputParser, BasePromptTemplate, StrOutputParser from langchain.utilities.loading import try_load_from_hub URL_BASE = "https://raw.githubusercontent.com/hwchase17/langchain-hub/master/prompts/" @@ -80,7 +80,7 @@ def _load_output_parser(config: dict) -> dict: if output_parser_type == "regex_parser": output_parser: BaseLLMOutputParser = RegexParser(**_config) elif output_parser_type == "default": - output_parser = NoOpOutputParser(**_config) + output_parser = StrOutputParser(**_config) else: raise ValueError(f"Unsupported output parser {output_parser_type}") config["output_parser"] = output_parser diff --git a/libs/langchain/langchain/schema/__init__.py b/libs/langchain/langchain/schema/__init__.py index 818ff4113d..e4235c85f7 100644 --- a/libs/langchain/langchain/schema/__init__.py +++ b/libs/langchain/langchain/schema/__init__.py @@ -24,8 +24,8 @@ from langchain.schema.output import ( from langchain.schema.output_parser import ( BaseLLMOutputParser, BaseOutputParser, - NoOpOutputParser, OutputParserException, + StrOutputParser, ) from langchain.schema.prompt import PromptValue from langchain.schema.prompt_template import BasePromptTemplate, format_document @@ -62,7 +62,7 @@ __all__ = [ "RUN_KEY", "Memory", "OutputParserException", - "NoOpOutputParser", + "StrOutputParser", "BaseOutputParser", "BaseLLMOutputParser", "BasePromptTemplate", diff --git a/libs/langchain/langchain/schema/output_parser.py b/libs/langchain/langchain/schema/output_parser.py index 2bc1cd5d72..3215e1ff54 100644 --- a/libs/langchain/langchain/schema/output_parser.py +++ b/libs/langchain/langchain/schema/output_parser.py @@ -137,8 +137,8 @@ class BaseOutputParser(BaseLLMOutputParser, Runnable[Union[str, BaseMessage], T] return output_parser_dict -class NoOpOutputParser(BaseOutputParser[str]): - """'No operation' OutputParser that returns the text as is.""" +class StrOutputParser(BaseOutputParser[str]): + """OutputParser that parses LLMResult into the top likely string..""" @property def lc_serializable(self) -> bool: @@ -155,6 +155,10 @@ class NoOpOutputParser(BaseOutputParser[str]): return text +# TODO: Deprecate +NoOpOutputParser = StrOutputParser + + class OutputParserException(ValueError): """Exception that output parsers should raise to signify a parsing error.