AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

dialog management - killing a topic
 
 

Is there a way to write a general rule to let the user kill a topic

Here’s my scenario. Lets say the bot has a long spiel it can get on about spiders.

The user really doesn’t like spiders, and doesn’t want to talk about them.

can we match some phrase and kill this topic

u: (let us not talk about) ^keep() ^knockofftopic()  OK, we’ll talk about something else. ^keepgoing()


poptopic won’t work, as I understand it, because I want this to happen anywhere, not just a single topic. In polite conversations when people ask you to change topics, you do.

So, is there some ^knockofftopic()  that works with the ‘real’ current topic, not with ~keywordless?

and since in this case the bot should keep talking and say it’s next gambit, is there some ‘keep going’ function?

 

 
  [ # 1 ]

There is a way. It is typically not a single rule.  Since you want a general thing to work on all topics, that means altering the control script.  The basic concepts you need are:

1. memorizing the current topic at the start of a volley
2. a topic dedicated to recognizing ways the user can say “I’m bored”
3. you can then either just drop the topic or inquire if they want to drop the topic
4. you need to decide where in the control script to call this bored topic
5. you can poptopic on the memorized current topic
6. You probably want the system to not return to this topic on its own… which means additional work setting a variable named by that current topic and setting its value to some point in the future (eg 200 turns from now).
7. checking all control script calls to gambit to first see if the variable exists and has a value greater than the current turn, and if so not doing the gambit.

 

 
  login or register to react