IntentsClient

IntentsClient

An intent represents a mapping between input from a user and an action to be taken by your application. When you pass user input to the DetectIntent (or StreamingDetectIntent) method, the Dialogflow API analyzes the input and searches for a matching intent. If no match is found, the Dialogflow API returns a fallback intent (is_fallback = true).

You can provide additional information for the Dialogflow API to use to match user input to an intent by adding the following to your intent.

  • Contexts - provide additional context for intent analysis. For example, if an intent is related to an object in your application that plays music, you can provide a context to determine when to match the intent if the user input is "turn it off". You can include a context that matches the intent when there is previous user input of "play music", and not when there is previous user input of "turn on the light".

  • Events - allow for matching an intent by using an event name instead of user input. Your application can provide an event name and related parameters to the Dialogflow API to match an intent. For example, when your application starts, you can send a welcome event with a user name parameter to the Dialogflow API to match an intent with a personalized welcome message for the user.

  • Training phrases - provide examples of user input to train the Dialogflow API agent to better match intents.

For more information about intents, see the Dialogflow documentation.

Constructor

new IntentsClient(optionsopt)

Construct an instance of IntentsClient.

Parameters:
Name Type Attributes Description
options object <optional>

The configuration object. See the subsequent parameters for more details.

Properties
Name Type Attributes Description
credentials object <optional>

Credentials object.

Properties
Name Type Attributes Description
client_email string <optional>
private_key string <optional>
email string <optional>

Account email address. Required when using a .pem or .p12 keyFilename.

keyFilename string <optional>

Full path to the a .json, .pem, or .p12 key downloaded from the Google Developers Console. If you provide a path to a JSON file, the projectId option below is not necessary. NOTE: .pem and .p12 require you to specify options.email as well.

port number <optional>

The port on which to connect to the remote host.

projectId string <optional>

The project ID from the Google Developer's Console, e.g. 'grape-spaceship-123'. We will also check the environment variable GCLOUD_PROJECT for your project ID. If your app is running in an environment which supports Application Default Credentials, your project ID will be detected automatically.

promise function <optional>

Custom promise module to use instead of native Promises.

apiEndpoint string <optional>

The domain name of the API remote host.

Source:

Members

(static) apiEndpoint

The DNS address for this API service - same as servicePath(), exists for compatibility reasons.

Source:

(static) port

The port for this API service.

Source:

(static) scopes

The scopes needed to make gRPC calls for every method defined in this service.

Source:

(static) servicePath

The DNS address for this API service.

Source:

Methods

agentPath(project, agent) → {String}

Return a fully-qualified agent resource name string.

Parameters:
Name Type Description
project String
agent String
Source:

batchDeleteIntents(request, optionsopt, callbackopt) → {Promise}

Deletes intents in the specified agent.

Operation <response: google.protobuf.Empty>

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. The name of the agent to delete all entities types for. Format: projects/<Project ID>/agent.

intents Array.<Object>

Required. The collection of intents to delete. Only intent name must be filled in.

This object should have the same structure as Intent

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is a gax.Operation object.

Source:
Example
const dialogflow = require('dialogflow');

const client = new dialogflow.v2.IntentsClient({
  // optional auth parameters.
});

const formattedParent = client.projectAgentPath('[PROJECT]');
const intents = [];
const request = {
  parent: formattedParent,
  intents: intents,
};

// Handle the operation using the promise pattern.
client.batchDeleteIntents(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Operation#promise starts polling for the completion of the LRO.
    return operation.promise();
  })
  .then(responses => {
    const result = responses[0];
    const metadata = responses[1];
    const finalApiResponse = responses[2];
  })
  .catch(err => {
    console.error(err);
  });

const formattedParent = client.projectAgentPath('[PROJECT]');
const intents = [];
const request = {
  parent: formattedParent,
  intents: intents,
};

// Handle the operation using the event emitter pattern.
client.batchDeleteIntents(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Adding a listener for the "complete" event starts polling for the
    // completion of the operation.
    operation.on('complete', (result, metadata, finalApiResponse) => {
      // doSomethingWith(result);
    });

    // Adding a listener for the "progress" event causes the callback to be
    // called on any change in metadata when the operation is polled.
    operation.on('progress', (metadata, apiResponse) => {
      // doSomethingWith(metadata)
    });

    // Adding a listener for the "error" event handles any errors found during polling.
    operation.on('error', err => {
      // throw(err);
    });
  })
  .catch(err => {
    console.error(err);
  });

const formattedParent = client.projectAgentPath('[PROJECT]');
const intents = [];
const request = {
  parent: formattedParent,
  intents: intents,
};

// Handle the operation using the await pattern.
const [operation] = await client.batchDeleteIntents(request);

const [response] = await operation.promise();

batchUpdateIntents(request, optionsopt, callbackopt) → {Promise}

Updates/Creates multiple intents in the specified agent.

Operation <response: BatchUpdateIntentsResponse>

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

Required. The name of the agent to update or create intents in. Format: projects/<Project ID>/agent.

languageCode string

Optional. The language of training phrases, parameters and rich messages defined in intents. If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.

intentBatchUri string <optional>

The URI to a Google Cloud Storage file containing intents to update or create. The file format can either be a serialized proto (of IntentBatch type) or JSON object. Note: The URI must start with "gs://".

intentBatchInline Object <optional>

The collection of intents to update or create.

This object should have the same structure as IntentBatch

updateMask Object <optional>

Optional. The mask to control which fields get updated.

This object should have the same structure as FieldMask

intentView number <optional>

Optional. The resource view to apply to the returned intent.

The number should be among the values of IntentView

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is a gax.Operation object.

Source:
Example
const dialogflow = require('dialogflow');

const client = new dialogflow.v2.IntentsClient({
  // optional auth parameters.
});

const formattedParent = client.projectAgentPath('[PROJECT]');
const languageCode = '';
const request = {
  parent: formattedParent,
  languageCode: languageCode,
};

// Handle the operation using the promise pattern.
client.batchUpdateIntents(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Operation#promise starts polling for the completion of the LRO.
    return operation.promise();
  })
  .then(responses => {
    const result = responses[0];
    const metadata = responses[1];
    const finalApiResponse = responses[2];
  })
  .catch(err => {
    console.error(err);
  });

const formattedParent = client.projectAgentPath('[PROJECT]');
const languageCode = '';
const request = {
  parent: formattedParent,
  languageCode: languageCode,
};

// Handle the operation using the event emitter pattern.
client.batchUpdateIntents(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Adding a listener for the "complete" event starts polling for the
    // completion of the operation.
    operation.on('complete', (result, metadata, finalApiResponse) => {
      // doSomethingWith(result);
    });

    // Adding a listener for the "progress" event causes the callback to be
    // called on any change in metadata when the operation is polled.
    operation.on('progress', (metadata, apiResponse) => {
      // doSomethingWith(metadata)
    });

    // Adding a listener for the "error" event handles any errors found during polling.
    operation.on('error', err => {
      // throw(err);
    });
  })
  .catch(err => {
    console.error(err);
  });

const formattedParent = client.projectAgentPath('[PROJECT]');
const languageCode = '';
const request = {
  parent: formattedParent,
  languageCode: languageCode,
};

// Handle the operation using the await pattern.
const [operation] = await client.batchUpdateIntents(request);

const [response] = await operation.promise();

createIntent(request, optionsopt, callbackopt) → {Promise}

Creates an intent in the specified agent.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

Required. The agent to create a intent for. Format: projects/<Project ID>/agent.

intent Object

Required. The intent to create.

This object should have the same structure as Intent

languageCode string <optional>

Optional. The language of training phrases, parameters and rich messages defined in intent. If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.

intentView number <optional>

Optional. The resource view to apply to the returned intent.

The number should be among the values of IntentView

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing Intent.

Source:
Example
const dialogflow = require('dialogflow');

const client = new dialogflow.v2.IntentsClient({
  // optional auth parameters.
});

const formattedParent = client.projectAgentPath('[PROJECT]');
const intent = {};
const request = {
  parent: formattedParent,
  intent: intent,
};
client.createIntent(request)
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

deleteIntent(request, optionsopt, callbackopt) → {Promise}

Deletes the specified intent and its direct or indirect followup intents.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
name string

Required. The name of the intent to delete. If this intent has direct or indirect followup intents, we also delete them. Format: projects/<Project ID>/agent/intents/<Intent ID>.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

Source:
Example
const dialogflow = require('dialogflow');

const client = new dialogflow.v2.IntentsClient({
  // optional auth parameters.
});

const formattedName = client.intentPath('[PROJECT]', '[INTENT]');
client.deleteIntent({name: formattedName}).catch(err => {
  console.error(err);
});

getIntent(request, optionsopt, callbackopt) → {Promise}

Retrieves the specified intent.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
name string

Required. The name of the intent. Format: projects/<Project ID>/agent/intents/<Intent ID>.

languageCode string <optional>

Optional. The language to retrieve training phrases, parameters and rich messages for. If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.

intentView number <optional>

Optional. The resource view to apply to the returned intent.

The number should be among the values of IntentView

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing Intent.

Source:
Example
const dialogflow = require('dialogflow');

const client = new dialogflow.v2.IntentsClient({
  // optional auth parameters.
});

const formattedName = client.intentPath('[PROJECT]', '[INTENT]');
client.getIntent({name: formattedName})
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

getProjectId(callback)

Return the project ID used by this class.

Parameters:
Name Type Description
callback function

the callback to be called with the current project Id.

Source:

intentPath(project, intent) → {String}

Return a fully-qualified intent resource name string.

Parameters:
Name Type Description
project String
intent String
Source:

listIntents(request, optionsopt, callbackopt) → {Promise}

Returns the list of all intents in the specified agent.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

Required. The agent to list all intents from. Format: projects/<Project ID>/agent.

languageCode string <optional>

Optional. The language to list training phrases, parameters and rich messages for. If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.

intentView number <optional>

Optional. The resource view to apply to the returned intent.

The number should be among the values of IntentView

pageSize number <optional>

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is Array of Intent.

When autoPaginate: false is specified through options, it contains the result in a single response. If the response indicates the next page exists, the third parameter is set to be used for the next request object. The fourth parameter keeps the raw response object of an object representing ListIntentsResponse.

Source:
Example
const dialogflow = require('dialogflow');

const client = new dialogflow.v2.IntentsClient({
  // optional auth parameters.
});

// Iterate over all elements.
const formattedParent = client.projectAgentPath('[PROJECT]');

client.listIntents({parent: formattedParent})
  .then(responses => {
    const resources = responses[0];
    for (const resource of resources) {
      // doThingsWith(resource)
    }
  })
  .catch(err => {
    console.error(err);
  });

// Or obtain the paged response.
const formattedParent = client.projectAgentPath('[PROJECT]');


const options = {autoPaginate: false};
const callback = responses => {
  // The actual resources in a response.
  const resources = responses[0];
  // The next request if the response shows that there are more responses.
  const nextRequest = responses[1];
  // The actual response object, if necessary.
  // const rawResponse = responses[2];
  for (const resource of resources) {
    // doThingsWith(resource);
  }
  if (nextRequest) {
    // Fetch the next page.
    return client.listIntents(nextRequest, options).then(callback);
  }
}
client.listIntents({parent: formattedParent}, options)
  .then(callback)
  .catch(err => {
    console.error(err);
  });

listIntentsStream(request, optionsopt) → {Stream}

Equivalent to listIntents, but returns a NodeJS Stream object.

This fetches the paged responses for listIntents continuously and invokes the callback registered for 'data' event for each element in the responses.

The returned object has 'end' method when no more elements are required.

autoPaginate option will be ignored.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

Required. The agent to list all intents from. Format: projects/<Project ID>/agent.

languageCode string <optional>

Optional. The language to list training phrases, parameters and rich messages for. If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.

intentView number <optional>

Optional. The resource view to apply to the returned intent.

The number should be among the values of IntentView

pageSize number <optional>

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

Source:
See:
Example
const dialogflow = require('dialogflow');

const client = new dialogflow.v2.IntentsClient({
  // optional auth parameters.
});

const formattedParent = client.projectAgentPath('[PROJECT]');
client.listIntentsStream({parent: formattedParent})
  .on('data', element => {
    // doThingsWith(element)
  }).on('error', err => {
    console.log(err);
  });

matchAgentFromAgentName(agentName) → {String}

Parse the agentName from a agent resource.

Parameters:
Name Type Description
agentName String

A fully-qualified path representing a agent resources.

Source:

matchIntentFromIntentName(intentName) → {String}

Parse the intentName from a intent resource.

Parameters:
Name Type Description
intentName String

A fully-qualified path representing a intent resources.

Source:

matchProjectFromAgentName(agentName) → {String}

Parse the agentName from a agent resource.

Parameters:
Name Type Description
agentName String

A fully-qualified path representing a agent resources.

Source:

matchProjectFromIntentName(intentName) → {String}

Parse the intentName from a intent resource.

Parameters:
Name Type Description
intentName String

A fully-qualified path representing a intent resources.

Source:

matchProjectFromProjectAgentName(projectAgentName) → {String}

Parse the projectAgentName from a project_agent resource.

Parameters:
Name Type Description
projectAgentName String

A fully-qualified path representing a project_agent resources.

Source:

projectAgentPath(project) → {String}

Return a fully-qualified project_agent resource name string.

Parameters:
Name Type Description
project String
Source:

updateIntent(request, optionsopt, callbackopt) → {Promise}

Updates the specified intent.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
intent Object

Required. The intent to update.

This object should have the same structure as Intent

languageCode string

Optional. The language of training phrases, parameters and rich messages defined in intent. If not specified, the agent's default language is used. Many languages are supported. Note: languages must be enabled in the agent before they can be used.

updateMask Object <optional>

Optional. The mask to control which fields get updated.

This object should have the same structure as FieldMask

intentView number <optional>

Optional. The resource view to apply to the returned intent.

The number should be among the values of IntentView

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing Intent.

Source:
Example
const dialogflow = require('dialogflow');

const client = new dialogflow.v2.IntentsClient({
  // optional auth parameters.
});

const intent = {};
const languageCode = '';
const request = {
  intent: intent,
  languageCode: languageCode,
};
client.updateIntent(request)
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });