Module: Google::Cloud::Dialogflow
- Defined in:
- lib/google/cloud/dialogflow.rb,
lib/google/cloud/dialogflow/version.rb
Constant Summary collapse
- VERSION =
"1.0.0".freeze
Class Method Summary collapse
-
.agents(version: :v2, &block) ⇒ Agents::Client
Create a new client object for Agents.
-
.configure {|::Google::Cloud.configure.dialogflow| ... } ⇒ ::Google::Cloud::Config
Configure the google-cloud-dialogflow library.
-
.contexts(version: :v2, &block) ⇒ Contexts::Client
Create a new client object for Contexts.
-
.entity_types(version: :v2, &block) ⇒ EntityTypes::Client
Create a new client object for EntityTypes.
-
.environments(version: :v2, &block) ⇒ Environments::Client
Create a new client object for Environments.
-
.intents(version: :v2, &block) ⇒ Intents::Client
Create a new client object for Intents.
-
.session_entity_types(version: :v2, &block) ⇒ SessionEntityTypes::Client
Create a new client object for SessionEntityTypes.
-
.sessions(version: :v2, &block) ⇒ Sessions::Client
Create a new client object for Sessions.
Class Method Details
.agents(version: :v2, &block) ⇒ Agents::Client
Create a new client object for Agents.
By default, this returns an instance of
Google::Cloud::Dialogflow::V2::Agents::Client
for version V2 of the API.
However, you can specify specify a different API version by passing it in the
version
parameter. If the Agents service is
supported by that API version, and the corresponding gem is available, the
appropriate versioned client will be returned.
About Agents
Agents are best described as Natural Language Understanding (NLU) modules that transform user requests into actionable data. You can include agents in your app, product, or service to determine user intent and respond to the user in a natural way.
After you create an agent, you can add Intents, Contexts, Entity Types, Webhooks, and so on to manage the flow of a conversation and match user input to predefined intents and actions.
You can create an agent using both Dialogflow Standard Edition and Dialogflow Enterprise Edition. For details, see Dialogflow Editions.
You can save your agent for backup or versioning by exporting the agent by using the ExportAgent method. You can import a saved agent by using the ImportAgent method.
Dialogflow provides several prebuilt agents for common conversation scenarios such as determining a date and time, converting currency, and so on.
For more information about agents, see the Dialogflow documentation.
90 91 92 93 94 95 96 97 98 99 |
# File 'lib/google/cloud/dialogflow.rb', line 90 def self.agents version: :v2, &block require "google/cloud/dialogflow/#{version.to_s.downcase}" package_name = Google::Cloud::Dialogflow .constants .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } .first package_module = Google::Cloud::Dialogflow.const_get package_name package_module.const_get(:Agents).const_get(:Client).new(&block) end |
.configure {|::Google::Cloud.configure.dialogflow| ... } ⇒ ::Google::Cloud::Config
Configure the google-cloud-dialogflow library.
The following configuration parameters are supported:
credentials
(type:String, Hash, Google::Auth::Credentials
) - The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object.lib_name
(type:String
) - The library name as recorded in instrumentation and logging.lib_version
(type:String
) - The library version as recorded in instrumentation and logging.interceptors
(type:Array<GRPC::ClientInterceptor>
) - An array of interceptors that are run before calls are executed.timeout
(type:Integer
) - Default timeout in milliseconds.metadata
(type:Hash{Symbol=>String}
) - Additional gRPC headers to be sent with the call.retry_policy
(type:Hash
) - The retry policy. The value is a hash with the following keys::initial_delay
(type:Numeric
) - The initial delay in seconds.:max_delay
(type:Numeric
) - The max delay in seconds.:multiplier
(type:Numeric
) - The incremental backoff multiplier.:retry_codes
(type:Array<String>
) - The error codes that should trigger a retry.
403 404 405 406 407 |
# File 'lib/google/cloud/dialogflow.rb', line 403 def self.configure yield ::Google::Cloud.configure.dialogflow if block_given? ::Google::Cloud.configure.dialogflow end |
.contexts(version: :v2, &block) ⇒ Contexts::Client
Create a new client object for Contexts.
By default, this returns an instance of
Google::Cloud::Dialogflow::V2::Contexts::Client
for version V2 of the API.
However, you can specify specify a different API version by passing it in the
version
parameter. If the Contexts service is
supported by that API version, and the corresponding gem is available, the
appropriate versioned client will be returned.
About Contexts
A context represents additional information included with user input or with an intent returned by the Dialogflow API. Contexts are helpful for differentiating user input which may be vague or have a different meaning depending on additional details from your application such as user setting and preferences, previous user input, where the user is in your application, geographic location, and so on.
You can include contexts as input parameters of a
DetectIntent (or
StreamingDetectIntent) request,
or as output contexts included in the returned intent.
Contexts expire when an intent is matched, after the number of DetectIntent
requests specified by the lifespan_count
parameter, or after 20 minutes
if no intents are matched for a DetectIntent
request.
For more information about contexts, see the Dialogflow documentation.
137 138 139 140 141 142 143 144 145 146 |
# File 'lib/google/cloud/dialogflow.rb', line 137 def self.contexts version: :v2, &block require "google/cloud/dialogflow/#{version.to_s.downcase}" package_name = Google::Cloud::Dialogflow .constants .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } .first package_module = Google::Cloud::Dialogflow.const_get package_name package_module.const_get(:Contexts).const_get(:Client).new(&block) end |
.entity_types(version: :v2, &block) ⇒ EntityTypes::Client
Create a new client object for EntityTypes.
By default, this returns an instance of
Google::Cloud::Dialogflow::V2::EntityTypes::Client
for version V2 of the API.
However, you can specify specify a different API version by passing it in the
version
parameter. If the EntityTypes service is
supported by that API version, and the corresponding gem is available, the
appropriate versioned client will be returned.
About EntityTypes
Entities are extracted from user input and represent parameters that are meaningful to your application. For example, a date range, a proper name such as a geographic location or landmark, and so on. Entities represent actionable data for your application.
When you define an entity, you can also include synonyms that all map to that entity. For example, "soft drink", "soda", "pop", and so on.
There are three types of entities:
System - entities that are defined by the Dialogflow API for common data types such as date, time, currency, and so on. A system entity is represented by the
EntityType
type.Custom - entities that are defined by you that represent actionable data that is meaningful to your application. For example, you could define a
pizza.sauce
entity for red or white pizza sauce, apizza.cheese
entity for the different types of cheese on a pizza, apizza.topping
entity for different toppings, and so on. A custom entity is represented by theEntityType
type.User - entities that are built for an individual user such as favorites, preferences, playlists, and so on. A user entity is represented by the SessionEntityType type.
For more information about entity types, see the Dialogflow documentation.
194 195 196 197 198 199 200 201 202 203 |
# File 'lib/google/cloud/dialogflow.rb', line 194 def self.entity_types version: :v2, &block require "google/cloud/dialogflow/#{version.to_s.downcase}" package_name = Google::Cloud::Dialogflow .constants .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } .first package_module = Google::Cloud::Dialogflow.const_get package_name package_module.const_get(:EntityTypes).const_get(:Client).new(&block) end |
.environments(version: :v2, &block) ⇒ Environments::Client
Create a new client object for Environments.
By default, this returns an instance of
Google::Cloud::Dialogflow::V2::Environments::Client
for version V2 of the API.
However, you can specify specify a different API version by passing it in the
version
parameter. If the Environments service is
supported by that API version, and the corresponding gem is available, the
appropriate versioned client will be returned.
About Environments
Manages agent environments.
224 225 226 227 228 229 230 231 232 233 |
# File 'lib/google/cloud/dialogflow.rb', line 224 def self.environments version: :v2, &block require "google/cloud/dialogflow/#{version.to_s.downcase}" package_name = Google::Cloud::Dialogflow .constants .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } .first package_module = Google::Cloud::Dialogflow.const_get package_name package_module.const_get(:Environments).const_get(:Client).new(&block) end |
.intents(version: :v2, &block) ⇒ Intents::Client
Create a new client object for Intents.
By default, this returns an instance of
Google::Cloud::Dialogflow::V2::Intents::Client
for version V2 of the API.
However, you can specify specify a different API version by passing it in the
version
parameter. If the Intents service is
supported by that API version, and the corresponding gem is available, the
appropriate versioned client will be returned.
About Intents
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.
285 286 287 288 289 290 291 292 293 294 |
# File 'lib/google/cloud/dialogflow.rb', line 285 def self.intents version: :v2, &block require "google/cloud/dialogflow/#{version.to_s.downcase}" package_name = Google::Cloud::Dialogflow .constants .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } .first package_module = Google::Cloud::Dialogflow.const_get package_name package_module.const_get(:Intents).const_get(:Client).new(&block) end |
.session_entity_types(version: :v2, &block) ⇒ SessionEntityTypes::Client
Create a new client object for SessionEntityTypes.
By default, this returns an instance of
Google::Cloud::Dialogflow::V2::SessionEntityTypes::Client
for version V2 of the API.
However, you can specify specify a different API version by passing it in the
version
parameter. If the SessionEntityTypes service is
supported by that API version, and the corresponding gem is available, the
appropriate versioned client will be returned.
About SessionEntityTypes
Entities are extracted from user input and represent parameters that are meaningful to your application. For example, a date range, a proper name such as a geographic location or landmark, and so on. Entities represent actionable data for your application.
Session entity types are referred to as User entity types and are entities that are built for an individual user such as favorites, preferences, playlists, and so on. You can redefine a session entity type at the session level.
Session entity methods do not work with Google Assistant integration. Contact Dialogflow support if you need to use session entities with Google Assistant integration.
For more information about entity types, see the Dialogflow documentation.
331 332 333 334 335 336 337 338 339 340 |
# File 'lib/google/cloud/dialogflow.rb', line 331 def self.session_entity_types version: :v2, &block require "google/cloud/dialogflow/#{version.to_s.downcase}" package_name = Google::Cloud::Dialogflow .constants .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } .first package_module = Google::Cloud::Dialogflow.const_get package_name package_module.const_get(:SessionEntityTypes).const_get(:Client).new(&block) end |
.sessions(version: :v2, &block) ⇒ Sessions::Client
Create a new client object for Sessions.
By default, this returns an instance of
Google::Cloud::Dialogflow::V2::Sessions::Client
for version V2 of the API.
However, you can specify specify a different API version by passing it in the
version
parameter. If the Sessions service is
supported by that API version, and the corresponding gem is available, the
appropriate versioned client will be returned.
About Sessions
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.
364 365 366 367 368 369 370 371 372 373 |
# File 'lib/google/cloud/dialogflow.rb', line 364 def self.sessions version: :v2, &block require "google/cloud/dialogflow/#{version.to_s.downcase}" package_name = Google::Cloud::Dialogflow .constants .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } .first package_module = Google::Cloud::Dialogflow.const_get package_name package_module.const_get(:Sessions).const_get(:Client).new(&block) end |