| 103 | } |
| 104 | |
| 105 | async function detectEventIntent( |
| 106 | projectId, |
| 107 | sessionId, |
| 108 | eventName, |
| 109 | languageCode |
| 110 | ) { |
| 111 | const {struct} = require('pb-util'); |
| 112 | |
| 113 | // Imports the Dialogflow library |
| 114 | const dialogflow = require('@google-cloud/dialogflow'); |
| 115 | |
| 116 | // Instantiates a session client |
| 117 | const sessionClient = new dialogflow.SessionsClient(); |
| 118 | |
| 119 | // The path to identify the agent that owns the created intent. |
| 120 | const sessionPath = sessionClient.projectAgentSessionPath( |
| 121 | projectId, |
| 122 | sessionId |
| 123 | ); |
| 124 | |
| 125 | // The text query request. |
| 126 | const request = { |
| 127 | session: sessionPath, |
| 128 | queryInput: { |
| 129 | event: { |
| 130 | name: eventName, |
| 131 | parameters: struct.encode({foo: 'bar'}), |
| 132 | languageCode: languageCode, |
| 133 | }, |
| 134 | }, |
| 135 | }; |
| 136 | |
| 137 | const [response] = await sessionClient.detectIntent(request); |
| 138 | console.log('Detected intent'); |
| 139 | const result = response.queryResult; |
| 140 | // Instantiates a context client |
| 141 | const contextClient = new dialogflow.ContextsClient(); |
| 142 | |
| 143 | console.log(` Query: ${result.queryText}`); |
| 144 | console.log(` Response: ${result.fulfillmentText}`); |
| 145 | if (result.intent) { |
| 146 | console.log(` Intent: ${result.intent.displayName}`); |
| 147 | } else { |
| 148 | console.log(' No intent matched.'); |
| 149 | } |
| 150 | const parameters = JSON.stringify(struct.decode(result.parameters)); |
| 151 | console.log(` Parameters: ${parameters}`); |
| 152 | if (result.outputContexts && result.outputContexts.length) { |
| 153 | console.log(' Output contexts:'); |
| 154 | result.outputContexts.forEach(context => { |
| 155 | const contextId = |
| 156 | contextClient.matchContextFromProjectAgentSessionContextName( |
| 157 | context.name |
| 158 | ); |
| 159 | const contextParameters = JSON.stringify( |
| 160 | struct.decode(context.parameters) |
| 161 | ); |
| 162 | console.log(` ${contextId}`); |