Conversation / Session / Fill in Slots

Not sure if this is even possible. But here goes.

Can rhasspy do conversational/session?

For instance. lets say you create an intent that will book a plane ticket. The following slots need to be filled in.

Airline
DepartureAirport
DepartureDate
Destination

Now, lets say you wake up rhasspy and say “book me a flight”. This is a pretty obvious intent that you want a flight. But the slots needed for the intent are not populated. Is it possible for rhasspy to start a “session” and send back a tts prompting for the missing info? If you do not response in a specified time, it just closes and indicates it didn’t’ have enough info, but if you answer, then it re-evaluates and prompts again for the missing data.

This should be possible soon with the dialogue manager.

4 Likes

I use:

my robot speak first question

time.sleep(0,5)
os.system('curl -X POST "http://localhost:12101/api/start-recording" ')

I speak my réponse …exist in sentence.ini

    time.sleep(5)

os.system('curl -X POST "http://localhost:12101/api/stop-recording" ')

continu second question

Would really need this stop and restart wakeword detection ! :hugs:
@synesthesiam would it possible to have an http endpoint for this ?
Or at least an mqtt topic to publish to for this ?

start-recording = no wake-up word needed

me speak: turn on the tv

rhasspy speak: which channel do you want?

…start-recording

me speak: the two

…stop-recording

rhasppy speak: ok

Sorry for my english

1 Like

so if you say “turn the tv on to channel 2” would it see both slots have been filled in 1 action?

I will keep it simple: in “sentence.ini”
turn on tv on channel two {channel}

in json I will have a ‘name and value slot’:
channel = two

1 Like