Sequential Chain
是LangChain库中的一个强大工具,它允许我们将多个LLMChain
按照特定的顺序连接起来,形成一个处理流程。这种链式结构使得我们可以将一个大任务分解为几个小任务,并依次执行,每个任务的输出成为下一个任务的输入。
示例目标
在这个示例中,我们将构建一个顺序链,目标是:
- 让大模型扮演植物学家的角色,提供特定鲜花的知识和介绍。
- 接着让大模型扮演鲜花评论者的角色,对鲜花进行评论。
- 最后让大模型扮演社交媒体运营经理的角色,撰写一篇鲜花运营文案。
实现步骤
-
导入所需的库和模块:
from langchain_openai import ChatOpenAI from langchain.chains import LLMChain, SequentialChain from langchain.prompts import PromptTemplate
-
创建第一个LLMChain:
生成鲜花的知识性说明。one_template = """ 你是一个植物学家。给定花的名称和类型,你需要为这种花写一个200字左右的介绍。 花名: {name}颜色: {color} 植物学家: 这是关于上述花的介绍: """ one_prompt_template = PromptTemplate(template=one_template,input_variables=["name", "color"], ) introduction_chain = LLMChain(llm=llm,prompt=one_prompt_template,output_key="introduction", )
-
创建第二个LLMChain:
根据鲜花的知识性说明生成评论。two_template = """ 你是一位鲜花评论家。给定一种花的介绍,你需要为这种花写一篇200字左右的评论。 鲜花介绍:{introduction} 花评人对上述花的评论: """ two_prompt_template = PromptTemplate(template=two_template,input_variables=["introduction"], ) review_chain = LLMChain(llm=llm,prompt=two_prompt_template,output_key="review", )
-
创建第三个LLMChain:
根据鲜花的介绍和评论撰写社交媒体文案。three_template = """ 你是一家花店的社交媒体经理。给定一种花的介绍和评论,你需要为这种花写一篇社交媒体的帖子,300字左右。 鲜花介绍:{introduction}花评人对上述花的评论:{review} 社交媒体帖子: """ three_prompt_template = PromptTemplate(template=three_template,input_variables=["introduction", "review"], ) social_media_chain = LLMChain(llm=llm,prompt=three_prompt_template,output_key="social_post_text", )
-
创建SequentialChain:
将前面三个链串起来。overall_chain = SequentialChain(chains=[introduction_chain, review_chain, social_media_chain],input_variables=["name", "color"],output_variables=["introduction", "review", "social_post_text"],verbose=True )
-
调用SequentialChain:
输入花的名称和种类,获取结果。result = overall_chain({"name": "玫瑰", "color": "红色"}) print(result)