【问题标题】:session entities not updating in dialogflow entities会话实体未在对话流实体中更新
【发布时间】:2018-10-10 19:45:56
【问题描述】:

使用 createSessionEntityTypes 我创建了一个会话实体,如果我使用 listSessionEntityTypes 我可以查看创建的新实体,但如果我尝试使用我的 DialogFlow,它不会被它识别。

例如: 我创建了一个名为 kitchen 的实体,现在如果我尝试访问它说“打开厨房灯”,light entitytype 无法识别厨房。

这很奇怪,因为当我使用 listSessionEntitytypes 时,我在该列表中看到了厨房,但是当我说话时,我的 DialogFlow 没有将其识别为实体。 这是我正在处理的代码:

function createSessionEntityType() {
    const sessionEntityTypesClient = new 
    dialogflow.SessionEntityTypesClient();
    const entityType = 'any';

    const sessionPath = `sessionpath`;
    const sessionEntityTypePath = `sessionentitypath`;
    const entities = [{
       "value": "Library",
       "synonyms": ["Study room"]
    }];
    const entityOverrideMode = "ENTITY_OVERRIDE_MODE_OVERRIDE";

    const sessionEntityTypeRequest = {
        parent: sessionPath,
        sessionEntityType: {
            name: sessionEntityTypePath,
            entityOverrideMode: entityOverrideMode,
            entities: entities,
        },
    };

    sessionEntityTypesClient
    .createSessionEntityType(sessionEntityTypeRequest)
    .then(responses => {
        console.log('SessionEntityType created:', responses);
    });
  }

Intent picture

【问题讨论】:

  • 您能否更新您的问题以澄清一些事情?不清楚您是尝试创建新类型,还是创建要添加到类型的新实体。你能展示代码来说明你在做什么吗?并可能显示正在使用它的 Intent 以及您希望如何使用它?
  • 我已经更新了,如果还有什么需要请告诉我
  • 您能否更新您的问题以包含一个屏幕截图,显示您使用此实体类型的意图?
  • 确保将意图图片添加到代码中。

标签: node.js session dialogflow-es actions-on-google api-ai


【解决方案1】:

虽然不完全清楚,但问题似乎在于您的 Intent 实际上并未使用您正在创建的实体类型。 Intent 中的“房间”之类的词都不会突出显示或与实体类型匹配。

您需要先创建实体类型,然后才能使用 API 更新其中的特定值。完成此操作后,您还可以突出显示短语中的相关词,以将它们与特定的实体类型匹配,即使其中没​​有任何实体。

即使您必须创建实体类型,因为您在会话中更新实体,它们也永远不会出现在 Dialogflow UI 中。但是,在创建实体的同一会话中说短语的用户仍应获得匹配项。

【讨论】:

  • 我试过这个问题存在于同一个地方,它必须通过现有实体类型中的 API 更新特定值。它不工作!
  • 那么请提供例子。您可以提供尽可能多的详细信息将帮助我们帮助您。我已经动态地编辑了实体,没有问题,所以我试图准确地理解你在做什么以及到底是什么问题。
  • github.com/googleapis/nodejs-dialogflow/blob/master/samples/… 我正在按照此代码创建一个实体,当我创建一个实体时,它会显示在对话流的日志中,但它不会在实体类型内的对话流的实体部分更新我正在尝试创建它。例如,当我尝试在轻实体类型中创建库实体时,如果我对其进行控制台,它会显示在日志中函数的响应中,但它没有显示在轻实体类型内的对话流的实体部分中
  • 答案已更新,但仍不清楚(来自此处或来自您在 G+ 上的帖子)您是如何使用实体类型的。澄清您的问题以显示您是如何使用它的(例如,有问题的 Intent 以及对话)以及正在发生或未发生的事情会有所帮助。
【解决方案2】:

请检查您的所有语法和函数调用定义,从会话实体 entityValue 数组中调用实体值必须符合语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多