Wie verwaltet man Benutzereingaben in einem kurzen Zeitintervall?

Diego TP

Ich möchte eine Möglichkeit implementieren, einen Benutzer zu verwalten, der viele Nachrichten in einem Zeitintervall (z. B. 3 Sekunden) sendet, sodass der Chatbot nur auf die letzte antwortet.

Eingabebeispiel (im Abstand von 3 Sekunden):

-Hi -Hi -Hi -Hilfe Ergebnis: Der Chatbot antwortet nur auf die Hilfe-Nachricht.

Danke im Voraus.

Gary Liu - MSFT

Sie können die Middleware-Funktion nutzen, um jede Nachricht abzufangen, mit der Sie jede Nachricht jedes Benutzers im Cache speichern können. Wenn Ihr Bot eine neue Nachricht erhält, können Sie diese Informationen im Cache vergleichen und dann entscheiden, ob der Fluss fortgesetzt werden muss.

Npde.js-Code-Snippet für den Schnelltest:

const moment = require('moment');
let lastMessage = null;
let lastMessageTime = null;
bot.use({
    receive: (session, next) => {
        let currentMessage = session
        if (currentMessage.text !== lastMessage) {
            lastMessage = currentMessage.text;
            lastMessageTime = currentMessage.timestamp;
            next();
        } else {
            if (moment(currentMessage.timestamp) - moment(lastMessageTime) >= 3000) {
                lastMessageTime = currentMessage.timestamp;
                next();
            } 
        }
    }
})

Was Sie beachten müssen, ist, dass Sie in der Produktionsumgebung die Nachricht mit der Sitzungs-/Benutzer-ID speichern müssen. ZB Verwenden der Sitzungs-/Benutzer-ID als Präfix der Nachricht und des Zeitstempelschlüssels im Cache.

Bitte beachten Sie https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-middleware für , wie man Nachrichten versenden , in C # und beziehen sich auf https://docs.microsoft.com /en-us/bot-framework/nodejs/bot-builder-nodejs-intercept-messages für die Node.js-Version.

Ich hoffe es hilft.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Django - Wie verwaltet man Variablen in einem Übersetzungsblock?

Wie speichert man Benutzereingaben in einem vorhandenen Array?

Wie verwaltet man tokio oneshot::channel in Containern wie einem Vec?

Wie verwaltet man effektiv zwei Kategorien von Steuerelementen in einem Formular?

Wie man Benutzereingaben mit Werten in einem Hash vergleicht

Wie verwaltet man kompilierten Code?

Wie verwaltet man die Inhaltsdimension?

Aurelia: Wie man Sitzungen verwaltet

Cassandra - wie man Sitzungen verwaltet

wie man Stil in ReactJs verwaltet

Wie kann man mehrere Textboxen in zufällige Richtungen mit einem bestimmten Zeitintervall zwischen ihnen bewegen lassen?

Wie findet man die Regressionslinie in einem Zeitintervall, in dem es eine lineare Entwicklung gibt?

Wie kann man some_time | timeuntil mit einem bestimmten Zeitintervall in Django-Vorlagen vergleichen?

Wie berechnet man das Zeitintervall zwischen einem Signal ungleich Null in Python?

Wie kann man mit PowerShell die CPU-Auslastung eines Windows-Dienstes in einem Zeitintervall ermitteln?

Wie verwaltet man viele Azure-Ressourcen und -Bereitstellungen in einem Git-Repository?

Wie man den Offset-Lesevorgang von Kafka mit einem funkenstrukturierten Stream verwaltet

Wie verwaltet man I/Os mit Golang auf einem eingebetteten Linux-System?

Wie kann man in einem übergeordneten Prozess untergeordnete Variablen anzeigen, die von untergeordneten Prozessen verwaltet werden?

Wie man Zeitintervall von PostgreSQL in Java umwandeln

Firestore, wie sichert man Benutzereingaben?

Wie erwähnt man Benutzereingaben?

Wie verwaltet man Django-Modellbeziehungen richtig?

Wie verwaltet man verschachtelte Klassen mit jQuery?

OpenGL wie man negative Normalen verwaltet?

Wie verwaltet man eine Bildhierarchie am besten?

Scrapy - wie man Cookies / Sitzungen verwaltet

Wie verwaltet man dynamische Formulardaten mit useState?

Wie verwaltet man JWT nach der Umleitung?

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv