我正在为一家知识产权公司创建一个聊天机器人。它有一个名为service
的实体,具有4个类型值。 (专利,版权,商标,设计)。
客户:什么是专利?
Bot :(答案)
客户:提交费用多少?
我如何才能知道客户在以前的背景下询问专利的情况?
我不能在所有意图中都使用跟进意图。
现在,我正在使用全局变量来获取广告系列中的agent.parameters.Service
插槽。
let slot='patent';
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
function service_typeHandler(agent){
var serv ='';
serv = agent.parameters.Service;
if(serv ===''){
serv=slot;
}
else{
slot=serv;
}
switch( serv ){
case 'patent':
答案 0 :(得分:1)
首先,您在两个方面都是正确的:
在这种情况下,听起来您将有两个Intent(可能还会更多,但这说明了要点):
对于“ ask.what”意图,您将设置“传出上下文”。这将自动捕获附加到Intent的参数。如果要自己控制,可以在Webhook中创建自己的Context并将参数设置为所需的任何值。我建议使用后者,因为它使您可以使用在其他地方不使用的参数名称。假设您使用的是名为“ savedInfo”的上下文,并且将参数设置为“ savedService”。
按照您的“要价”意图,您将执行与当前操作类似的操作。除了Service
参数为空之外,请从“ savedInfo”上下文中获取参数,尤其是从savedService
参数中获取参数。