Chain,可以翻译成链或者链条。在 LangChain 应用里面,Chain 的作用就是把 LangChain 应用里的不同的组件连接到一块儿,让它们相互协作去完成一些任务。Chain 里的每个组件都会承担一部分任务,然后把处理的结果交给 Chain 连接的其它的组件去处理。
LLMChain 就是一种常用的 Chain,也就是大语言模型链,LLM 指的是大语言模型。这种 Chain 连接的主要就是一个提示模板,还有一个模型,另外还可以再加上一个输出解析器。下面我们可以先试一下在 LangChain 应用里使用这种 Chain。
在这个 Node.js 程序文件顶部,先导入一个模型,导入一个 OpenAI,它来自 langchain/llms/openai,再导入一个提示模板,导入的是 PromptTemplate,来自 langchain/prompts,下面再导入 LLMChain,它来自 langchain/chains。
然后先给要创建的 Chain 准备一个模型,声明一个 model,新建一个 OpenAI,提供一个对象参数,设置一下要使用的模型,设置一下 modelName 这个属性,它的值可以是 'gpt-3.5-turbo'。
再给 LLMChain 准备一个提示模板,声明一个 promptTemplate,用一下 PromptTemplate.fromTemplate,提供一个字符串,“一句话介绍{subject}” 这里这个 subject 是这个模板里的一个参数。
下面声明一个 chain,新建一个 LLMChain,提供一个对象,这种 Chain 需要一个模型还有一个提示模板,设置一下 llm,值是 model,然后设置一下 prompt 属性,值是 promptTemplate。
现在我们就可以使用这个 LLMChain 去执行一些任务了,可以声明一个 result ,等于 await,用一下 chain 上面的 call 这个方法,一个对象,里面有个 subject,值是 ninghao.net。最后在控制台上输出这个 result。
在终端,运行一下 node index.mjs。这里会输出模型返回来的文本。 这个任务用的是一个 LLMChain 完成的。