Class: Google::Cloud::Dialogflow::V2::SessionsClient
- Inherits:
-
Object
- Object
- Google::Cloud::Dialogflow::V2::SessionsClient
- Defined in:
- lib/google/cloud/dialogflow/v2/sessions_client.rb
Overview
A session represents an interaction with a user. You retrieve user input and pass it to the DetectIntent (or StreamingDetectIntent) method to determine user intent and respond.
Constant Summary collapse
- SERVICE_ADDRESS =
The default address of the service.
"dialogflow.googleapis.com".freeze
- DEFAULT_SERVICE_PORT =
The default port of the service.
443
- GRPC_INTERCEPTORS =
The default set of gRPC interceptors.
[]
- DEFAULT_TIMEOUT =
30
- ALL_SCOPES =
The scopes needed to make gRPC calls to all of the methods defined in this service.
[ "https://www.googleapis.com/auth/cloud-platform" ].freeze
Class Method Summary collapse
-
.session_path(project, session) ⇒ String
Returns a fully-qualified session resource name string.
Instance Method Summary collapse
-
#detect_intent(session, query_input, query_params: nil, input_audio: nil, options: nil) {|result, operation| ... } ⇒ Google::Cloud::Dialogflow::V2::DetectIntentResponse
Processes a natural language query and returns structured, actionable data as a result.
-
#initialize(credentials: nil, scopes: ALL_SCOPES, client_config: {}, timeout: DEFAULT_TIMEOUT, metadata: nil, exception_transformer: nil, lib_name: nil, lib_version: "") ⇒ SessionsClient
constructor
A new instance of SessionsClient.
-
#streaming_detect_intent(reqs, options: nil) ⇒ Enumerable<Google::Cloud::Dialogflow::V2::StreamingDetectIntentResponse>
Processes a natural language query in audio format in a streaming fashion and returns structured, actionable data as a result.
Constructor Details
#initialize(credentials: nil, scopes: ALL_SCOPES, client_config: {}, timeout: DEFAULT_TIMEOUT, metadata: nil, exception_transformer: nil, lib_name: nil, lib_version: "") ⇒ SessionsClient
Returns a new instance of SessionsClient
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/google/cloud/dialogflow/v2/sessions_client.rb', line 109 def initialize \ credentials: nil, scopes: ALL_SCOPES, client_config: {}, timeout: DEFAULT_TIMEOUT, metadata: nil, exception_transformer: nil, lib_name: nil, lib_version: "" # These require statements are intentionally placed here to initialize # the gRPC module only when it's required. # See https://github.com/googleapis/toolkit/issues/446 require "google/gax/grpc" require "google/cloud/dialogflow/v2/session_services_pb" credentials ||= Google::Cloud::Dialogflow::V2::Credentials.default if credentials.is_a?(String) || credentials.is_a?(Hash) updater_proc = Google::Cloud::Dialogflow::V2::Credentials.new(credentials).updater_proc end if credentials.is_a?(GRPC::Core::Channel) channel = credentials end if credentials.is_a?(GRPC::Core::ChannelCredentials) chan_creds = credentials end if credentials.is_a?(Proc) updater_proc = credentials end if credentials.is_a?(Google::Auth::Credentials) updater_proc = credentials.updater_proc end package_version = Gem.loaded_specs['google-cloud-dialogflow'].version.version google_api_client = "gl-ruby/#{RUBY_VERSION}" google_api_client << " #{lib_name}/#{lib_version}" if lib_name google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}" google_api_client << " grpc/#{GRPC::VERSION}" google_api_client.freeze headers = { :"x-goog-api-client" => google_api_client } headers.merge!() unless .nil? client_config_file = Pathname.new(__dir__).join( "sessions_client_config.json" ) defaults = client_config_file.open do |f| Google::Gax.construct_settings( "google.cloud.dialogflow.v2.Sessions", JSON.parse(f.read), client_config, Google::Gax::Grpc::STATUS_CODE_NAMES, timeout, errors: Google::Gax::Grpc::API_ERRORS, metadata: headers ) end # Allow overriding the service path/port in subclasses. service_path = self.class::SERVICE_ADDRESS port = self.class::DEFAULT_SERVICE_PORT interceptors = self.class::GRPC_INTERCEPTORS @sessions_stub = Google::Gax::Grpc.create_stub( service_path, port, chan_creds: chan_creds, channel: channel, updater_proc: updater_proc, scopes: scopes, interceptors: interceptors, &Google::Cloud::Dialogflow::V2::Sessions::Stub.method(:new) ) @detect_intent = Google::Gax.create_api_call( @sessions_stub.method(:detect_intent), defaults["detect_intent"], exception_transformer: exception_transformer ) @streaming_detect_intent = Google::Gax.create_api_call( @sessions_stub.method(:streaming_detect_intent), defaults["streaming_detect_intent"], exception_transformer: exception_transformer ) end |
Class Method Details
.session_path(project, session) ⇒ String
Returns a fully-qualified session resource name string.
73 74 75 76 77 78 |
# File 'lib/google/cloud/dialogflow/v2/sessions_client.rb', line 73 def self.session_path project, session SESSION_PATH_TEMPLATE.render( :"project" => project, :"session" => session ) end |
Instance Method Details
#detect_intent(session, query_input, query_params: nil, input_audio: nil, options: nil) {|result, operation| ... } ⇒ Google::Cloud::Dialogflow::V2::DetectIntentResponse
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.
244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 |
# File 'lib/google/cloud/dialogflow/v2/sessions_client.rb', line 244 def detect_intent \ session, query_input, query_params: nil, input_audio: nil, options: nil, &block req = { session: session, query_input: query_input, query_params: query_params, input_audio: input_audio }.delete_if { |_, v| v.nil? } req = Google::Gax::to_proto(req, Google::Cloud::Dialogflow::V2::DetectIntentRequest) @detect_intent.call(req, , &block) end |
#streaming_detect_intent(reqs, options: nil) ⇒ Enumerable<Google::Cloud::Dialogflow::V2::StreamingDetectIntentResponse>
EXPERIMENTAL: Streaming requests are still undergoing review. This method interface might change in the future.
Processes a natural language query in audio format in a streaming fashion and returns structured, actionable data as a result. This method is only available via the gRPC API (not REST).
296 297 298 299 300 301 |
# File 'lib/google/cloud/dialogflow/v2/sessions_client.rb', line 296 def streaming_detect_intent reqs, options: nil request_protos = reqs.lazy.map do |req| Google::Gax::to_proto(req, Google::Cloud::Dialogflow::V2::StreamingDetectIntentRequest) end @streaming_detect_intent.call(request_protos, ) end |