拥抱大模型(四):Chain,像人类一样思考
什么叫Chain,从字面意思理解,Chain是一个链,我们可以通过Chain来链接LangChain的各个组件和功能-模型之间彼此链接,或模型与其他组件链接。这种将多个组件相互链接,组合成一个链的想法简单但很强大。它简化了复杂应用程序的实现,并使之更加模块化,能够创建出单一的、连贯的应用程序,从而使调试、维护和改进应用程序变得容易。 我们可以简单的把Chain理解为通过设计好的一些链路去调用大模型,从而获取我们想要的结果。下面是一个例子: 首先我们让大模型扮演产品经理,给出小说推荐网站的产品设计。 有了产品设计后,由架构师进行初步的架构设计 现在架构设计也有了,来个程序员写SQL: 那,上面的这种promot链,我们用langchain怎么实现呢? 使用langchain实现 Sequential Chain 首先,导入所有需要的库 # 设置OpenAI API密钥 import os os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key' from langchain.llms import OpenAI from langchain.chains import LLMChain from langchain.prompts import PromptTemplate from langchain.chains import SequentialChain 添加第一个LLMChain,生成小说网站的产品设计。LLMChain可以看作是链条的一个环节 # 这是第一个LLMChain,用于生成鲜花的介绍,输入为花的名称和种类 llm = OpenAI(temperature=.7) template = """ 你是一个产品经理,请你对{product}给出一个设计想法。""" prompt_template = PromptTemplate(input_variables=["product"], template=template) introduction_chain = LLMChain(llm=llm, prompt=prompt_template, output_key="introduction") 添加第二个LLMChain,根据产品设计生成软件架构 # 这是第二个LLMChain,用于根据鲜花的介绍写出鲜花的评论 llm = OpenAI(temperature=.7) template = """ 你是一位软件架构师。给定一个{product}的设计,你需要给出产品软件架构说明和技术栈选型。 产品设计: {introduction} 软件架构说明:""" prompt_template = PromptTemplate(input_variables=["product", "introduction"], template=template) review_chain = LLMChain(llm=llm, prompt=prompt_template, output_key="framwork") 第三个Chain,根据产品架构生成SQL语句...