Best Practices

Dieses Dokument enthält Best Practices für die Verwendung von Dialogflow. Diese Richtlinien sind auf mehr Effizienz und Genauigkeit sowie optimale Antwortzeiten des Dienstes ausgelegt.

Abschnitt Fazit
Agent-Design Verbessern Sie die Qualität und Leistung des Agents.
Wiederverwendung des Sitzungsclients Verbessern Sie die Leistung der Intent-Erkennung bei API-Aufrufen.
Batch-Updates für den Agent Bevorzugen Sie Batch-Agent-Updates anstelle von vielen einzelnen Updates.
Wiederholungen nach API-Fehlern Zeitpunkt, an dem API-Aufrufe wiederholt werden sollen
Lasttests Tipps für Lasttests des Agents

Agent-Design

Das Design des Agents kann sich stark auf dessen Qualität und Leistung auswirken. Im Leitfaden zum Agent-Design finden Sie Best Practices für das Design des Agents.

Wiederverwendung des Sitzungsclients

Sie können die Leistung der Intent-Erkennung bei API-Aufrufen Ihrer Anwendung verbessern, wenn Sie die Sitzungsclient-Instanz einer Clientbibliothek für mehrere Anfragen wiederverwenden.

Weitere Informationen hierzu finden Sie auf der Seite Best Practices für Clientbibliotheken.

Batch-Updates für den Agent

Wenn Sie viele einzelne API-Anfragen zur Aktualisierung des Agents über einen kurzen Zeitraum senden, kann es bei Ihren Anfragen zu einer Zeitüberschreitung kommen. Diese API-Methoden für die Entwicklung wurden nicht implementiert, um hohe Aktualisierungsraten für einen einzelnen Agent zu verarbeiten.

Einige Datentypen verfügen über Batchmethoden für diesen Zweck:

  • Statt viele Anfragen für die EntityTypes create, patch oder delete zu senden, verwenden Sie die Methoden batchUpdate oder batchDelete.
  • Statt viele Anfragen für die Intents create, patch oder delete zu senden, verwenden Sie die Methoden batchUpdate oder batchDelete.

Wiederholungen nach API-Fehlern

Beim Aufrufen von API-Methoden können Fehler auftreten. Diese Fehler werden in der Fehlerdokumentation für Cloud APIs beschrieben.

Wenn Sie eine von Google bereitgestellte Clientbibliothek verwenden, werden Wiederholungsversuche für Sie implementiert. Wenn Sie Ihre eigene Clientbibliothek mit REST oder gRPC implementiert haben, müssen Sie Wiederholungsversuche für Ihren Client implementieren.

Einige Fehler weisen auf ein Problem mit der Anfrage hin. Sie sollten die Anfrage in diesen Fällen nicht wiederholen. Zum Beispiel sollte INVALID_ARGUMENT (HTTP-Zuordnung: 400 Bad Request) nicht wiederholt werden. Dieser Fehler wird normalerweise durch einen Systemfehler verursacht.

Es gibt einige Fehler, bei denen Sie Wiederholungsversuche vornehmen sollten, da diese Fehler häufig auf vorübergehende Probleme zurückzuführen sind. Wiederholen Sie Anfragen für die folgenden Fehler:

Fehlercode HTTP-Zuordnung
DEADLINE_EXCEEDED 504 Gateway Timeout
UNAVAILABLE 503 Service Unavailable

Wenn Sie Anfragen wiederholen, sollten Sie auch einen exponentiellen Backoff implementieren. So kann Ihr System eine akzeptable Rate finden, während der API-Dienst stark ausgelastet ist.

Lasttests

Es empfiehlt sich, Lasttests für Ihr System auszuführen, bevor Sie den Code für die Produktion freigeben. Berücksichtigen Sie die folgenden Punkte, bevor Sie Ihre Lasttests implementieren:

Fazit Details
Erhöhen Sie die Last. Der Lasttest muss die Last erhöhen, die auf die API angewendet wird. Die API ist nicht für die Verarbeitung von Last-Bursts ausgelegt, die bei echtem Traffic selten auftreten. Es dauert eine Weile, bis sich die API an die Lastanforderungen angepasst hat. Erhöhen Sie daher die Anfragerate langsam, bis der Test die gewünschte Last erreicht.
Für API-Aufrufe werden Gebühren fällig. Während eines Tests werden Ihnen API-Aufrufe in Rechnung gestellt und die Aufrufe werden durch das Projektkontingent begrenzt.
Verwenden Sie Test-Doubles. Während des Lasttests müssen Sie die API möglicherweise nicht aufrufen. Wenn Sie mit dem Lasttest ermitteln möchten, wie Ihr System mit der Last umgeht, ist es oft besser, ein Test-Double anstelle von tatsächlichen API-Aufrufen zu verwenden. Ihr Test-Double kann das Verhalten der API unter Last simulieren.
Führen Sie Wiederholungsversuche durch. Ihr Lasttest muss Wiederholungsversuche mit einem Backoff ausführen.