Released new Plugin for the integration of Google's DialogFlow

DialogFlowBot Plugin Readme

Overview

DialogFlowBot is an autoresponder that can be used to respond to incoming messages using Googles DialogFlow Service.

JAR : Email me at himan.verma@live.com to get the jar (I’m not able to upload a jar here as its restricting new user to upload files)

DialogFlowBot properties

There are few properties that can be defined to change plugin behaviour:

  • plugin.dialog_flow_bot.debug - enable debug logs. If something doesn’t work set property to true
  • plugin.dialog_flow_bot.send_body - boolean value to determine if message’s body will be send. True by default.
  • plugin.dialog_flow_bot.google_json_path - Google Service Access Credentials json file path on openfire server (Eg. /var/www/GoogleDialogFlow.json)
  • plugin.dialog_flow_bot.project_id - Google Service ProjectID (INFO : Google HELP)
  • plugin.dialog_flow_bot.lang - string value, DialogFlow Agent Language. Default en-US
  • plugin.dialog_flow_bot.responder_jid - string value, From JabberID (Response messages’s JID) Eg. admin@localhost
  • plugin.dialog_flow_bot.watch_all - boolean value, Process all incoming messages, Default: true (If set false it will only process the messages with the set keyword)
  • plugin.dialog_flow_bot.watch_keyword - string value, To use this set the watch_all to false (Message only with this set keyword will be processed)
  • plugin.dialog_flow_bot.min_confidence - float value, This is the DialogFlows responses minimum confidence value for the result. If it matches only then the Bot will respond to message

Note: After changing the above setting you need to restart the plugin to apply the changes.

Response message Stanza

<body xmlns='http://jabber.org/protocol/httpbind'>
	<message xmlns='jabber:client' to='user1@domain.com/converse.js-22295952' from='bot@domain.com' type='chat'>
		<body>This is a text response</body>
		<data xmlns='dialogflowbot'>{
		  "queryText": " 03:10 me: @bot tell me weather forcast of nyc?",
		  "parameters": {
		  },
		  "allRequiredParamsPresent": true,
		  "fulfillmentText": "This is a text response",
		  "fulfillmentMessages": [{
		    "text": {
		      "text": ["This is a text response"]
		    }
		  }],
		  "webhookSource": "webhook",
		  "webhookPayload": {
		    "items": {
		      "": {
		        "temperature": "25°C",
                        "wind": "12 mph NE"
		      }
		    },
		    "status_code": 200.0,
		    "success": true,
		    "message": ""
		  },
		  "intent": {
		    "name": "projects/yourproject-201104/agent/intents/da95ae2f-32e1-4870-b49b-c3686e6e8f5c",
		    "displayName": "market-today"
		  },
		  "intentDetectionConfidence": 0.88,
		  "diagnosticInfo": {
		    "webhook_latency_ms": 1154.0
		  },
		  "languageCode": "en-us"
		}</data>
	</message>
</body>

Author/Developer: Himanshu Verma

1 Like