15
15
16
16
'use strict' ;
17
17
18
- const util = require ( 'util' ) ;
19
- const fs = require ( 'fs' ) ;
20
- const { struct} = require ( 'pb-util' ) ;
21
- const { Transform, pipeline} = require ( 'stream' ) ;
22
-
23
- const pump = util . promisify ( pipeline ) ;
24
-
25
18
function detectTextIntent ( projectId , sessionId , queries , languageCode ) {
26
19
// [START dialogflow_detect_intent_text]
27
20
@@ -113,6 +106,8 @@ async function detectEventIntent(
113
106
eventName ,
114
107
languageCode
115
108
) {
109
+ const { struct} = require ( 'pb-util' ) ;
110
+
116
111
// Imports the Dialogflow library
117
112
const dialogflow = require ( 'dialogflow' ) ;
118
113
@@ -136,7 +131,31 @@ async function detectEventIntent(
136
131
137
132
const [ response ] = await sessionClient . detectIntent ( request ) ;
138
133
console . log ( 'Detected intent' ) ;
139
- logQueryResult ( sessionClient , response . queryResult ) ;
134
+ const result = response . queryResult ;
135
+ // Instantiates a context client
136
+ const contextClient = new dialogflow . ContextsClient ( ) ;
137
+
138
+ console . log ( ` Query: ${ result . queryText } ` ) ;
139
+ console . log ( ` Response: ${ result . fulfillmentText } ` ) ;
140
+ if ( result . intent ) {
141
+ console . log ( ` Intent: ${ result . intent . displayName } ` ) ;
142
+ } else {
143
+ console . log ( ` No intent matched.` ) ;
144
+ }
145
+ const parameters = JSON . stringify ( struct . decode ( result . parameters ) ) ;
146
+ console . log ( ` Parameters: ${ parameters } ` ) ;
147
+ if ( result . outputContexts && result . outputContexts . length ) {
148
+ console . log ( ` Output contexts:` ) ;
149
+ result . outputContexts . forEach ( context => {
150
+ const contextId = contextClient . matchContextFromContextName ( context . name ) ;
151
+ const contextParameters = JSON . stringify (
152
+ struct . decode ( context . parameters )
153
+ ) ;
154
+ console . log ( ` ${ contextId } ` ) ;
155
+ console . log ( ` lifespan: ${ context . lifespanCount } ` ) ;
156
+ console . log ( ` parameters: ${ contextParameters } ` ) ;
157
+ } ) ;
158
+ }
140
159
}
141
160
142
161
async function detectAudioIntent (
@@ -148,6 +167,9 @@ async function detectAudioIntent(
148
167
languageCode
149
168
) {
150
169
// [START dialogflow_detect_intent_audio]
170
+ const fs = require ( 'fs' ) ;
171
+ const util = require ( 'util' ) ;
172
+ const { struct} = require ( 'pb-util' ) ;
151
173
// Imports the Dialogflow library
152
174
const dialogflow = require ( 'dialogflow' ) ;
153
175
@@ -176,7 +198,31 @@ async function detectAudioIntent(
176
198
const [ response ] = await sessionClient . detectIntent ( request ) ;
177
199
178
200
console . log ( 'Detected intent:' ) ;
179
- logQueryResult ( sessionClient , response . queryResult ) ;
201
+ const result = response . queryResult ;
202
+ // Instantiates a context client
203
+ const contextClient = new dialogflow . ContextsClient ( ) ;
204
+
205
+ console . log ( ` Query: ${ result . queryText } ` ) ;
206
+ console . log ( ` Response: ${ result . fulfillmentText } ` ) ;
207
+ if ( result . intent ) {
208
+ console . log ( ` Intent: ${ result . intent . displayName } ` ) ;
209
+ } else {
210
+ console . log ( ` No intent matched.` ) ;
211
+ }
212
+ const parameters = JSON . stringify ( struct . decode ( result . parameters ) ) ;
213
+ console . log ( ` Parameters: ${ parameters } ` ) ;
214
+ if ( result . outputContexts && result . outputContexts . length ) {
215
+ console . log ( ` Output contexts:` ) ;
216
+ result . outputContexts . forEach ( context => {
217
+ const contextId = contextClient . matchContextFromContextName ( context . name ) ;
218
+ const contextParameters = JSON . stringify (
219
+ struct . decode ( context . parameters )
220
+ ) ;
221
+ console . log ( ` ${ contextId } ` ) ;
222
+ console . log ( ` lifespan: ${ context . lifespanCount } ` ) ;
223
+ console . log ( ` parameters: ${ contextParameters } ` ) ;
224
+ } ) ;
225
+ }
180
226
// [END dialogflow_detect_intent_audio]
181
227
}
182
228
@@ -189,6 +235,12 @@ async function streamingDetectIntent(
189
235
languageCode
190
236
) {
191
237
// [START dialogflow_detect_intent_streaming]
238
+ const fs = require ( 'fs' ) ;
239
+ const util = require ( 'util' ) ;
240
+ const { Transform, pipeline} = require ( 'stream' ) ;
241
+ const { struct} = require ( 'pb-util' ) ;
242
+
243
+ const pump = util . promisify ( pipeline ) ;
192
244
// Imports the Dialogflow library
193
245
const dialogflow = require ( 'dialogflow' ) ;
194
246
@@ -231,7 +283,34 @@ async function streamingDetectIntent(
231
283
) ;
232
284
} else {
233
285
console . log ( `Detected intent:` ) ;
234
- logQueryResult ( sessionClient , data . queryResult ) ;
286
+
287
+ const result = data . queryResult ;
288
+ // Instantiates a context client
289
+ const contextClient = new dialogflow . ContextsClient ( ) ;
290
+
291
+ console . log ( ` Query: ${ result . queryText } ` ) ;
292
+ console . log ( ` Response: ${ result . fulfillmentText } ` ) ;
293
+ if ( result . intent ) {
294
+ console . log ( ` Intent: ${ result . intent . displayName } ` ) ;
295
+ } else {
296
+ console . log ( ` No intent matched.` ) ;
297
+ }
298
+ const parameters = JSON . stringify ( struct . decode ( result . parameters ) ) ;
299
+ console . log ( ` Parameters: ${ parameters } ` ) ;
300
+ if ( result . outputContexts && result . outputContexts . length ) {
301
+ console . log ( ` Output contexts:` ) ;
302
+ result . outputContexts . forEach ( context => {
303
+ const contextId = contextClient . matchContextFromContextName (
304
+ context . name
305
+ ) ;
306
+ const contextParameters = JSON . stringify (
307
+ struct . decode ( context . parameters )
308
+ ) ;
309
+ console . log ( ` ${ contextId } ` ) ;
310
+ console . log ( ` lifespan: ${ context . lifespanCount } ` ) ;
311
+ console . log ( ` parameters: ${ contextParameters } ` ) ;
312
+ } ) ;
313
+ }
235
314
}
236
315
} ) ;
237
316
@@ -254,36 +333,6 @@ async function streamingDetectIntent(
254
333
// [END dialogflow_detect_intent_streaming]
255
334
}
256
335
257
- function logQueryResult ( sessionClient , result ) {
258
- // Imports the Dialogflow library
259
- const dialogflow = require ( 'dialogflow' ) ;
260
-
261
- // Instantiates a context client
262
- const contextClient = new dialogflow . ContextsClient ( ) ;
263
-
264
- console . log ( ` Query: ${ result . queryText } ` ) ;
265
- console . log ( ` Response: ${ result . fulfillmentText } ` ) ;
266
- if ( result . intent ) {
267
- console . log ( ` Intent: ${ result . intent . displayName } ` ) ;
268
- } else {
269
- console . log ( ` No intent matched.` ) ;
270
- }
271
- const parameters = JSON . stringify ( struct . decode ( result . parameters ) ) ;
272
- console . log ( ` Parameters: ${ parameters } ` ) ;
273
- if ( result . outputContexts && result . outputContexts . length ) {
274
- console . log ( ` Output contexts:` ) ;
275
- result . outputContexts . forEach ( context => {
276
- const contextId = contextClient . matchContextFromContextName ( context . name ) ;
277
- const contextParameters = JSON . stringify (
278
- struct . decode ( context . parameters )
279
- ) ;
280
- console . log ( ` ${ contextId } ` ) ;
281
- console . log ( ` lifespan: ${ context . lifespanCount } ` ) ;
282
- console . log ( ` parameters: ${ contextParameters } ` ) ;
283
- } ) ;
284
- }
285
- }
286
-
287
336
const cli = require ( `yargs` )
288
337
. demand ( 1 )
289
338
. options ( {
0 commit comments