1

I am creating a chatbot to ask some certain questions about the business of a list of stores of many companies in the countries as in the image. I am struggling with the fact that how should I group the entities for this case:

When the user inputs: Wonder Group, I want to check whether it has any store in California or not. -> If Yes, then I will ask for the name of the store -> Check if the store is available in California -> If yes, then answer: OK! Store A! // If no, then say "Sorry, there is no store under this name in California!"

-> If No, then answer "Sorry, we do not have information as you require!".

Also, should I use the multiple conditioned responses or slot here?

I have tried many ways, but it does not work.

Entity type

data_henrik
  • 16,724
  • 2
  • 28
  • 49
Peter Pan
  • 11
  • 1
  • 1
    What do you use as entity type? Is it company and location? – data_henrik Apr 11 '21 at 18:45
  • Hi Mr. Henrik. The aim of this chatbot is to answer questions about the group and all or one of its store like: what is today promotion at Store A of Wonder Group, or the openning hour... – Peter Pan Apr 12 '21 at 03:23
  • Yes, but how did you define your entities? Is it something like company / group, state, location? Not some specific values, but the concepts behind. Add more details – data_henrik Apr 12 '21 at 05:08

2 Answers2

2

As mentioned in the comments, more detail will help. However, just going by your image, it seems you may wish to have a number of entity groups. Locations (Florida, Texas, etc) and the store groups (Wonder group, snowman etc) would be a good start. Then depending on the number of stores in each location, you may wish to hard code these, or use an external database with the stores, which could be accessed via an external API call from within assistant.
This only defines creating entities via the 'Synonym entity' method, you may wish instead to train your assistant to recognise your entities via the 'Annotation-based method', see the Assistant documentation for more info.

timd
  • 376
  • 1
  • 8
1

Using contextual entities is typically best for situations where all entity values are not known to the developer. In your case, I'm assuming you will know all possible values. As Timd said, the Synonym approach may be best for this use case.

Just FYI, to practice annotating, visit https://www.ibm.com/cloud/architecture/demo/try-watson-assistant-contextual-entities/

For one of my projects, I have an annotated entity called benefitName. benefitName represents all medical procedures such as Physical Therapy, Gallbladder Removal, Heart Bypass Surgery, etc. I determined it would not be possible to find a list of all the procedures my bot may see, and that is why I used an annotated approach.

John Girardot
  • 341
  • 2
  • 5