detectIntent method

Processes a natural language query and returns structured, actionable data as a result.

This method is not idempotent, because it may cause contexts and session entity types to be updated, which in turn might affect results of future queries. If you might use Agent Assist or other CCAI products now or in the future, consider using AnalyzeContent instead of DetectIntent. AnalyzeContent has additional functionality for Agent Assist and other CCAI products. Note: Always use agent versions for production traffic. See Versions and environments.

request - The metadata request object.

Request parameters:

session - Required. The name of the session this query is sent to. Format: projects//agent/sessions/, or projects//agent/environments//users//sessions/. If Environment ID is not specified, we assume default 'draft' environment (Environment ID might be referred to as environment name at some places). If User ID is not specified, we are using "-". It's up to the API caller to choose an appropriate Session ID and User Id. They can be a random number or some type of user and session identifiers (preferably hashed). The length of the Session ID and User ID must not exceed 36 characters. For more information, see the API interactions guide. Note: Always use agent versions for production traffic. See Versions and environments. Value must have pattern ^projects/\[^/\]+/locations/\[^/\]+/agent/environments/\[^/\]+/users/\[^/\]+/sessions/\[^/\]+$.

$fields - Selector specifying which fields to include in a partial response.

Completes with a GoogleCloudDialogflowV2DetectIntentResponse.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<GoogleCloudDialogflowV2DetectIntentResponse> detectIntent(
  GoogleCloudDialogflowV2DetectIntentRequest request,
  core.String session, {
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if ($fields != null) 'fields': [$fields],
  };

  final url_ = 'v2/' + core.Uri.encodeFull('$session') + ':detectIntent';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return GoogleCloudDialogflowV2DetectIntentResponse.fromJson(
      response_ as core.Map<core.String, core.dynamic>);
}