def detect_intent( self, request: session.DetectIntentRequest = None, *, retry: retries.Retry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> session.DetectIntentResponse: r"""Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause session entity types to be updated, which in turn might affect results of future queries. Note: Always use agent versions for production traffic. See `Versions and environments <https://cloud.google.com/dialogflow/cx/docs/concept/version>`__. Args: request (google.cloud.dialogflowcx_v3.types.DetectIntentRequest): The request object. The request to detect user's intent. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. metadata (Sequence[Tuple[str, str]]): Strings which should be sent along with the request as metadata. Returns: google.cloud.dialogflowcx_v3.types.DetectIntentResponse: The message returned from the DetectIntent method. """ # Create or coerce a protobuf request object. # Minor optimization to avoid making a copy if the user passes # in a session.DetectIntentRequest. # There's no risk of modifying the input as we've already verified # there are no flattened fields. if not isinstance(request, session.DetectIntentRequest): request = session.DetectIntentRequest(request) # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. rpc = self._transport._wrapped_methods[self._transport.detect_intent] # Certain fields should be provided within the metadata header; # add these here. metadata = tuple(metadata) + (gapic_v1.routing_header.to_grpc_metadata( (("session", request.session), )), ) # Send the request. response = rpc( request, retry=retry, timeout=timeout, metadata=metadata, ) # Done; return the response. return response
async def detect_intent( self, request: session.DetectIntentRequest = None, *, retry: retries.Retry = gapic_v1.method.DEFAULT, timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> session.DetectIntentResponse: r"""Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause session entity types to be updated, which in turn might affect results of future queries. Note: Always use agent versions for production traffic. See `Versions and environments <https://cloud.google.com/dialogflow/cx/docs/concept/version>`__. Args: request (:class:`google.cloud.dialogflowcx_v3.types.DetectIntentRequest`): The request object. The request to detect user's intent. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. timeout (float): The timeout for this request. metadata (Sequence[Tuple[str, str]]): Strings which should be sent along with the request as metadata. Returns: google.cloud.dialogflowcx_v3.types.DetectIntentResponse: The message returned from the DetectIntent method. """ # Create or coerce a protobuf request object. request = session.DetectIntentRequest(request) # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. rpc = gapic_v1.method_async.wrap_method( self._client._transport.detect_intent, default_retry=retries.Retry( initial=0.1, maximum=60.0, multiplier=1.3, predicate=retries.if_exception_type( exceptions.ServiceUnavailable, ), ), default_timeout=220.0, client_info=DEFAULT_CLIENT_INFO, ) # Certain fields should be provided within the metadata header; # add these here. metadata = tuple(metadata) + (gapic_v1.routing_header.to_grpc_metadata( (("session", request.session), )), ) # Send the request. response = await rpc( request, retry=retry, timeout=timeout, metadata=metadata, ) # Done; return the response. return response