Allgemeine häufig gestellte Fragen zu Bot Framework

Dieser Artikel bietet Antworten auf allgemeine häufig gestellte Fragen.

GILT FÜR: SDK v4

Warum hat die Eingabeaktivität keine Wirkung?

Bei einigen Kanälen werden vorübergehende Eingabe-Aktualisierungen im Client nicht unterstützt.

Was ist der Unterschied zwischen der Connector-Bibliothek und der Builder-Bibliothek im SDK?

Mit der Connector-Bibliothek wird die REST-API verfügbar gemacht. Die Builder-Bibliothek fügt das Programmiermodell für den Konversationsdialog sowie andere Funktionen wie Eingabeaufforderungen, Wasserfälle, Ketten und geführtes Ausfüllen von Formularen hinzu. Die Generator-Bibliothek bietet auch Zugriff auf Azure KI-Dienste wie das natürliches Sprachverständnis.

Welcher Zusammenhang besteht zwischen Benutzernachrichten und HTTPS-Methodenaufrufen?

Wenn der Benutzer eine Nachricht über einen Kanal sendet, gibt der Bot Framework-Webdienst eine HTTPS-POST-Anforderung an den Webdienstendpunkt des Bots aus. Der Bot kann auf diesem Kanal null, eine oder viele Nachrichten an den Benutzer zurücksenden, indem er eine separate HTTPS-POST-Anforderung an Bot Framework für jede Nachricht ausstellt, die er sendet.

Was ist der Unterschied zwischen „proaktiv“ und „reaktiv“?

Aus Botperspektive bedeutet „reaktiv“, dass der Benutzer die Konversation einleitet, indem er eine Nachricht an den Bot sendet, und der Bot reagiert, indem er auf diese Nachricht antwortet. Im Gegensatz dazu bedeutet „proaktiv“, dass der Bot die Konversation einleitet, indem er die erste Nachricht an den Benutzer sendet. Ein Bot kann beispielsweise eine proaktive Nachricht senden, um einen Benutzer zu benachrichtigen, wenn ein Timer abläuft oder ein Ereignis auftritt.

Wie kann ich proaktive Nachrichten an den Benutzer senden?

Beispiele für das Senden proaktiver Nachrichten finden Sie unter den C# V4-Beispielen und Node.js V4-Beispielen im Repository „BotBuilder-Samples“ auf GitHub.

Was ist ein ETag? In welcher Beziehung steht es zur Speicherung in Botdatenbehältern?

Ein ETag ist ein Mechanismus zur Steuerung für optimistische Parallelität. Bei der Speicherung in Botdatenbehältern werden ETags verwendet, um Aktualisierungskonflikte bei Daten zu verhindern. Ein ETag-Fehler mit dem HTTP-Statuscode 412 (Fehler bei der Vorbedingung) deutet darauf hin, dass mehrere Nachrichten parallel empfangen wurden, bevor der Bot den ersten Vorgang abschließen konnte. Der Dialogstapel und -zustand werden in Botdatenbehältern gespeichert. Möglicherweise wird die ETag-Fehlermeldung „Fehler bei der Vorbedingung“ "angezeigt, wenn Ihr Bot noch immer eine vorherige Nachricht verarbeitet, während er eine neue Nachricht für diese Konversation empfängt.

Was bedeutet Ratenbegrenzung?

Der Bot Framework-Dienst muss sich selbst und seine Kunden gegen verdächtige Anrufmuster (z.B. Denial-of-Service-Angriffe) schützen, damit sich kein Bot negativ auf die Leistung anderer Bots auswirken kann. Für diese Art des Schutzes haben wir Ratenbegrenzungen (Drosselung) für unsere Endpunkte hinzugefügt. Durch die Erzwingung einer Ratenbegrenzung können wir die Häufigkeit einschränken, mit der ein Client oder Bot einen bestimmten Aufruf verwenden kann. Beispiel: Wenn bei aktivierter Ratenbegrenzung ein Bot eine große Anzahl von Aktivitäten veröffentlichen möchte, muss er diese über einen längeren Zeitraum aufteilen. Der Zweck der Ratenbegrenzung nicht der Beschränkung des Gesamtvolumens für einen Bot dient. Sie dient dazu, den Missbrauch der Konversationsinfrastruktur durch nicht den Konversationsmustern menschlicher Unterhaltungen folgende Konversationen zu verhindern. Ein Beispiel wären etwa zwei Konversationen, die mit mehr Inhalt geflutet werden als zwei Menschen jemals nutzen können.

Welche Ratenbegrenzungen gelten?

Wir optimieren kontinuierlich die Ratenbegrenzungen, um sie so flexibel wie möglich zu machen und gleichzeitig unseren Dienst und unsere Benutzer zu schützen. Da sich die Schwellenwerte gelegentlich ändern, veröffentlichen wir die Zahlen zu diesem Zeitpunkt nicht. Wenn Sie Ihren Bot in einem App-Dienst hosten, ist der Bot an die Einschränkungen des App-Diensts gebunden. Weitere Informationen finden Sie in der SLA-Zusammenfassung für Azure-Dienste. Wenn Sie sich auf die Ratenbegrenzung auswirken, wenden Sie sich an uns unter bf-reports@microsoft.com.

Was ist die Größenbeschränkung einer Datei, die über Kanäle übertragen wird?

Einige Kanäle haben Beschränkungen für die Größe oder den Typ von Dateien, die gesendet werden können. So beschränken z. B. sowohl Direct Line als auch Facebook Aktivitätsnutzlasten auf 262.144 Bytes, während der Bot Framework-Emulator keine Beschränkung hat. Solche Grenzwerte werden vom Kanal auferlegt. Wenn Sie eine Nachricht senden, die diesen Grenzwert überschreitet, erhalten Sie möglicherweise eine Fehlermeldung, z. B.: Die Anforderungsinhaltslänge hat den Grenzwert von 262.144 Byte überschritten. Sie können jedoch einen Link zur Ressource als Online-Anlage bereitstellen. Weitere Informationen zum Senden von Anlagen finden Sie unter Hinzufügen von Medien zu Nachrichten.

Wie erkenne ich, ob ich von Ratenbegrenzung betroffen bin?

Es ist unwahrscheinlich, dass Sie eine Ratenbegrenzung bemerken – selbst bei hohem Volumen. Die meisten Ratenbegrenzungen treten nur aufgrund von Massensendungen von Aktivitäten (von einem Bot oder einem Client), extremen Auslastungstests oder Fehlern auf. Wenn eine Anforderung gedrosselt wird, wird eine HTTP 429-Antwort (zu viele Anforderungen) zurückgegeben, zusammen mit einem Retry-After-Header, der die Zeitspanne (in Sekunden) angibt, die bis zu einem Wiederholungsversuch der Anforderung gewartet werden muss. Sie können diese Informationen sammeln, indem Sie mit Azure Application Insights Analysen für Ihren Bot aktivieren. Sie können Ihrem Bot auch Code zum Protokollieren von Meldungen hinzufügen.

Wie erfolgen Ratenbegrenzungen?

Die Zinsbegrenzung wird durch eine der folgenden Bedingungen verursacht:

  • Ein Bot sendet zu häufig Nachrichten.
  • Der Client eines Bots sendet zu häufig Nachrichten.
  • Direct Line-Clients fordern zu häufig einen neuen Websocket an.

Wie kann man eine menschliche Übergabe implementieren?

Manchmal ist es notwendig, eine Unterhaltung von einem Bot zu einem Menschen zu übergeben, z. B. wenn der Bot den Benutzer nicht versteht oder die Anforderung nicht automatisiert werden kann. In diesen Fällen bietet der Bot eine Übergabe zum Menschen an. Das Bot Framework SDK unterstützt die Übergabe an einen Menschen. Es gibt ein paar Ereignistypen, um Übergabevorgänge zu signalisieren. Diese Ereignisse werden zwischen einem Bot und einem Agent-Hub ausgetauscht, auch als Engagement-Hub bezeichnet. Dieser Agent-Hub wird als Anwendung oder System definiert, das es Agenten, in der Regel Menschen, ermöglicht, Anfragen von Benutzern und Eskalationsanforderungen von Bots zu empfangen und zu verarbeiten. Detaillierte Informationen finden Sie unter Übergeben von Konversationen von einem Bot an einen Menschen.