Since yesterday, the Conversation service sometimes doesn't answer a response. It recognizes intents and entities, but there is not text in the response. This is what I get when I use CURL:
{"input":{"text":"soporte"},"context":{"conversation_id":"4c700daf-6dd2-4308-be8
d-b76426278536","system":{"dialog_stack":["root"],"dialog_turn_counter":1,"dialo
g_request_counter":1}},"entities":[],"intents":[{"intent":"soporte","confidence"
:1}],"output":{"log_messages":[{"level":"warn","msg":"No dialog node matched for
the input at a root level!"},{"level":"warn","msg":"No dialog node condition ma
tched to true in the last dialog round - context.nodes_visited is empty. Falling
back to the root node in the next round."}],"text":[]}}
When I test the Conversation from the Web interface, it shows that it recognizes the intent, but doesn't give an anwser.
This happens with any intent or entity, in both models I currently have. I clarify that it is an intermittent behavior, sometimes it works fine (it works fine aprox. 1 out of 3 times)
example image
This is still occurring with Conversation "version_date": "2017-04-21"
.
In my case,
- intent is correctly matched, whether Web or Slack
- Web UI sometimes produces the matching response
- slack app always gets "No dialog node matched for the input at a root level!"
Additional Log message : "No dialog node condition matched to true in the last dialog round - context.nodes_visited is empty. Falling back to the root node in the next round."
Examples
one intent is #value_judgement. An example question in the node is "Should we commit ground troops in Syria?" Intent is correctly detected, and Web UI produces response dialog.
second intent is #fact_check, with example "Is it true that 78% or the earth's surface is covered with water?". Intent is detected in both app and Web UI. Neither receive the response dialog.
Web UI succeeds
App Fails
To be honest, this is hard to answer without seeing a sample conversation script you are calling. So this answer is generic.
First let's examine your JSON response.
In the response we can see this:
"intents":[{
"intent":"soporte",
"confidence":1
}
This tells you that it found the intent, but not that it took any action on that intent. The action is defined by your Dialog tree.
The main error message is this:
No dialog node matched for the input at a root level!
This means that no where in your top level of nodes did it find a condition that matches. In your case, you need at least one node with the condition of #soporte to capture the intent.
You should also add an "Anything Else" node (normally done automatically) at the root. This way you can see when it hasn't matched something easier.
Here is an example tree:
Related
In my mobile app, we use the docusign API to create a pdf enveloppe in a mobile app and change its content to match our customers expectations.
There are text components of the pdf that I'm supposed to be able to change, like DocuSign_SignerPlacedCompleteConfirm. Problem is, when changing the value, nothing appears on the enveloppe, while the change does happen for other fields.
Our doc includes the Docusign-Signing-Resource-File pdf v2.0 and the original resource file from docusign (master downloaded on their site).
I've already observed a difference between our master resource file and what the doc says about what's inside.
So I guessed that the field key was not the right one and I tried other names for the key, like placing "_Mobile" at the end.
But it still doesn't work.
I really feel like the doc is missing something, and it bothers me as everything looks changeable and this item is supposed to be but I can't get it to change.
<data name="DocuSign_SignerPlacedCompleteConfirm">Bla bla bla</data>
doesn't change the field I want. But
<data name="DocuSign_HelpfulStart_Mobile">Click on START to start</data>
does change something, a text which is near the previous one.
The field I want to change is circled in black here :
Field to change
App is coded in React Native, opens a WebView in which you can see above page, generated by DocuSign.
I can't see any error log from docusign, and I just expect my text in the header to be set at 'Bla bla bla' for example. Instead, it's set at the default value.
I'm sorry Axel, but I'm afraid what you are asking is not possible.
Changing the UI of the actual signature tabs in a signed envelope is not supported at this time.
It is a major security concern to enable this type of change, as it would potentially allow someone to make it look like someone else signed their envelope.
I'm trying to create an NG app where parts can be enabled/disabled dynamically. The idea is to have an "admin" page, where parts of the app can be enabled or disabled, and then see new functionality appear, in the form of an adjusted menu at the top of the page, and matching routes, controllers, etc loaded into the app (I'm using SocketStream w/ NG).
The first step was to add / remove routes dynamically, for which I found a solution at https://stackoverflow.com/a/13173667 - working well, as far as I can tell.
Next, adding items to the menu bar - easy with ng-repeat on ul/li items.
So the app adjusts its menu and recognizes the corresponding route. So far so good.
The problem comes with registering a controller. I'm calling myApp.controller('SandboxCtrl',[...]) with proper args (same as what worked when initialising statically on startup), but the controller does not appear to get loaded or inited properly. Navigating to the newly added route generates errors such as:
Error: Argument 'SandboxCtrl' is not a function, got undefined
assertArg#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:973
assertArgFn#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:984
#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:4638
update#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:14007
$broadcast#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:8098
#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:7258
wrappedCallback#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:6658
wrappedCallback#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:6658
#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:6695
$eval#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:7848
$digest#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:7713
$apply#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:7934
#http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.js:5433
I'm currently at a loss on how to proceed. I've not been able to find a solution on the web. The app is too large to put in a jsFiddle, but I can commit the last changes on GitHub if needed.
Questions: is this feasible? what can I do to debug this? any examples I could look at?
EDIT: The code is now at https://github.com/jcw/housemon (needs node/npm/redis). It's easy to reproduce the problem: launch with "npm start", browse to localhost:3333, go to admin tab, click on "jcw-sandbox" and then "Install". Top menu will update with new a "Sandbox" entry. Clicking on that entry generates the error shown above.
Oh, almost forgot: relevant code is in client/code/app/main.coffee and client/code/modules/routes.coffee ...
The answer turns out to be two-fold:
the NG calls were made from SocketStream RPC callbacks, and had to be wrapped in $scope.$apply calls - my bad, didn't know about this SS/NG interaction
the rest of the solution was outlined by #matys84pl - pick up $controllerProvider (and $filterProvider) early on, so they can be called at a later time instead of the normal "app.controller" and "app.filter" members, which don't seem to work anymore later on
Example code in GitHub, I'll link to a specific commit so this answer stays valid:
https://github.com/jcw/housemon/commit/f199ff70e3000dbf57836f0cbcbb3306c31279de
I've taken a reCaptcha plugin from this guy
(github link of the plugin)
I've entered the following code form in my view:
[form creation]
[table]
[inputs]
[/table]
echo $this->Recaptcha->show(array('theme' => 'white'));
echo $this->Recaptcha->error();
[/form]
I've followed the steps suggested, and the reCaptcha window appears properly, but no matter what I enter in the captcha, it never gets verified and I always receive the 'message' field of beforeValidate (I've set it to "You've entered a wrong message" etc).
I'm not even sure how to debug it to see at which point it fails. Even if I just replace all the code in checkRecaptcha function with "return true" to try and skip the validation with the keys and just see if the rule itself is correct, it still remains the same, and I'm generally not getting any of the specific incorrect-captcha-sol messages that I read around.
Am I correct to assume that the only code I need inside my controller function (assuming I've already included the component and helper in the controller) is Configure::load('Recaptcha.key'); and no further manual validation checks?
(unfortunately I can't link you my whole project due to rights)
I had a similar issue. Try removing the 2 response and challenge field lines in the component and overwrite them with these:
$controller->$modelClass->set('recaptcha_response_field',
$controller->request->data['recaptcha_response_field']);
$controller->$modelClass->set('recaptcha_challenge_field',
$controller->request->data['recaptcha_challenge_field']);
I have a test page with a list of 100 items.
When I scroll the list down every time this timeout error pops up.
Is there a fix for this in ZK?
There is nothing else special just a list with 100 test rows.
I'll make an educated guess that this is because you're storing some state (maybe "what page is this user on") in memory and expecting it to be around on the next request. In App Engine, it won't be. There are at least 3 ways around this:
Use memcache
If the data's important, put it in the datastore
If the data's small and non-confidential, send it down to the client and have the client send it back to the server on the next request. In this case, that seems like the correct solution.
UPDATE:
On zk docs it says to use:
<zk>
<!-- clustering environment -->
<system-config>
<disable-event-thread/>
<ui-factory-class>org.zkoss.zk.ui.http.SerializableUiFactory</ui-factory-class>
</system-config>
<!-- GAE doesn't allow user's thread -->
<client-config>
<resend-delay>-1</resend-delay>
</client-config>
</zk>
But when I comment this line out:
<disable-event-thread/>
The error goes away!
When a deliver has been performed I can rightlick an entry in the GUI version/element log and it displays me a popup with the element log. Quite handy.
I now have a delivery with about 25 failed ones and a couple of hundred OK's. Sadly I can not sort on the column "status" so I have to make screenshots wherever I find a [!] to sit together with the specific team to find out if it is really ok to not deliver those.
It would however be handy to have this list of element logs from a deliver so that I do not have to make screenshots or copy the contents of the popup box one by one but just have a list of the failed ones with the element log.
Is there a way to export the element logs from a deliver (so the the ones that show up when you rightclick and choose "Display Element Log") and/or only the ones that gave failures?
Whenever a deliver fails graphically, one possible solution is to resume it through the command line (cleartool deliver -resume), grepping for the "cleartool Error" message.
At least that way, you have a text information to share.
Other than tat, I do not know of a way to export the deliver result directly from the GUI.