wit.ai - Keywords conflict - wit.ai

I am designing a bot with wit.ai and encounter a conflict issue.
In my story the user wants instructions to access a service. I've created an entity service.
There are 2 services available "mailing" and "chat channels" but I want the user to be able to ask instructions for both at once.
Therefore, my entity service has "keywords" for search strategy and "mailing", "chat channels" and "both" as values.
But when I branch the story after the question the bot asks "to which I've added quick answers "mailing", "chat channels" and "both", but at this point I have a conflict between the branches.
When I test the bot on wit.ai, whatever my answer he goes to the "both" branch.
I'm struggling to find out why there is a conflict between the keywords, if someone could help me it would be great.
I've tried to train the bot with small variations of each answer but this doesn't solve my issue.

Here is the solution we came up with for this issue:
instead of creating a new story, start by creating the entityof type traitin the understanding tab
enter all possible values in the understanding tab
once the entity has been properly created, you can use it in a story

Related

How to make dialogflow distinguish two similar entities?

I need a help about distinguish similar entities.
In my case I have one entity called '#agent' with some entries, two of them is 'Iago Campos' and 'Iago Coutinho'. I have an intent called 'transfer' that is triggered when user says that want to talk to someone. When user says 'I want to talk with Iago' dialogflow doesn't match any of the 'Iago'
I want to know if it's possible to make dialogflow ask to user if he wants to talk with Iago Campos or Iago Coutinho. I was looking aboult Fulfillment, but for many reasons I'm not confortable using webhook to just distinguish agents...
#Agents entries
Dialog Flow doesn't match any of the “lago” because it does not know what decision it has to take since it found 2 matches “lago Campos” and “lago Coutinho”.
If you proceed to say “Campos” dialog flow will find only one match “lago campos” and it will return it. It would be ideal to remove the world “lago” since it causes redundancy in your system.
On the other hand a fast solution would be to create another Intent specifically for when the user enters the word “lago” and that it is linked with a trigger that replies what “Lago” is it referring to. Here the final user can choose one “lago” or another.
So here I could suggest creating this behavior using a Fulfillment webhook in that way you can use it from the same intent

How to add a list of keywords to an wit.ai entity?

I'm new to wit.ai. I'm building a bot that does voice input for an order processing pipeline. In one field i need to input the client location. And this client_location entity has a keyword search strategy attached to it.
Now i want to add all cities, towns and villages to this entity as keywords. Because only one of this will be considered a valid value for client_location entity.
But there are a couple thousands of them, and adding them by hand, one by one, inside the wit.ai UI, doesn't make much sense.
I want to use a cli tool or a node package or something - to do it programmatically.
How can i do this? And also is ok to have so many keywords for one entity?
For now, the node.js library can't do training.
But you can still do it using HTTP REST api, by posting to /samples path.
POST/samples
The docs are here.

Stories sandbox in wit.ai

Let's say I create a story dedicated to giving the weather in a given place, and a story dedicated to listing the possible activities in a given place, and a allowing to buy tickets for them.
Let's say a user launches the second story by entering "what can I do in Paris ?". Bot answers with a list of things and asks the user to input the one he'd like to buy a ticket for.
But, instead of entering a number, the user inputs "What is the current weather in Paris ?". Will the first story be triggered ?
A wit.ai blog post states :
We strengthened the initial overfitting: when a user follows the
scenario of a story, the bot will 100% stick to the story.
Should we repost the intent as a context key so that the next action prediction scope stays within the same story ? Should all end of a story flush the context of all keys (which in our tests seems to be a very good idea not to stick to a story) ?
Thanks for any insights.

user login before or after main application part?

Theoretical question. Lets say I build an application for managing clients, products, bills and such. All without a user login.
Is it possible to get multi user (each one with his own clients,products,...) functionality after the main application is done?
Or should I think of the multi user in the first place? How flexible is rails at this part?
thanks in advance
dennym
What you are asking for is a pattern called Multitenant. There are different ways to do it, but none are provided by Rails natively.
You could start with this slide: http://www.slideshare.net/tardate/multitenancy-with-rails
And figure out if you want to do; partitioning based on data, Rbac, model or schema.
There are is one that offers it as a service that says that it is easy to do after you have your application: http://railskits.com/saas/
But in our experience, it was a bit outdated and missing some features that we wanted.
You can also take a look at other gems like: multitenant or act_as_tenant.
We ended up using act_as_tenant and doing it from the beginning.

Trac plugin to send email number of new and closed tickets and their details based on define schedule

I am looking for a way or a plugin so that trac sends me email about the number of new or closed tickets (and some information about these tickets also ) for a specific duration lets say for the last three days.
Basically I need to know how many tickets have been created in last week and how many of them have been closed at the end of week.
Of course the email only should be sent to the admin and not to all the users.
For additional Trac funcionality we have Trac plugins, yes. And the first place to look for them is trac-hacks.org .
The excellent TagsPlugin in use overthere already delivers some hints on resources tagged with notification or notifications. The most comprehensive and mature solution is certainly TracAnnouncer with a just reworked configuration interface providing a highly sophisticated opt-in and opt-out subscription system. Unfortunately digest notification are not integrated today.
Still there are other plugins, that fill in the gap, i.e. check the XMailPlugin. It claims to do configurable instant, daily and weekly notifications, so this may be for you. Since this is a relativly new plugin, you should expect some pending issues, but the author might be very open to your suggestion. If you're becoming a heavy user giving valuable test feedback and a bit lucky too, asking kindly could be enought to make things happen.
There's a slightly different way to solve this problem that doesn't require any plugins. First, create a custom "timeline" view that displays the information that you want. In your example, this would be all "opened and closed tickets" starting from "today" and going back three days. When viewing this custom view, you should see a link at the bottom of the page that says "RSS Feed" (on my system, the resulting URL looks something like this: http://myserver/timeline?ticket=on&max=50&authors=&daysback=3&format=rss). Click on this link to subscribe to the feed using your web browser, email client, or other program capable of reading feeds. Now, you can view the results live at any time. What you can do at this point is only limited by the capabilities of your feed reader app, but most can at least be configured to notify you when the feed is updated.