diff --git a/langchain/prompts/prompt.py b/langchain/prompts/prompt.py index f2cf0aed5a..7210c52f5a 100644 --- a/langchain/prompts/prompt.py +++ b/langchain/prompts/prompt.py @@ -82,6 +82,7 @@ class PromptTemplate(StringPromptTemplate, BaseModel): input_variables: List[str], example_separator: str = "\n\n", prefix: str = "", + **kwargs: Any, ) -> PromptTemplate: """Take examples in list format with prefix and suffix to create a prompt. @@ -102,11 +103,11 @@ class PromptTemplate(StringPromptTemplate, BaseModel): The final prompt generated. """ template = example_separator.join([prefix, *examples, suffix]) - return cls(input_variables=input_variables, template=template) + return cls(input_variables=input_variables, template=template, **kwargs) @classmethod def from_file( - cls, template_file: Union[str, Path], input_variables: List[str] + cls, template_file: Union[str, Path], input_variables: List[str], **kwargs: Any ) -> PromptTemplate: """Load a prompt from a file. @@ -119,15 +120,17 @@ class PromptTemplate(StringPromptTemplate, BaseModel): """ with open(str(template_file), "r") as f: template = f.read() - return cls(input_variables=input_variables, template=template) + return cls(input_variables=input_variables, template=template, **kwargs) @classmethod - def from_template(cls, template: str) -> PromptTemplate: + def from_template(cls, template: str, **kwargs: Any) -> PromptTemplate: """Load a prompt template from a template.""" input_variables = { v for _, v, _, _ in Formatter().parse(template) if v is not None } - return cls(input_variables=list(sorted(input_variables)), template=template) + return cls( + input_variables=list(sorted(input_variables)), template=template, **kwargs + ) # For backwards compatibility.