gpt4 book ai didi

dialogflow-es - Google 助理在 Dialogflow 中重复上一条消息时遇到问题

转载 作者:行者123 更新时间:2023-12-04 09:28:08 25 4
gpt4 key购买 nike

我正在开发一个非常简单的 Dialogflow,其中包含大约 15-20 个意图。所有这些意图都使用文本响应,除了一个。唯一不使用文本响应的意图称为“重复”。意图(重复)应该能够重复 Google Assistant 之前所说的任何内容。
enter image description here
enter image description here
我尝试使用 Multivocal 进行设置但一直没有成功。当我在测试模拟器中输入命令时,我会得到初始响应,但是当我跟进“重复”时,会返回“不可用”的默认响应。当我查看诊断信息时,webhook 超时。我的感觉是我配置了一些错误,因为我已经阅读了这些答案并且无法解决我的问题:

  • How to repeat last response of bot in dialogflow
  • Dialogflow - Repeat last sentence (voice) for Social Robot Elderly
  • Use multivocal libary to configure repeat intent in Dialogflow for VUI

  • 我在 Dialogflow 中使用内联编辑器,我的 index.js 看起来像:
    const Multivocal = require('multivocal');
    const conf = {
    Local: {
    en: {
    Response: {
    "Action.multivocal.repeat": "Let me try again",
    }
    }
    }
    };
    new Multivocal.Config.Simple( conf );
    exports.webhook = Multivocal.processFirebaseWebhook;
    exports.dialogflowFirebaseFulfillment = Multivocal.processFirebaseWebhook;
    我的 package.json 包含 Multivocal 依赖项:
    "multivocal": "^0.15.0"
    基于上述 SO 问题,我的理解是这些配置值就足够了,我不需要做任何编码,但我显然搞砸了一些东西(很多东西?)。当用户说“重复”或类似内容时,如何让 Google 助理中的先前响应重复?如果我能那样做的话,Multivocal 似乎是一个简单的解决方案。
    附加日志:
    履行请求(已删除项目 ID 信息):
    {
    "responseId": "--",
    "queryResult": {
    "queryText": "repeat",
    "action": "multivocal.repeat",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentMessages": [
    {
    "text": {
    "text": [
    ""
    ]
    }
    }
    ],
    "outputContexts": [
    {
    "name": "project info",
    "parameters": {
    "no-input": 0,
    "no-match": 0
    }
    }
    ],
    "intent": {
    "name": "project info",
    "displayName": "repeat"
    },
    "intentDetectionConfidence": 1,
    "languageCode": "en"
    },
    "originalDetectIntentRequest": {
    "payload": {}
    },
    "session": "project info"
    }
    原始 API 响应(删除的项目和响应 ID)
    {
    "responseId": "",
    "queryResult": {
    "queryText": "repeat",
    "action": "multivocal.repeat",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentMessages": [
    {
    "text": {
    "text": [
    ""
    ]
    }
    }
    ],
    "intent": {
    "name": "projects info",
    "displayName": "repeat"
    },
    "intentDetectionConfidence": 1,
    "diagnosticInfo": {
    "webhook_latency_ms": 4992
    },
    "languageCode": "en"
    },
    "webhookStatus": {
    "code": 4,
    "message": "Webhook call failed. Error: DEADLINE_EXCEEDED."
    }
    }
    我添加的简单意图是基于建议重复处理意图,它必须使用实现而不是基于 Dialogflow 中的文本响应
    enter image description here
    这是我使用内联编辑器的 index.js 文件,并建议在配置中添加文本响应:
    const conf = {
    Local: {
    en: {
    Response: {
    "Intent.help": [
    "I'm sorry, I'm not able to help you.",
    "You, John, Paul, George, and Ringo ey?"
    ],
    "Action.multivocal.repeat": "Let me try again"
    }
    }
    }
    };
    我的 index.js 末尾的这一行对我来说似乎很奇怪,但可能无关:
    exports.webhook = Multivocal.processFirebaseWebhook;
    exports.dialogflowFirebaseFulfillment = Multivocal.processFirebaseWebhook;

    最佳答案

    听起来您正在触发 Fallback Intent。您还需要在 Dialogflow 中定义的 Intent,其 Action 设置为“multivocal.repeat”。这可能看起来像这样:
    repeat intent
    dialogflow在 npm 包的目录(或在 github 上),你会找到一个 zip 文件,其中包含这个和其他几个可以与 mulivocal 一起使用的“标准”意图。
    此外,您想要重复的所有其他意图必须使用履行来发送响应(库不知道可能发送什么,除非它可以自己发送)。最简单的方法是在每一个上启用实现,并将文本响应从它们的 Dialogflow 屏幕移动到配置下的条目下,例如“Intent.name”(将“name”替换为 Intent 的名称)或“Action” .name”,如果您为它们设置了操作名称。
    所以你的配置可能是这样的

    const conf = {
    Local: {
    en: {
    Response: {
    "Intent.welcome": [
    "Hello there!",
    "Welcome to my Action!"
    ],
    "Action.multivocal.repeat": [
    "Let me try again"
    ]
    }
    }
    }
    };

    关于dialogflow-es - Google 助理在 Dialogflow 中重复上一条消息时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62940634/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com