langchain_contrib.prompts package#

Subpackages#

Submodules#

langchain_contrib.prompts.chained module#

Defines the Chained prompt template type.

class langchain_contrib.prompts.chained.ChainedPromptTemplate(subprompts: List[str | BaseMessagePromptTemplate | BaseMessage | BasePromptTemplate], joiner: str = '', *, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZStringPromptTemplate

A prompt template composed of multiple other prompt templates chained together.

This is a StringPromptTemplate rather than a BasePromptTemplate to enable use in BaseStringMessagePromptTemplate.

format(**kwargs: Any) str#

Format the prompt with the inputs.

joiner: str#

How to join each template output together.

Only meaningful for StringPromptTemplate’s.

subprompts: List[BasePromptTemplate]#
class langchain_contrib.prompts.chained.ChainedPromptValue(*, joiner: str = '', subvalues: List[PromptValue])#

Bases: PromptValue

A prompt value consisting of smaller prompt values.

joiner: str#

How to join each prompt value together.

Only used when joining to_string.

subvalues: List[PromptValue]#
to_messages() List[BaseMessage]#

Append all prompt values together as messages.

to_string() str#

Join prompt values together as a single string.

langchain_contrib.prompts.dummy module#

Module defining a dummy prompt template.

class langchain_contrib.prompts.dummy.DummyPromptTemplate(*, input_variables: List[str] = [], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZBasePromptTemplate

Dummy template for when you need a template but don’t care for a real one.

format(**kwargs: Any) str#

Error out because this is a dummy prompt template.

format_prompt(**kwargs: Any) PromptValue#

Error out because this is a dummy prompt template.

input_variables: List[str]#

A list of the names of the variables the prompt template expects.

langchain_contrib.prompts.prefixed module#

Defines the Prefixed prompt template type.

class langchain_contrib.prompts.prefixed.PrefixedTemplate(templatable: Templatable)#

Bases: BaseModel

Wraps another prompt template into one that can take in a prefix.

This is useful for when you want to add a prefix to a prompt, but you don’t want to have to do it manually.

class Config#

Bases: object

Configuration for this pydantic object.

extra = 'forbid'#
template: BasePromptTemplate#

langchain_contrib.prompts.schema module#

Types useful for prompting.

langchain_contrib.prompts.schema.Templatable#

Anything that can be converted directly into a BasePromptTemplate.

alias of Union[str, BaseMessagePromptTemplate, BaseMessage, BasePromptTemplate]

langchain_contrib.prompts.schema.into_template(templatable: str | BaseMessagePromptTemplate | BaseMessage | BasePromptTemplate) BasePromptTemplate#

Convert a Templatable into a proper BasePromptTemplate.

langchain_contrib.prompts.z_base module#

Module defining a more flexible BasePromptTemplate.

class langchain_contrib.prompts.z_base.DefaultsTo(default_key: str)#

Bases: BaseModel

Marks one prompt key as defaulting to another one.

class Config#

Bases: object

Configuration for this pydantic object.

extra = 'forbid'#
default_key: str#

Default key to get prompt value from.

class langchain_contrib.prompts.z_base.ZBasePromptTemplate(*, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: BasePromptTemplate

A prompt template class that allows for arbitrary partials.

base_template: BasePromptTemplate | None#

The actual template that this class wraps around.

If None, then this class is assumed to be overridden.

format(**kwargs: Any) str#

Format prompt template as a string.

format_prompt(**kwargs: Any) PromptValue#

Format the prompt from the base prompt.

classmethod from_base_template(base_template: BasePromptTemplate, **kwargs: Any) ZBasePromptTemplate#

Wrap around a base template.

partial(**kwargs: str | Callable[[], str]) ZBasePromptTemplate#

Return a partial of the prompt template.

permissive_partial(**kwargs: Any) ZBasePromptTemplate#

Return a partial of the prompt template.

Permissive version that allows for arbitrary input types.

permissive_partial_variables: Mapping[str, Any]#

Partial variables of any type.

The BasePromptTemplate.format and format_prompt functions take in any arbitrary types, so why shouldn’t partials as well?

class langchain_contrib.prompts.z_base.ZChatPromptTemplate(*, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, messages: List[BaseMessagePromptTemplate | BaseMessage | BaseChatPromptTemplate], base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZBasePromptTemplate, ChatPromptTemplate

A version of ChatPromptTemplate with extended flexibility.

partial(**kwargs: str | Callable[[], str]) ZBasePromptTemplate#

Return a partial of the chat prompt template.

class langchain_contrib.prompts.z_base.ZPromptTemplate(*, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, template: str, template_format: str = 'f-string', validate_template: bool = True, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZBasePromptTemplate, PromptTemplate

A version of PromptTemplate with extended flexibility.

classmethod from_template(template: str, **kwargs: Any) ZPromptTemplate#

Load a prompt template from a template.

classmethod template_is_valid(values: Dict) Dict#

Check that template and input variables are consistent.

class langchain_contrib.prompts.z_base.ZStringPromptTemplate(*, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZBasePromptTemplate, StringPromptTemplate

A version of StringPromptTemplate with extended flexibility.

Module contents#

Experimental LLM chains.

class langchain_contrib.prompts.ChainedPromptTemplate(subprompts: List[str | BaseMessagePromptTemplate | BaseMessage | BasePromptTemplate], joiner: str = '', *, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZStringPromptTemplate

A prompt template composed of multiple other prompt templates chained together.

This is a StringPromptTemplate rather than a BasePromptTemplate to enable use in BaseStringMessagePromptTemplate.

base_template: BasePromptTemplate | None#

The actual template that this class wraps around.

If None, then this class is assumed to be overridden.

format(**kwargs: Any) str#

Format the prompt with the inputs.

input_variables: List[str]#

A list of the names of the variables the prompt template expects.

joiner: str#

How to join each template output together.

Only meaningful for StringPromptTemplate’s.

output_parser: BaseOutputParser | None#

How to parse the output of calling an LLM on this formatted prompt.

partial_variables: Mapping[str, str | Callable[[], str]]#
permissive_partial_variables: Mapping[str, Any]#

Partial variables of any type.

The BasePromptTemplate.format and format_prompt functions take in any arbitrary types, so why shouldn’t partials as well?

subprompts: List[BasePromptTemplate]#
class langchain_contrib.prompts.ChainedPromptValue(*, joiner: str = '', subvalues: List[PromptValue])#

Bases: PromptValue

A prompt value consisting of smaller prompt values.

joiner: str#

How to join each prompt value together.

Only used when joining to_string.

subvalues: List[PromptValue]#
to_messages() List[BaseMessage]#

Append all prompt values together as messages.

to_string() str#

Join prompt values together as a single string.

class langchain_contrib.prompts.ChoicePromptTemplate(*, input_variables: ~typing.List[str], output_parser: ~langchain.schema.output_parser.BaseOutputParser | None = None, partial_variables: ~typing.Mapping[str, str | ~typing.Callable[[], str]] = None, base_template: ~langchain.schema.prompt_template.BasePromptTemplate | None = None, permissive_partial_variables: ~typing.Mapping[str, ~typing.Any] = None, choice_serializer: ~typing.Callable[[~langchain_contrib.prompts.choice.template.T], str] = <function ChoicePromptTemplate.<lambda>>, choices_formatter: ~typing.Callable[[~typing.List[str]], str] = None, choice_format_key: str = 'choices')#

Bases: ZBasePromptTemplate, Generic[T]

A wrapper prompt template for picking from a number of choices.

This template preserves choice information in prompts.

choice_format_key: str#

Which string is used for formatting choices in the template.

choice_serializer: Callable[[T], str]#

How to turn the choices into strings.

choices_formatter: ChoicesFormatter#

How to convert from the list of choices to a single string.

Utility functions to help with this include:

  • get_simple_joiner

  • get_oxford_comma_formatter

  • list_of_choices

format(**kwargs: Any) str#

Format the prompt with the inputs.

format_prompt(**kwargs: Any) BaseChoicePrompt#

Format the prompt while preserving the choices.

classmethod from_base_template(base_template: BasePromptTemplate, **kwargs: Any) ChoicePromptTemplate#

Wrap around a base template.

classmethod from_messages(messages: Sequence[BaseMessagePromptTemplate | BaseMessage], **kwargs: Any) ChoicePromptTemplate#

Load a ChoicePromptTemplate from message templates.

classmethod from_template(template: str, **kwargs: Any) ChoicePromptTemplate#

Load a ChoicePromptTemplate from a text template.

permissive_partial(**kwargs: Any) ChoicePromptTemplate#

Return a partial of the prompt template.

Permissive version that allows for arbitrary input types.

class langchain_contrib.prompts.DefaultsTo(default_key: str)#

Bases: BaseModel

Marks one prompt key as defaulting to another one.

class Config#

Bases: object

Configuration for this pydantic object.

extra = 'forbid'#
default_key: str#

Default key to get prompt value from.

class langchain_contrib.prompts.DummyPromptTemplate(*, input_variables: List[str] = [], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZBasePromptTemplate

Dummy template for when you need a template but don’t care for a real one.

base_template: BasePromptTemplate | None#

The actual template that this class wraps around.

If None, then this class is assumed to be overridden.

format(**kwargs: Any) str#

Error out because this is a dummy prompt template.

format_prompt(**kwargs: Any) PromptValue#

Error out because this is a dummy prompt template.

input_variables: List[str]#

A list of the names of the variables the prompt template expects.

output_parser: BaseOutputParser | None#

How to parse the output of calling an LLM on this formatted prompt.

partial_variables: Mapping[str, str | Callable[[], str]]#
permissive_partial_variables: Mapping[str, Any]#

Partial variables of any type.

The BasePromptTemplate.format and format_prompt functions take in any arbitrary types, so why shouldn’t partials as well?

class langchain_contrib.prompts.PrefixedTemplate(templatable: Templatable)#

Bases: BaseModel

Wraps another prompt template into one that can take in a prefix.

This is useful for when you want to add a prefix to a prompt, but you don’t want to have to do it manually.

class Config#

Bases: object

Configuration for this pydantic object.

extra = 'forbid'#
template: BasePromptTemplate#
class langchain_contrib.prompts.ZBasePromptTemplate(*, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: BasePromptTemplate

A prompt template class that allows for arbitrary partials.

base_template: BasePromptTemplate | None#

The actual template that this class wraps around.

If None, then this class is assumed to be overridden.

format(**kwargs: Any) str#

Format prompt template as a string.

format_prompt(**kwargs: Any) PromptValue#

Format the prompt from the base prompt.

classmethod from_base_template(base_template: BasePromptTemplate, **kwargs: Any) ZBasePromptTemplate#

Wrap around a base template.

input_variables: List[str]#

A list of the names of the variables the prompt template expects.

output_parser: BaseOutputParser | None#

How to parse the output of calling an LLM on this formatted prompt.

partial(**kwargs: str | Callable[[], str]) ZBasePromptTemplate#

Return a partial of the prompt template.

partial_variables: Mapping[str, str | Callable[[], str]]#
permissive_partial(**kwargs: Any) ZBasePromptTemplate#

Return a partial of the prompt template.

Permissive version that allows for arbitrary input types.

permissive_partial_variables: Mapping[str, Any]#

Partial variables of any type.

The BasePromptTemplate.format and format_prompt functions take in any arbitrary types, so why shouldn’t partials as well?

class langchain_contrib.prompts.ZChatPromptTemplate(*, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, messages: List[BaseMessagePromptTemplate | BaseMessage | BaseChatPromptTemplate], base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZBasePromptTemplate, ChatPromptTemplate

A version of ChatPromptTemplate with extended flexibility.

partial(**kwargs: str | Callable[[], str]) ZBasePromptTemplate#

Return a partial of the chat prompt template.

class langchain_contrib.prompts.ZPromptTemplate(*, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, template: str, template_format: str = 'f-string', validate_template: bool = True, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZBasePromptTemplate, PromptTemplate

A version of PromptTemplate with extended flexibility.

classmethod from_template(template: str, **kwargs: Any) ZPromptTemplate#

Load a prompt template from a template.

classmethod template_is_valid(values: Dict) Dict#

Check that template and input variables are consistent.

class langchain_contrib.prompts.ZStringPromptTemplate(*, input_variables: List[str], output_parser: BaseOutputParser | None = None, partial_variables: Mapping[str, str | Callable[[], str]] = None, base_template: BasePromptTemplate | None = None, permissive_partial_variables: Mapping[str, Any] = None)#

Bases: ZBasePromptTemplate, StringPromptTemplate

A version of StringPromptTemplate with extended flexibility.

langchain_contrib.prompts.into_template(templatable: str | BaseMessagePromptTemplate | BaseMessage | BasePromptTemplate) BasePromptTemplate#

Convert a Templatable into a proper BasePromptTemplate.