Source code for langchain_core.prompts.pipeline
from typing import Any, Dict, List, Tuple
from langchain_core.prompt_values import PromptValue
from langchain_core.prompts.base import BasePromptTemplate
from langchain_core.prompts.chat import BaseChatPromptTemplate
from langchain_core.pydantic_v1 import root_validator
def _get_inputs(inputs: dict, input_variables: List[str]) -> dict:
return {k: inputs[k] for k in input_variables}
[docs]class PipelinePromptTemplate(BasePromptTemplate):
"""用于将多个提示模板组合在一起的提示模板。
当您想要重用提示的部分时,这可能会很有用。
PipelinePrompt由两个主要部分组成:
- final_prompt:这是返回的最终提示
- pipeline_prompts:这是一个元组列表,包括
一个字符串(`name`)和一个提示模板。
每个PromptTemplate将被格式化,然后作为一个变量传递
给未来的提示模板,变量名与`name`相同。
"""
final_prompt: BasePromptTemplate
"""返回的最终提示。"""
pipeline_prompts: List[Tuple[str, BasePromptTemplate]]
"""一个元组列表,包括一个字符串(`name`)和一个提示模板。"""
[docs] @classmethod
def get_lc_namespace(cls) -> List[str]:
"""获取langchain对象的命名空间。"""
return ["langchain", "prompts", "pipeline"]
@root_validator(pre=True)
def get_input_variables(cls, values: Dict) -> Dict:
"""获取输入变量。"""
created_variables = set()
all_variables = set()
for k, prompt in values["pipeline_prompts"]:
created_variables.add(k)
all_variables.update(prompt.input_variables)
values["input_variables"] = list(all_variables.difference(created_variables))
return values
@property
def _prompt_type(self) -> str:
raise ValueError