- 2.41.2 (latest)
- 2.41.1
- 2.40.0
- 2.39.1
- 2.38.0
- 2.37.0
- 2.36.0
- 2.35.0
- 2.34.0
- 2.33.0
- 2.32.0
- 2.30.2
- 2.29.0
- 2.28.3
- 2.27.0
- 2.26.0
- 2.25.0
- 2.24.1
- 2.23.3
- 2.22.0
- 2.21.0
- 2.20.0
- 2.19.1
- 2.18.0
- 2.17.0
- 2.16.1
- 2.15.2
- 2.14.1
- 2.13.0
- 2.12.0
- 2.11.0
- 2.10.0
- 2.9.1
- 2.8.1
- 2.7.1
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.2
- 2.0.0
- 1.1.3
- 1.0.0
- 0.8.0
- 0.7.2
2.0.0 Migration Guide
The 2.0 release of the google-cloud-dialogflow
client is a significant upgrade based on a next-gen code generator, and includes substantial interface changes. Existing code written for earlier versions of this library will likely require updates to use this version. This document describes the changes that have been made, and what you need to do to update your usage.
If you experience issues or have questions, please file an issue.
Package import and naming
WARNING: Breaking change
The 2.0.0 release changes the name and import path of the library to fall under the google-cloud namespace.
No further updates will be made to the package dialogflow on PyPI.
Before:
python3 -m pip install dialogflow
import dialogflow
After:
python3 -m pip install google-cloud-dialogflow
from google.cloud import dialogflow
Supported Python Versions
WARNING: Breaking change
The 2.0.0 release requires Python 3.6+.
Method Calls
WARNING: Breaking change
Methods expect request objects. We provide a script that will convert most common use cases.
- Install the library
$ python3 -m pip install google-cloud-dialogflow
- The scripts
fixup_dialogflow_v2_keywords.py
andfixup_dialogflow_v2beta1_keywords.py
are shipped with the library. It expects an input directory (with the code to convert) and an empty destination directory.
$ fixup_dialogflow_v2_keywords.py --input-directory .samples/ --output-directory samples/
Before:
import dialogflow client = dialogflow.ContextsClient() response = client.list_contexts(parent="projects/1337/agent/sessions/1024")
After:
from google.cloud import dialogflow client = dialogflow.ContextsClient() response = client.list_contexts(request={"parent": "projects/1337/agent/sessions/1024", page_size=10})
More Details
In google-cloud-dialogflow<2.0.0, parameters required by the API were positional parameters and optional parameters were keyword parameters.
Before:
def detect_intent( self, session, query_input, query_params=None, output_audio_config=None, output_audio_config_mask=None, input_audio=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ):
In the 2.0.0 release, all methods have a single positional parameter request. Method docstrings indicate whether a parameter is required or optional.
Some methods have additional keyword only parameters. The available parameters depend on the google.api.method_signature
annotation specified by the API producer.
After::
def detect_intent(self, request=None, *, session: str=None, query_input=None, retry=gapic_v1.method.DEFAULT, timeout=None, metadata=(), ):
NOTE: The
request
parameter and flattened keyword parameters for the API are mutually exclusive. Passing both will result in an error.
Both of these calls are valid:
response = client.create_context( request={ "parent": "parent_value", "context": dialogflow.Context(name="name_value"), } ) response = client.create_context( parent="parent_value", context=dialogflow.Context(name="name_value"), )
This call is invalid because it mixes request
with a keyword argument audio_config
. Executing this code will result in an error.
response = client.create_context( request={ "parent": "parent_value", }, context=dialogflow.Context(name="name_value"), )
Enums and Types
WARNING: Breaking change
The submodules enums
and types
have been removed in the versionless module.
Before:
import dialogflow encoding = dialogflow.enums.AudioEncoding.AUDIO_ENCODING_FLAC query_params = dialogflow.types.QueryParameters(time_zone="Europe/Paris")
After:
from google.cloud import dialogflow encoding = dialogflow.AudioEncoding.AUDIO_ENCODING_FLAC query_params = dialogflow.QueryParameters(time_zone="Europe/Paris")
The types
submodule is still present in the versioned module.
E.g.
from google.cloud import dialogflow_v2 query_params = dialogflow_v2.types.QueryParameters(time_zone="Europe/Paris")
Resource path helpers
WARNING: Breaking change
Some resource path helpers have been renamed, and others have been removed. See below for an alternative method or a string.
v2
from google.cloud import dialogflow_v2 # AgentsClient project_path = dialogflow_v2.AgentsClient.common_project_path("PROJECT") # ContextsClient session_path = dialogflow_v2.SessionsClient.session_path("PROJECT", "SESSION") # EntityTypesClient agent_path = dialogflow_v2.AgentsClient.agent_path("PROJECT") project_agent_path = dialogflow_v2.AgentsClient.agent_path("PROJECT") # EnvironmentsClient agent_path = dialogflow_v2.AgentsClient.agent_path("PROJECT") # IntentsClient agent_path = dialogflow_v2.AgentsClient.agent_path("PROJECT") project_agent_path = dialogflow_v2.AgentsClient.agent_path("PROJECT") # SessionEntityTypesClient session_path = dialogflow_v2.SessionsClient.session_path("PROJECT", "SESSION")
v2beta1
from google.cloud import dialogflow_v2beta1 context = "CONTEXT" entity_type = "ENTITY_TYPE" environmnent = "ENVIRONMENT" project = "PROJECT" session = "SESSION" user = "USER" # AgentsClient location_path = dialogflow_v2beta1.AgentsClient.common_location_path( "PROJECT", "LOCATION" ) project_path = dialogflow_v2beta1.AgentsClient.common_project_path("PROJECT") # ContextsClient environment_context_path = f"projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}" environment_session_path = f"projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}" session_path = dialogflow_v2beta1.SessionsClient.session_path("PROJECT", "SESSION") # DocumentsClient knowledge_base_path = dialogflow_v2beta1.KnowledgeBasesClient.knowledge_base_path( "PROJECT", "KNOWLEDGE_BASE" ) # EnvironmentsClient agent_path = dialogflow_v2beta1.AgentsClient.agent_path("PROJECT") # IntentsClient agent_path = dialogflow_v2beta1.AgentsClient.agent_path("PROJECT") project_path = dialogflow_v2beta1.AgentsClient.common_project_path("PROJECT") # KnowledgeBasesClient project_path = dialogflow_v2beta1.KnowledgeBasesClient.common_project_path("PROJECT") # SessionEntityTypesClient environment_session_path = f"projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}" environment_sessions_entity_path = f"projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type}" session_path = f"projects/{project}/agent/sessions/{session}" # SessionsClient environment_session_path = f"projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}"