Skip to content

Commit b5c4eaa

Browse files
authored
feat!: use microgenerator (#239)
See UPGRADING.md for a list of changes.
1 parent c2b0c5e commit b5c4eaa

12 files changed

+93
-80
lines changed

dialogflow/create_document_test.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import os
1818
import uuid
1919

20-
import dialogflow_v2beta1 as dialogflow
20+
from google.cloud import dialogflow_v2beta1
2121
import pytest
2222

2323
import document_management
@@ -31,11 +31,11 @@
3131
@pytest.fixture(scope="function", autouse=True)
3232
def setup_teardown():
3333
# Create a knowledge base to use in document management
34-
client = dialogflow.KnowledgeBasesClient()
35-
project_path = client.project_path(PROJECT_ID)
36-
knowledge_base = dialogflow.types.KnowledgeBase(
34+
client = dialogflow_v2beta1.KnowledgeBasesClient()
35+
project_path = client.common_project_path(PROJECT_ID)
36+
knowledge_base = dialogflow_v2beta1.KnowledgeBase(
3737
display_name=KNOWLEDGE_BASE_NAME)
38-
response = client.create_knowledge_base(project_path, knowledge_base)
38+
response = client.create_knowledge_base(parent=project_path, knowledge_base=knowledge_base)
3939
pytest.KNOWLEDGE_BASE_ID = response.name.split(
4040
'/knowledgeBases/')[1].split('\n')[0]
4141

@@ -44,7 +44,10 @@ def setup_teardown():
4444
# Delete the created knowledge base
4545
knowledge_base_path = client.knowledge_base_path(
4646
PROJECT_ID, pytest.KNOWLEDGE_BASE_ID)
47-
client.delete_knowledge_base(knowledge_base_path, force=True)
47+
request = dialogflow_v2beta1.DeleteKnowledgeBaseRequest(
48+
name=knowledge_base_path, force=True
49+
)
50+
client.delete_knowledge_base(request=request)
4851

4952

5053
@pytest.mark.flaky(max_runs=3, min_passes=1)

dialogflow/create_knowledge_base_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import os
1818
import uuid
1919

20-
import dialogflow_v2beta1 as dialogflow
20+
from google.cloud import dialogflow_v2beta1
2121
import pytest
2222

2323
import knowledge_base_management
@@ -32,11 +32,11 @@ def teardown():
3232
yield
3333

3434
# Delete the created knowledge base
35-
client = dialogflow.KnowledgeBasesClient()
35+
client = dialogflow_v2beta1.KnowledgeBasesClient()
3636
assert pytest.KNOWLEDGE_BASE_ID is not None
3737
knowledge_base_path = client.knowledge_base_path(
3838
PROJECT_ID, pytest.KNOWLEDGE_BASE_ID)
39-
client.delete_knowledge_base(knowledge_base_path)
39+
client.delete_knowledge_base(name=knowledge_base_path)
4040

4141

4242
def test_create_knowledge_base(capsys):

dialogflow/detect_intent_audio.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ def detect_intent_audio(project_id, session_id, audio_file_path,
3737
3838
Using the same `session_id` between requests allows continuation
3939
of the conversation."""
40-
import dialogflow_v2 as dialogflow
40+
from google.cloud import dialogflow
4141

4242
session_client = dialogflow.SessionsClient()
4343

4444
# Note: hard coding audio_encoding and sample_rate_hertz for simplicity.
45-
audio_encoding = dialogflow.enums.AudioEncoding.AUDIO_ENCODING_LINEAR_16
45+
audio_encoding = dialogflow.AudioEncoding.AUDIO_ENCODING_LINEAR_16
4646
sample_rate_hertz = 16000
4747

4848
session = session_client.session_path(project_id, session_id)
@@ -51,14 +51,17 @@ def detect_intent_audio(project_id, session_id, audio_file_path,
5151
with open(audio_file_path, 'rb') as audio_file:
5252
input_audio = audio_file.read()
5353

54-
audio_config = dialogflow.types.InputAudioConfig(
54+
audio_config = dialogflow.InputAudioConfig(
5555
audio_encoding=audio_encoding, language_code=language_code,
5656
sample_rate_hertz=sample_rate_hertz)
57-
query_input = dialogflow.types.QueryInput(audio_config=audio_config)
58-
59-
response = session_client.detect_intent(
60-
session=session, query_input=query_input,
61-
input_audio=input_audio)
57+
query_input = dialogflow.QueryInput(audio_config=audio_config)
58+
59+
request = dialogflow.DetectIntentRequest(
60+
session=session,
61+
query_input=query_input,
62+
input_audio=input_audio,
63+
)
64+
response = session_client.detect_intent(request=request)
6265

6366
print('=' * 20)
6467
print('Query text: {}'.format(response.query_result.query_text))

dialogflow/detect_intent_knowledge.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,30 @@ def detect_intent_knowledge(project_id, session_id, language_code,
4040
knowledge_base_id: The Knowledge base's id to query against.
4141
texts: A list of text queries to send.
4242
"""
43-
import dialogflow_v2beta1 as dialogflow
43+
from google.cloud import dialogflow_v2beta1 as dialogflow
4444
session_client = dialogflow.SessionsClient()
4545

4646
session_path = session_client.session_path(project_id, session_id)
4747
print('Session path: {}\n'.format(session_path))
4848

4949
for text in texts:
50-
text_input = dialogflow.types.TextInput(
50+
text_input = dialogflow.TextInput(
5151
text=text, language_code=language_code)
5252

53-
query_input = dialogflow.types.QueryInput(text=text_input)
53+
query_input = dialogflow.QueryInput(text=text_input)
5454

55-
knowledge_base_path = dialogflow.knowledge_bases_client \
56-
.KnowledgeBasesClient \
55+
knowledge_base_path = dialogflow.KnowledgeBasesClient \
5756
.knowledge_base_path(project_id, knowledge_base_id)
5857

59-
query_params = dialogflow.types.QueryParameters(
58+
query_params = dialogflow.QueryParameters(
6059
knowledge_base_names=[knowledge_base_path])
6160

62-
response = session_client.detect_intent(
63-
session=session_path, query_input=query_input,
64-
query_params=query_params)
61+
request = dialogflow.DetectIntentRequest(
62+
session=session_path,
63+
query_input=query_input,
64+
query_params=query_params
65+
)
66+
response = session_client.detect_intent(request=request)
6567

6668
print('=' * 20)
6769
print('Query text: {}'.format(response.query_result.query_text))

dialogflow/detect_intent_stream.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,21 @@ def detect_intent_stream(project_id, session_id, audio_file_path,
3636
3737
Using the same `session_id` between requests allows continuation
3838
of the conversation."""
39-
import dialogflow_v2 as dialogflow
39+
from google.cloud import dialogflow
4040
session_client = dialogflow.SessionsClient()
4141

4242
# Note: hard coding audio_encoding and sample_rate_hertz for simplicity.
43-
audio_encoding = dialogflow.enums.AudioEncoding.AUDIO_ENCODING_LINEAR_16
43+
audio_encoding = dialogflow.AudioEncoding.AUDIO_ENCODING_LINEAR_16
4444
sample_rate_hertz = 16000
4545

4646
session_path = session_client.session_path(project_id, session_id)
4747
print('Session path: {}\n'.format(session_path))
4848

4949
def request_generator(audio_config, audio_file_path):
50-
query_input = dialogflow.types.QueryInput(audio_config=audio_config)
50+
query_input = dialogflow.QueryInput(audio_config=audio_config)
5151

5252
# The first request contains the configuration.
53-
yield dialogflow.types.StreamingDetectIntentRequest(
53+
yield dialogflow.StreamingDetectIntentRequest(
5454
session=session_path, query_input=query_input)
5555

5656
# Here we are reading small chunks of audio data from a local
@@ -62,15 +62,15 @@ def request_generator(audio_config, audio_file_path):
6262
if not chunk:
6363
break
6464
# The later requests contains audio data.
65-
yield dialogflow.types.StreamingDetectIntentRequest(
65+
yield dialogflow.StreamingDetectIntentRequest(
6666
input_audio=chunk)
6767

68-
audio_config = dialogflow.types.InputAudioConfig(
68+
audio_config = dialogflow.InputAudioConfig(
6969
audio_encoding=audio_encoding, language_code=language_code,
7070
sample_rate_hertz=sample_rate_hertz)
7171

7272
requests = request_generator(audio_config, audio_file_path)
73-
responses = session_client.streaming_detect_intent(requests)
73+
responses = session_client.streaming_detect_intent(requests=requests)
7474

7575
print('=' * 20)
7676
for response in responses:

dialogflow/detect_intent_texts.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,20 @@ def detect_intent_texts(project_id, session_id, texts, language_code):
3636
3737
Using the same `session_id` between requests allows continuation
3838
of the conversation."""
39-
import dialogflow_v2 as dialogflow
39+
from google.cloud import dialogflow
4040
session_client = dialogflow.SessionsClient()
4141

4242
session = session_client.session_path(project_id, session_id)
4343
print('Session path: {}\n'.format(session))
4444

4545
for text in texts:
46-
text_input = dialogflow.types.TextInput(
46+
text_input = dialogflow.TextInput(
4747
text=text, language_code=language_code)
4848

49-
query_input = dialogflow.types.QueryInput(text=text_input)
49+
query_input = dialogflow.QueryInput(text=text_input)
5050

5151
response = session_client.detect_intent(
52-
session=session, query_input=query_input)
52+
request={'session': session, 'query_input': query_input})
5353

5454
print('=' * 20)
5555
print('Query text: {}'.format(response.query_result.query_text))

dialogflow/detect_intent_with_sentiment_analysis.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,28 @@ def detect_intent_with_sentiment_analysis(project_id, session_id, texts,
3535
3636
Using the same `session_id` between requests allows continuation
3737
of the conversation."""
38-
import dialogflow_v2 as dialogflow
38+
from google.cloud import dialogflow
3939
session_client = dialogflow.SessionsClient()
4040

4141
session_path = session_client.session_path(project_id, session_id)
4242
print('Session path: {}\n'.format(session_path))
4343

4444
for text in texts:
45-
text_input = dialogflow.types.TextInput(
45+
text_input = dialogflow.TextInput(
4646
text=text, language_code=language_code)
4747

48-
query_input = dialogflow.types.QueryInput(text=text_input)
48+
query_input = dialogflow.QueryInput(text=text_input)
4949

5050
# Enable sentiment analysis
51-
sentiment_config = dialogflow.types.SentimentAnalysisRequestConfig(
51+
sentiment_config = dialogflow.SentimentAnalysisRequestConfig(
5252
analyze_query_text_sentiment=True)
5353

5454
# Set the query parameters with sentiment analysis
55-
query_params = dialogflow.types.QueryParameters(
55+
query_params = dialogflow.QueryParameters(
5656
sentiment_analysis_request_config=sentiment_config)
5757

5858
response = session_client.detect_intent(
59-
session=session_path, query_input=query_input,
60-
query_params=query_params)
59+
request={'session': session_path, 'query_input': query_input, 'query_params': query_params})
6160

6261
print('=' * 20)
6362
print('Query text: {}'.format(response.query_result.query_text))

dialogflow/detect_intent_with_texttospeech_response.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,29 @@ def detect_intent_with_texttospeech_response(project_id, session_id, texts,
3434
3535
Using the same `session_id` between requests allows continuation
3636
of the conversation."""
37-
import dialogflow_v2 as dialogflow
37+
from google.cloud import dialogflow
3838
session_client = dialogflow.SessionsClient()
3939

4040
session_path = session_client.session_path(project_id, session_id)
4141
print('Session path: {}\n'.format(session_path))
4242

4343
for text in texts:
44-
text_input = dialogflow.types.TextInput(
44+
text_input = dialogflow.TextInput(
4545
text=text, language_code=language_code)
4646

47-
query_input = dialogflow.types.QueryInput(text=text_input)
47+
query_input = dialogflow.QueryInput(text=text_input)
4848

4949
# Set the query parameters with sentiment analysis
50-
output_audio_config = dialogflow.types.OutputAudioConfig(
51-
audio_encoding=dialogflow.enums.OutputAudioEncoding
50+
output_audio_config = dialogflow.OutputAudioConfig(
51+
audio_encoding=dialogflow.OutputAudioEncoding
5252
.OUTPUT_AUDIO_ENCODING_LINEAR_16)
5353

54-
response = session_client.detect_intent(
55-
session=session_path, query_input=query_input,
56-
output_audio_config=output_audio_config)
54+
request = dialogflow.DetectIntentRequest(
55+
session=session_path,
56+
query_input=query_input,
57+
output_audio_config=output_audio_config
58+
)
59+
response = session_client.detect_intent(request=request)
5760

5861
print('=' * 20)
5962
print('Query text: {}'.format(response.query_result.query_text))

dialogflow/document_management.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,20 @@ def create_document(project_id, knowledge_base_id, display_name, mime_type,
4646
EXTRACTIVE_QA.
4747
content_uri: Uri of the document, e.g. gs://path/mydoc.csv,
4848
http://mypage.com/faq.html."""
49-
import dialogflow_v2beta1 as dialogflow
49+
from google.cloud import dialogflow_v2beta1 as dialogflow
5050
client = dialogflow.DocumentsClient()
51-
knowledge_base_path = client.knowledge_base_path(project_id,
52-
knowledge_base_id)
51+
knowledge_base_path = dialogflow.KnowledgeBasesClient.knowledge_base_path(
52+
project_id, knowledge_base_id)
5353

54-
document = dialogflow.types.Document(
54+
document = dialogflow.Document(
5555
display_name=display_name, mime_type=mime_type,
5656
content_uri=content_uri)
5757

5858
document.knowledge_types.append(
59-
dialogflow.types.Document.KnowledgeType.Value(knowledge_type))
59+
getattr(dialogflow.Document.KnowledgeType, knowledge_type)
60+
)
6061

61-
response = client.create_document(knowledge_base_path, document)
62+
response = client.create_document(parent=knowledge_base_path, document=document)
6263
print('Waiting for results...')
6364
document = response.result(timeout=120)
6465
print('Created Document:')

dialogflow/intent_management.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@
3232

3333
# [START dialogflow_list_intents]
3434
def list_intents(project_id):
35-
import dialogflow_v2 as dialogflow
35+
from google.cloud import dialogflow
3636
intents_client = dialogflow.IntentsClient()
3737

38-
parent = intents_client.project_agent_path(project_id)
38+
parent = dialogflow.AgentsClient.agent_path(project_id)
3939

40-
intents = intents_client.list_intents(parent)
40+
intents = intents_client.list_intents(request={'parent': parent})
4141

4242
for intent in intents:
4343
print('=' * 20)
@@ -63,27 +63,27 @@ def list_intents(project_id):
6363
def create_intent(project_id, display_name, training_phrases_parts,
6464
message_texts):
6565
"""Create an intent of the given intent type."""
66-
import dialogflow_v2 as dialogflow
66+
from google.cloud import dialogflow
6767
intents_client = dialogflow.IntentsClient()
6868

69-
parent = intents_client.project_agent_path(project_id)
69+
parent = dialogflow.AgentsClient.agent_path(project_id)
7070
training_phrases = []
7171
for training_phrases_part in training_phrases_parts:
72-
part = dialogflow.types.Intent.TrainingPhrase.Part(
72+
part = dialogflow.Intent.TrainingPhrase.Part(
7373
text=training_phrases_part)
7474
# Here we create a new training phrase for each provided part.
75-
training_phrase = dialogflow.types.Intent.TrainingPhrase(parts=[part])
75+
training_phrase = dialogflow.Intent.TrainingPhrase(parts=[part])
7676
training_phrases.append(training_phrase)
7777

78-
text = dialogflow.types.Intent.Message.Text(text=message_texts)
79-
message = dialogflow.types.Intent.Message(text=text)
78+
text = dialogflow.Intent.Message.Text(text=message_texts)
79+
message = dialogflow.Intent.Message(text=text)
8080

81-
intent = dialogflow.types.Intent(
81+
intent = dialogflow.Intent(
8282
display_name=display_name,
8383
training_phrases=training_phrases,
8484
messages=[message])
8585

86-
response = intents_client.create_intent(parent, intent)
86+
response = intents_client.create_intent(request={'parent': parent, 'intent': intent})
8787

8888
print('Intent created: {}'.format(response))
8989
# [END dialogflow_create_intent]
@@ -92,22 +92,22 @@ def create_intent(project_id, display_name, training_phrases_parts,
9292
# [START dialogflow_delete_intent]
9393
def delete_intent(project_id, intent_id):
9494
"""Delete intent with the given intent type and intent value."""
95-
import dialogflow_v2 as dialogflow
95+
from google.cloud import dialogflow
9696
intents_client = dialogflow.IntentsClient()
9797

9898
intent_path = intents_client.intent_path(project_id, intent_id)
9999

100-
intents_client.delete_intent(intent_path)
100+
intents_client.delete_intent(request={'name': intent_path})
101101
# [END dialogflow_delete_intent]
102102

103103

104104
# Helper to get intent from display name.
105105
def _get_intent_ids(project_id, display_name):
106-
import dialogflow_v2 as dialogflow
106+
from google.cloud import dialogflow
107107
intents_client = dialogflow.IntentsClient()
108108

109-
parent = intents_client.project_agent_path(project_id)
110-
intents = intents_client.list_intents(parent)
109+
parent = dialogflow.AgentsClient.agent_path(project_id)
110+
intents = intents_client.list_intents(request={'parent': parent})
111111
intent_names = [
112112
intent.name for intent in intents
113113
if intent.display_name == display_name]

dialogflow/intent_management_test.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333

3434
def test_create_intent(capsys):
3535
intent_management.create_intent(
36-
PROJECT_ID, INTENT_DISPLAY_NAME, TRAINING_PHRASE_PARTS,
37-
MESSAGE_TEXTS)
36+
PROJECT_ID, INTENT_DISPLAY_NAME, TRAINING_PHRASE_PARTS, MESSAGE_TEXTS)
3837

3938
intent_ids = intent_management._get_intent_ids(
4039
PROJECT_ID, INTENT_DISPLAY_NAME)

0 commit comments

Comments
 (0)