Привет, можно ли создать объект в Dialogflow с помощью Node.js?

# #node.js #dialogflow-es #dialogflow-es-fulfillment #dialogflow-cx

Вопрос:

Я пытаюсь создать сущность в Dialogflow, используя Node.js. Возможно ли это? Если да, то как я должен его выполнить? Спасибо.

Ответ №1:

Да, это возможно. Для справки см. EntityTypesClient() для других методов, которые вы можете использовать в отношении сущностей.

Перед выполнением кода убедитесь, что вы выполнили следующее, как указано в быстром запуске Dialogflow nodejs.

  1. Выберите или создайте проект облачной платформы.
  2. Включите выставление счетов для вашего проекта.
  3. Включите API API Dialogflow.
  4. Настройте проверку подлинности с помощью учетной записи службы, чтобы вы могли получить доступ к API со своей локальной рабочей станции.

Приведенный ниже пример кода создает объект test_sizing со значением, имеющим соответствующие синонимы. Вы также можете распечатать значения response , если вам нужна информация из него.

 'use strict';

const dialogflow = require('@google-cloud/dialogflow');

const entityClient = new dialogflow.EntityTypesClient();
const agentPath = entityClient.projectAgentPath('your-project-id-here');
const entityType = {
        displayName: 'test_sizing',
        kind: 'KIND_MAP',
        entities: [
        {value: 'small', synonyms: ['small', 'petit']},
        {value: 'medium', synonyms: ['medium']},
        {value: 'large', synonyms: ['large', 'big']},
      ],
};
const request = { parent: agentPath, entityType: entityType };
const response = entityClient.createEntityType(request);
 

Вывод диалогового потока:

введите описание изображения здесь

объект test_sizing:

введите описание изображения здесь

Ответ №2:

Да, в Dialogflow CX и ES можно создавать типы сущностей.

В зависимости от используемой версии Dialogflow вы можете использовать одно из следующих Node.js клиентские библиотеки:

Обе клиентские библиотеки имеют EntityTypeClient класс, который можно использовать для управления типами сущностей. В вашем случае использования вы можете использовать метод EntityTypeClient.createEntityType() класса для создания типов сущностей.

Ниже приведены примеры кодов для создания типов сущностей для каждого выпуска Dialogflow с использованием Node.js клиентские библиотеки:

Диалоговый поток CX:

 const {EntityTypesClient} = require('@google-cloud/dialogflow-cx');

const client = new EntityTypesClient()

async function createEntityType(projectId, location, agentId, language, displayName, entities, kind) {

    parent = client.agentPath(projectId, location, agentId)

    let entityType = {
        displayName,
        entities,
        kind
    }

    let request = {
        parent,
        entityType,
        language
    }

    const [response] = await client.createEntityType(request);
    console.log(response)
}

projectId = "<PROJECT_ID>"
location = "<LOCATION>"
agentId = "<AGENT_ID>" 
language = "<LANGUAGE_CODE>" 
displayName = "size" 
kind = "KIND_MAP" 
entities = [                  
    {
        value:"Small",
        synonyms:[
            "Small",
            "S"
        ]
    },
    {
        value:"Medium",
        synonyms:[
            "Medium",
            "M"
        ]
    }
]

createEntityType(projectId, location, agentId, language, displayName, entities, kind)
 

Результат:

введите описание изображения здесь

Ссылка на метод: google.cloud.dialogflow.cx.v3.EntityTypeClient.createEntityType()

Dialogflow ES/Пробная версия:

 const {
    EntityTypesClient
} = require('@google-cloud/dialogflow');

const client = new EntityTypesClient()

async function createEntityType(projectId, language, displayName, entities, kind) {

    parent = client.projectAgentPath(projectId)

    let entityType = {
        displayName,
        entities,
        kind
    }

    let request = {
        parent,
        entityType,
        language
    }

    const [response] = await client.createEntityType(request);
    console.log(response)
}

projectId = "<PROJECT_ID>"
language = "<LANGUAGE_CODE>"

displayName = "size"
kind = "KIND_MAP"
entities = [{
        value: "Small",
        synonyms: [
            "Small",
            "S"
        ]
    },
    {
        value: "Medium",
        synonyms: [
            "Medium",
            "M"
        ]
    }
]

createEntityType(projectId, language, displayName, entities, kind)
 

Результат:

введите описание изображения здесь

Ссылка на метод: google.cloud.dialogflow.v2.EntityTypeClient.createEntityType()