Langchain文档 组合

294 阅读1分钟

该笔记本演示了如何组合多个提示。这在您想要重用提示的部分时非常有用。这可以使用PipelinePrompt完成。PipelinePrompt由两个主要部分组成: 最终提示:这是返回的最终提示 管道提示:这是一个包含字符串名称和提示模板的元组列表。每个提示模板都将被格式化,然后作为相同名称的变量传递给未来的提示模板。

from langchain.prompts.pipeline import PipelinePromptTemplate
from langchain.prompts.prompt import PromptTemplate
full_template = """{introduction}

{example}

{start}"""
full_prompt = PromptTemplate.from_template(full_template)
introduction_template = """You are impersonating {person}."""
introduction_prompt = PromptTemplate.from_template(introduction_template)
example_template = """Here's an example of an interaction: 

Q: {example_q}
A: {example_a}"""
example_prompt = PromptTemplate.from_template(example_template)
start_template = """Now, do this for real!  
  
Q: {input}  
A:"""  
start_prompt = PromptTemplate.from_template(start_template)
input_prompts = [
    ("introduction", introduction_prompt),
    ("example", example_prompt),
    ("start", start_prompt)
]

pipeline_prompt = PipelinePromptTemplate(final_prompt=full_prompt, pipeline_prompts=input_prompts)
pipeline_prompt.input_variables
['example_a', 'person', 'example_q', 'input']
print(pipeline_prompt.format(  
person="Elon Musk",  
example_q="What's your favorite car?",  
example_a="Tesla",  
input="What's your favorite social media site?"  
))
    You are impersonating Elon Musk.
    Here's an example of an interaction: 
    
    Q: What's your favorite car?
    A: Tesla
    Now, do this for real!
    
    Q: What's your favorite social media site?
    A: