IBM has launced a new feature as add on to the virtual assistant: Web chat - Live agent. IBM is really putting some work in becoming the best virtual assistant.
This functionallity can switch a user from a chatbot conversation directly to a real human agent.
This is the second feature, next to the search skill (Discovery), that can really boost your chatbot game. Since your chatbot can now be a single point of contact for all your customers!
The web agent is an of the shelf integration, just add a script provided by IBM, no developer or programming skills are needed.
How do you integrate it on your own website?
You need to look up the Live Engage integration in the catalog on IBM cloud. You will need a plus or premium plan. You will be able to escalate conversations to this platform out of the box using Web Chat.
Just put the script element in the header of the website page you want it to display your assistant:
<title>My Test Page</title>
<p>The body of my page.</p>
<!-- put copied script elements here -->
This is how the UI looks like for an agent. It can see the history of the current chat and respond real time to the customer.
IBM Watson is a really good AI platform.
But since development of the Watson Platform goes so quickly, they keep pushing new updates and workspaces.
If you are a developer, this can be quite time consuming, since you need to keep rebuilding the former workspace now called Skills and APi configurments.
This last Update to V2 and the deprecation of the bluemix environment gave me quite a few headaches.
To save you from the hassle, here is an example how you can rebuild a Watson assistant and Watson discovery API with the cloud CLI Tool.
c:\Program Files\IBM\Cloud\bin>ibmcloud cf push
FAILEDNo CF API endpoint set.
Use 'ibmcloud target --cf-api ENDPOINT [-o ORG] [-s SPACE]' to target Cloud Foundry, or 'ibmcloud target --cf' to target it interactively.
it's because you are still pointing to the old bluemix link:
c:\Program Files\IBM\Cloud\bin>ibmcloud api https://api.eu-gb.bluemix.net
Setting api endpoint...
API endpoint https://api.eu-gb.bluemix.net is going to be deprecated. Use https://cloud.ibm.com.
here is what you do:
c:\Program Files\IBM\Cloud\bin>ibmcloud api https://cloud.ibm.com
c:\Program Files\IBM\Cloud\bin>\ibmcloud login
now your ENDPOINT is set to the cloud.ibm.com
Now set the right environment for discovery:
c:\Program Files\IBM\Cloud\bin>ibmcloud target --cf-api api.eu-gb.cf.cloud.ibm.com
We experimented a little with Machine learning, but now we get to the part where it really get's interesting. Creating a chatbot.
In this example, I use a simple tool called Q&A maker and the Azure QnA maker resource. When you connect both services, you can integrate the bot on social media like Skype, messenger or as a Cortana service, or create a (mobile) app. Sign up at https://qnamaker.ai. and create a new knowledgebase.
I added some of my car data to the knowledge base and named it 'license check'. Based on a license plate we send to the bot, it will respond with the matching car brand. we need to train the bot and publish it. as you can see in this example: Save and train your Q&A with the data, test the data and when you like the results you Publish it.
When you publish the Q&A it will open a new screen with the URL details, you will need the details to associate your Q&A data with the Azure bot:
Go to Azure Bot service in Azure portal and go to the Application Settings page, in the App Settings section, set the QnAKnowledgebaseId, QnAAuthKey, and QnAEndpointHostName values from the published page and save the keys to Azure.
Now try out the new bot in the Azure webchat.
This is still very basic information, but we can 'learn' our bot new skills, for instance to be more social. Since we are humans, we always greet someone when we meet. So, what if someone says hello? the bot will not recognize this as a license plate and will respond with an error, but we can learn the bot, that whenever someone says Hi, Hello or Hoi, The bot will respond back with a friendly Hello! as you can see in this clip. It even understands bad sentences and grammar:
This is just the very basics of a chatbot. You can also add LUIS (Language understanding intelligence service) to your bot. LUIS service is a language processor. You need to create a LUIS service in Azure portal: add new resource and browse for LUIS. Then sign up at https://www.luis.ai and create an intent to associate LUIS with your Q&A content. This makes your bot interesting to publish it under Cortana, You can just tell your computer what license plate you are looking for.
Read my previous post on creating the car data for Machine learning.
What street legal cars taught me about Machine learning? It's all about the right data being available and the RDW data can't be trusted!
I impulsively signed up for an Artificial Intelligence certification track 2 months ago, So I've been experimenting with Artificial Intelligence for a while now and in the beginning of the course it was one though cookie! Those formula's to interpreted the data predictability really freaked me out!
But once I got past the formula's and I saw the resemblance of the workspace with Microsoft products like SSIS and BI I see endless possibilities. This takes the data to a whole new level.
Preparing the data:
I did a test on all cars that are currently on the road in the Netherlands and combined it with performance data. I wanted to find the fastest street legal car. I guess I just wanted to find out what kind of cars I should fancy these days according to the performance stats.
I used an open data set from the dutch RWD (Driver and Vehicle Standards Agency). It contained 14m rows and it's 7GB in size. So I had to prepare the data in order to keep the experiment basic and performance high. I imported it into my SQL server and I filtered out the the stationwagons, campers, scooters and trailers, So I was left with a 900000 rows data set.
I use a SQL Server 2017 and the Microsoft Azure machine learning studio to create a new experiment.
In order to make a prediction I needed to combine the brand data with the engine displacement data, because horsepower data was not available, to see which models are high performance based on the engine capacity. So sadly the smaller engines which are supercharged are not correctly represented in the prediction.
The calculation based on above rules, took a local SQL server on an i5 laptop about 15 minutes. I needed more data preparation.
Based on engine displacement, a top 3 came up. But I didn't like the results at all. Sure, the engine displacement was high, but the cars are heavy and their performance isn't the best. Super charged Turbo's and gearing make all the difference, but aren't properly represented in this data result.
I had to filter out a lot of data, next up I added the weight of the car, but it wasn't trust worthy either. I found a data set which contained the Kw of the cars and top speed and joined the data with my current results and added a calculation in SQL on the Kw row * 1,362 to calculate the Hp of the car. The Hp outcome looks pretty accurate. After 4 hours of combining data and filtering the queries I gave up. Based on this data there is no way you can truly point out the fastest cars. I had to change my plans. Too many uncertain variables to make a decent prediction and not even close to the start of an IA project 🙁
After more data crunching, The results are still not really worth to display. So here is a TOP 21 of "fastest" cars...based on...well the obvious HP and Weight sorting:
Ok, I got a little bit carried away with data prepping.
Now let's import it into an IA experiment: First you need to create a resource in the Azure Portal for your workspace. I won't get into details, we did this before!
Verify that you created the following new resources: A Machine Learning Workspace, A Machine Learning Plan and A Storage Account.
Browse to the Machine learning workspace you created and launch Machine Learning Studio. This opens a new browser page.
Go to experiments and down in the left corner click NEW.
Rename the experiment and add a dataset. Upload a new dataset. Datasets --> NEW--> Select data to upload. Now that you have the dataset ready, you can drag it into your experiment and start running tests and variables on the data.
In my next post we will dive deeper into Artificial Intelligence