ChatBot QnaMaker(Microsoft Azure) vs Lex (Amazon AWS) - azure

Looking to make a chatbot on either Microsoft QnaMaker or Lex.
I would like to be able to make API calls to request answer to the question (node.js), train the bot using the API.
Currently I am using QnaMaker but unfortunately it doesn't seem to have response cards where user can click on it.
I know that Amaazon Lex allows this but do they allow training of bot through API?

Yes, you can make intents, put utterances and slots using the API's.
Lex support two types of API's - Model Building API and Runtime API. What you need is Model Building API.
As you are working with node.js, you should be referring this page and read more and more about putIntent() method.
Hope it helps.

Related

How to create a custom webhook in Dialogflow based on Azure?

So I would like to implement Dialogflow fulfilliment using a custom node.js webhook. I've created a node.js app in Azure (I have my own .azurewebsites.net site), however I'm not quite sure how to link it to Dialogflow. How do I do this? Thank you.
On the dialog flow side Go to dashboard and click on fulfillment on side bar provide the web hook and basic authentication and headers.
On nodeJs make sure you provide POST Webhook API where dialogflow app sends requests.
Are you familiar with Express or any other framework to create REST APIs with Node?
There are tons of material on the web, but this is a starting point if you like.
In this link you'll find the documentation that shows which fields will be posted to your endpoint and those that you'll want to send back to Dialogflow.

How to make 3rd party api call in dialogflow's inline editor

How to make 3rd party api call in dialogflow using inline editor please share if you have some code regarding this.
Thank you
You cannot make external network requests (for example an API call) from the inline editor. You need to deploy your code elsewhere. The easiest way to do this is by deploying to a paid Firebase plan. From Google:
Network calls originating from your Cloud Function for Firebase to destinations outside Google's network require billing to be enabled for the underlying Google Cloud or Firebase project.
You can create an API with the technology that you want, as long as the response from the API can be understand by Dialogflow.
You need to configure it by going to Fulfillment, and point it to your API.
The API needs to respond with this structure: Dialogflow.
And If you plan to integrate with Actions on Google, you have this repository which includes some examples of responses.
And here you have some libraries to interact with Dialogflow with different languages.

Intercept fulfillment response

Im using fulfillment to get data from database. And I have integrated my bot with facebook.
And currently I'm customizing db response as per facebook in my api itself and sending it to the dialogflow.
And I want to integrate it with skype too.
Now my question is, can I customise my api response in dialogflow instead of in API. As I want to integrate my bot with multiple platforms so accordingly their response will be formatted as per facebook or skype.
So i will need to create another api for skype too. I want to avoid this.
So I want to get output from my api and format it in dialogflow itself using custom payload. So is it possible to work in this way?
Sure! You get the stored data using your API and then you format the response for the platforms you are going to use. In this example, the payload contains different responses for Google Assistant, Facebook and Slack.
Also, take a look at this NodeJS library which makes easier develop your fulfillment code.

Customise Azure bot framework in NodeJs using DirectLine JS

I am looking for a solution which has Customised Azure bot in website. I am not looking for an iFrame integration, As i have already explored. I need a solution which gives me an option to make UI changes in the bot window and invoke Live agent Chat window(Third party) from the existing Chatbot.
I tried these link below which dint help
https://github.com/Microsoft/BotFramework-WebChat
I understand exactly what you need.
It's true that the github url you pasted won't help but I know you'll get a lot of tips from the Direct Line and DirectLineJS documentation from the Advanced part.
You simply need a way to integrate to the Bot Framework from your existing UI system and hence using the Bot as just an Endpoint.
Your solution lies in the actual implementation methods for various channels that is supported by Bot Framework. Take Skype or Facebook for instance.
You need to study and configure WebHooks, Direct-Line Channels.
First: Use the Azure Portal to add a new website to your Bot in Channel property.
Secret Keys would be generated for you after then you can configure for version 1.1 or 3.0.
Check the Documentation here: https://learn.microsoft.com/bot-framework/rest-api/bot-framework-rest-direct-line-concepts
Now your site can be configured to talk to the Bot Framework via Web Clients and Sockets as API requests.
With these, you have the priviledge to use your own UI with the Bot Framework.

Integrating Watson Assistant (formely conversation) with Telegram/Facebook

I am confused about how to integrate my Watson bot on messaging platforms such as Facebook messenger. To build that bot, I used the Watson Conversation service and also used Bluemix cloudfoundry node.js app to expose it on the web. It works very well, but I just can't integrate it to platforms without the use of a third-party platform like stamplay. I don't really want to use third-party platforms to integrate my bots.
Anyone have any ideas? Maybe I can host my own bots on my Bluemix cloud platform? I just don't know how.
You might want to use some facilitators for this, like Node-red or NGROK.
Use Node-red to Integrate Watson Conversation with facebook easily.
Use NGROK, Tanmay Bakshi teaches how to do that. Check this tutorial.
With Node-RED you can create functions, and have a lot of options for Business rules for your application.
Note: I've built some open source basic example to Integrate Watson Assistant with Telegram and Facebook using Node.js. You can follow the instructions or read the docs in the repositories.
This middleware plugin allows developers to easily integrate a Watson Conversation workspace with multiple social channels like Slack, Facebook, and Twilio. Customers can have simultaneous, independent conversations with a single workspace through different channels.
https://github.com/watson-developer-cloud/botkit-middleware
I created a starter application for this purpose. My example is for Slack and you easily use it by creating an slack API token.
The starter is implemented in node-red and you just need to insert your API token and the rest is deployed automatically. I used Watson Conversation and Natural Language Understanding.
One-Click-Deploy and more detailed description:
https://github.com/BenediktKrueger/SlackBot-Starter-on-Bluemix

Resources