Botbuilder dialoger ikke støtter debounce eller separate sløyfer

stemmer
0

Hvordan oppnå følgende? Det finnes to typer av lyttere i botframework ett til roten dialog / hvor luis behandleren er festet til. en annen er Prompts hvor en inngang fra brukeren er søkt.

I begge anledninger. det er mulig at brukeren skriver inn inngangene i en serie av tale, og ikke nødvendigvis bare en.

hvordan kan Ber i botbuilder samle inn debounce mønster, esp når du er i midten av søker innspill fra brukeren? og hvordan kan disse rettes til Luis mens i midten av dialogen?

f.eks en.

bot: please enter your name
user: 1 sec
user: ok, it is Smith.

2.

bot: fetching the details from server... ( 5 sec pause makes user lose patience)
user: u there?
// This should not break the current dialog ( i.e. dialogue handler is preparing a response).
bot: yes, I am there.still waiting for a response from server. pls hold on. (after few secs...)
bot: got the details. here you go..
  1. tredje eksempel.

    bot: Hva var din erfaring?

    bruker: Vel, hvor skal jeg begynne?

    bruker: det var litt ok, men ...

    user: ikke veldig bra ..

    bruker: men vil anbefale

instruksjonene for bør være i stand til å samle disse før det reageres på hvert inngangs ...

Publisert på 06/03/2017 klokken 08:27
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Her er hva jeg gjør: å bruke biblioteket "debounce-køen" Im kø bruker meldinger i bot.use ({motta}) mellomvare. Når rekke hendelser får debounced, jeg fortsetter å fusjonere de hendelser (tekst, vedlegg, etc). Etter dvs ferdig jeg fortsette å utføre neste () mellomvare tilbakeringing. Her er noen kode (også bruker lodash _), kan det hende du må tilpasse seg ditt:

var debounces = {};
bot.use({
  receive: (event, next) => {
    if (event.type === 'message') {
      if (!debounces[event.address.user.id]) {
        debounces[event.address.user.id] = debounce(events => {
            var last = events[events.length-1];
            var event = last.event;
            _.reverse(events.splice(0, events.length - 1)).forEach(debounced => {
              event.text = debounced.event.text + ' ' + event.text;
              event.attachments = _.concat(event.attachments, debounced.event.attachments);
            })
            last.next()
          })
        }, 2000)
      }
      debounces[event.address.user.id]({ event, next });
    } else {
      next()
    }
  }
})
Svarte 01/12/2017 kl. 03:23
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more