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", "https://www.googleapis.com/auth/dialogflow" ].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, output_audio_config: 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, service_address: nil, service_port: 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, service_address: nil, service_port: nil, exception_transformer: nil, lib_name: nil, lib_version: "") ⇒ SessionsClient
Returns a new instance of SessionsClient.
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 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/google/cloud/dialogflow/v2/sessions_client.rb', line 116 def initialize \ credentials: nil, scopes: ALL_SCOPES, client_config: {}, timeout: DEFAULT_TIMEOUT, metadata: nil, service_address: nil, service_port: 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 = Google::Cloud::Dialogflow::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 = service_address || self.class::SERVICE_ADDRESS port = service_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, params_extractor: proc do |request| {'session' => request.session} end ) @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.
76 77 78 79 80 81 |
# File 'lib/google/cloud/dialogflow/v2/sessions_client.rb', line 76 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, output_audio_config: 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.
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 |
# File 'lib/google/cloud/dialogflow/v2/sessions_client.rb', line 262 def detect_intent \ session, query_input, query_params: nil, output_audio_config: nil, input_audio: nil, options: nil, &block req = { session: session, query_input: query_input, query_params: query_params, output_audio_config: output_audio_config, 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).
316 317 318 319 320 321 |
# File 'lib/google/cloud/dialogflow/v2/sessions_client.rb', line 316 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 |