Watson Assistant finds correct Intent and correct Entity but responds from incorrect dialog - ibm-watson

I've built a basic music-playing bot with Watson Assistant. I have a parent node for genre and a set of child nodes for artist selection. This all works as expected first time through the dialog. But when I attempt to request a different artist, Watson recognizes the correct Intent and the correct Entity, yet it instead responds from the Anything Else dialog repeatedly. I'm attaching a screen cap to illustrate.

The first time you run through the dialog the context will be clean. On subsequent turns the dialog will have built context. Without seeing the logic around your dialog flow it is difficult to pin down which bit of context, but something in the context will be blocking the flow from going down this dialog leg.

Related

Working with a web extension native-messaging API in multiple tab scenario

I'm trying to understand how to properly handle a multiple-tab scenario for web extension that, through the native-messaging API, utilizes a locally stored application through a runtime communication port.
I have one set up and working; but I don't understand what is supposed to take place when more than one browser tab uses the native application. I was planning on opening the native application only once to handle requests from all tabs that can use it, but am uncertain now. I should probably state that the application remains open and listening for new requests rather than closing after each individual request. It's opened by the background script which handles the requests from each tab's content script.
What happens if a request to the native application from one tab is still processing and a user switches to another tab and sends an additional request to the same native application? Will both requests process, is the second blocked, or will the first cease mid way and the second begin?
I can alter the set up to open a separate instance of the native application for each tab. At least I can see multiple processes open in the task manager rather than one only, when I do this.
Even in the scenario of one instance of the native application per browser tab, what happens if the user clicks the button twice, so to speak, before the first request completes? Should there always be a native_app_busy check that ignores the second request if the first is still processing?
I have a lot of experimenting to do, of course, but thought it prudent to ask how it is supposed to work. Thank you.

GPS tracking in Kinetise application

Anyone here familiar with Kinetise? I try to add to my app some kind of remote tracking functionality, where backend will trigger from active user his GPS position. What first come to my mind was PUSH notifications, but it's rather message notification than event triggering in this tool. In taxi template there is a map with live changing positions, realized by longpooling requests I think. I found that you can add your current position in request params or body and I consider to use this technique to send user location to server, but I think that I would have to add empty lists in each screen, just to send a location. A bit weird but maybe there is any better solution?
#Marek for GPS purposes you have also functions:
GPS TRACKING START
GPS TRACKING STOP
You can add it to buttons from widget "EVENTS" tab.
EVENTS tab
I know it's not triggered by server but can help you meet your requirements.

How to integrate payment gateway in applications created using javascript frameworks like ExtJs?

Our application is a one-page application created using ExtJs. For any user action, the browser tab is never reloaded and all the actions are performed using ajax. A user can open/close multiple ExtJs windows/panels within the same browser tab, and this way everything remains confined to the same browser tab.
Now, we need to integrate payment gateway in the application, which involves redirecting the user to the bank website and having her brought back to our application.
The issue is that when browser redirects the user, then all the application javascript code along with panels and windows get destroyed, and when the user comes back to the application then she finds it to be different from one she left.
As a solution to this, we were thinking of using following two appraoches:
Option 1. Maintaining the state of application - When user leaves for the bank's website then somehow we maintain the state of application - like which windows are opened carrying what data, which variables have which values etc.. and when user returns back, we generate the same application state for her.
Option 2. Have a browser pop-up window for payment gateway - We intend to provide a button which will open a small pop-up window carrying the transaction details, and in this pop-up window the entire payment gateway process will take place taking care of redirection and everything.
Option 1 is proving to be very cumbersome and complicated as maintaining the exact state is not getting feasible.
For Option 2, we are not sure if this is safe and possible?
Has anyone implemented such an approach earlier. Otherwise, what are the other options which we can go for?
Thanks for any help in advance.
I faced the problem and I implemented it using websocket/polling in the main application while a new window pops up for the payment.
After the payment is successful the main application will be notified.
That way each payment runs in it own sandbox totally unbound from the main application which makes maintenance quite easy. Note that our backend create a new session for each payment using the existing one.
I think it is not uncommon to open new windows for payment that's why I decided to go this.

Google Glass Mirror Api Playground not inserting correctly

I have run the Glassware starter project and been able to add cards to my timeline and see them on my glass hardware. That site url is:
https://glass-java-starter-demo.appspot.com/
But when I go to the Mirror API Playground and follow the directions, authorizing and push the blue insert button, nothing gets inserted on Glass. I have waited as long as 12 hours and still nothing.
Further, something is being inserted as you can see in this API Console screen capture:
Does anyone have any suggestions, I have recreated my client id many times being very careful to include the javascript origin, I have tried making my client id set up look like the one in the cat demo project instructions. But no luck.
The playground gives no error and based on the console feedback I believe it is going somewhere just not to my glass hardware. Its supposed to insert into my glass hardware right? This is how we are supposed to test rendering of timeline items, correct?
I don't know why, but this can no longer be reproduced. One suggestion from Alain was to always start fresh in a new incognito window and to be sure you are logged in as the same user the glass hardware is registered with. My working Client Id has two "Redirect URIs" and one "JavaScript origins".

Geoloqi Geofencing Logic Flow

All,
I have been looking high and low for a solution and at this point I am baffled. I am not looking for code here. I am just looking for the proper logic flow to alert users of my app that an event is taking place nearby using Geoloqi.
My platforms:
Geoloqi: Geofencing
Appcelerator Cloud Services: User, Event and Message Management
Language: javascript
Mobile: iPhone and Android
What I am trying to do:
1) I want users of my app to be able to create an event, then create a trigger based on that event.
2) I want users of my app who are near the event to be automatically alerted that the event is happening.
What I have so far:
1) Create an Appcelerator Event - Works fine
2) Create a Geoloqi Layer including the Appcelerator EventID - Works fine
3) Create a Geoloqi Trigger for the above layer - Works fine
I can see everything getting to the Geoloqi debugger. I just don't see the alert going out. I saw a post that the anonymous user needs to subscribe to the layer in order for the trigger to send to my users inside the trigger geofence. I just don't understand how to do that. I have tried several code permutations around the user/create_anon method with a key using either the anonymous username or the user access token to subscribe to the layer with no luck. I have tried using the access token returned on init as the parameter to subscribe with no luck.
I am wondering, however, if I can get the same effect by using a place instead of the layer, and avoiding the subscription issue. I somehow doubt this as the place has to reside in a default layer.
Color me confused. I already went through hell and back just getting the push certs set up for Apple, so any and all help is greatly appreciated.
Thanks,
Bruce
Bruce,
I'd recommend hitting the geoloqi developer IRC channel. You can get to it from one of the developer pages on their website. The geoloqi guys are usually online and they've been very helpful to me in the past.
If you do get it working, I'd love to hear the solution/flow for it! Hope that helps!
Tyler
OK, so here is what I am doing. Not sure yet if it is the answer, but I think it will work.
Create a default layer with no boundaries and a key that is the same each time the app runs. This will ensure the same layer is used based on Geoloqi's anti-dupe logic.
Create an anon user using the logged in user's email address since I am using Appcelerator to handle the user management. If I understand this correctly, this will also ensure the same anon-user is used if the user logs in again later. The anon user is automatically subscribed to the default layer.
When the user wants to create an event, the app creates an event on Appcelerator, creates a layer with a radius of x, a trigger on that layer, and sends a broadcast message to all users in the default layer using the trigger centerpoint and radius to limit the message to the immediate area.
If the user wants to cancel the event, the app sends a broadcast message to the default
layer in the same way the layer was created, then deletes the Appcelerator event and the layer.
I have all the code hooked in except the anonymous user. I can see the triggers being set and the messages being created on the Geoloqi Debugger, but I don't always get them. I'll be hooking in the anonymous user next week, so we shall see.

Resources