网站分页效果,公司注册资金实缴可以取出来吗,10大设计师网站,网站设计编程【【LangChain学习之旅】—#xff08;10#xff09; 用RouterChain确定客户意图 任务设定整体框架具体步骤如下#xff1a; 具体实现构建提示信息的模板构建目标链 Reference#xff1a;LangChain 实战课
任务设定
首先#xff0c;还是先看一下今天要完成一个什么样的任… 【【LangChain学习之旅】—10 用RouterChain确定客户意图 任务设定整体框架具体步骤如下 具体实现构建提示信息的模板构建目标链 ReferenceLangChain 实战课
任务设定
首先还是先看一下今天要完成一个什么样的任务。 这里假设咱们的鲜花运营智能客服 ChatBot 通常会接到两大类问题。
鲜花养护保持花的健康、如何浇水、施肥等鲜花装饰如何搭配花、如何装饰场地等
你的需求是如果接到的是第一类问题你要给 ChatBot A 指示如果接到第二类的问题你要给 ChatBot B 指示。 我们可以根据这两个场景来构建两个不同的目标链。遇到不同类型的问题LangChain 会通过 RouterChain 来自动引导大语言模型选择不同的模板。
当然我们的运营过程会遇到更多种类的问题你只需要通过同样的方法扩充逻辑即可。
整体框架
RouterChain也叫路由链能动态选择用于给定输入的下一个链。我们会根据用户的问题内容首先使用路由器链确定问题更适合哪个处理模板然后将问题发送到该处理模板进行回答。如果问题不适合任何已定义的处理模板它会被发送到默认链。
在这里我们会用 LLMRouterChain 和 MultiPromptChain也是一种路由链组合实现路由功能该 MultiPromptChain 会调用 LLMRouterChain 选择与给定问题最相关的提示然后使用该提示回答问题。
具体步骤如下
构建处理模板为鲜花护理和鲜花装饰分别定义两个字符串模板。提示信息使用一个列表来组织和存储这两个处理模板的关键信息如模板的键、描述和实际内容。初始化语言模型导入并实例化语言模型。构建目标链根据提示信息中的每个模板构建了对应的 LLMChain并存储在一个字典中。构建 LLM 路由链这是决策的核心部分。首先它根据提示信息构建了一个路由模板然后使用这个模板创建了一个 LLMRouterChain。构建默认链如果输入不适合任何已定义的处理模板这个默认链会被触发。构建多提示链使用 MultiPromptChain 将 LLM 路由链、目标链和默认链组合在一起形成一个完整的决策系统。
具体实现
下面就是用路由链自动选择处理模板的具体代码实现。
构建提示信息的模板
首先我们针对两种场景构建两个提示信息的模板。
# 构建两个场景的模板
flower_care_template 你是一个经验丰富的园丁擅长解答关于养花育花的问题。下面是需要你来回答的问题:{input}flower_deco_template 你是一位网红插花大师擅长解答关于鲜花装饰的问题。下面是需要你来回答的问题:{input}# 构建提示信息
prompt_infos [{key: flower_care,description: 适合回答关于鲜花护理的问题,template: flower_care_template,},{key: flower_decoration,description: 适合回答关于鲜花装饰的问题,template: flower_deco_template,}]构建目标链
下面我们循环 prompt_infos 这个列表构建出两个目标链分别负责处理不同的问题。
# 构建目标链
from langchain.chains.llm import LLMChain
from langchain.prompts import PromptTemplate
chain_map {}
for info in prompt_infos:prompt PromptTemplate(templateinfo[template], input_variables[input])print(目标提示:\n,prompt)chain LLMChain(llmllm, promptprompt,verboseTrue)chain_map[info[key]] chain