In diesem Leitfaden finden Sie Best Practices für die Verwendung des Dialogflow-Dienstes. Diese Richtlinien sind auf mehr Effizienz und Genauigkeit sowie optimale Antwortzeiten des Service ausgelegt.
Außerdem sollten Sie sich den Leitfaden zum allgemeinen Agent-Design für alle Agent-Typen und den Leitfaden zum Voice-Agent-Design speziell für das Design von Voice-Agents ansehen.
Produktion
Bevor Sie den Agent in der Produktion ausführen, sollten Sie die folgenden Best Practices implementieren:
- Agent-Versionen verwenden
- Sitzungsclients wiederverwenden
- Fehlerbehandlung mit Wiederholungsversuchen implementieren
Audit-Logs aktivieren
Aktivieren Sie in Ihrem Projekt Audit-Logs zum Datenzugriff für die Dialogflow API. So können Sie Änderungen bei der Entwicklung in den Dialogflow-Agents verfolgen, die mit diesem Projekt verknüpft sind.
Agent-Versionen
Sie sollten daher immer Agent-Versionen für Ihren Produktions-Traffic verwenden. Weitere Informationen finden Sie unter Versionen und Umgebungen.
Agent-Sicherung erstellen
Sorgen Sie für ein aktuelles exportiertes Agent-Back-up. So können Sie den Agenten oder das Projekt schnell wiederherstellen, falls Sie oder Ihre Teammitglieder sie versehentlich löschen.
Wiederverwendung von Clients
Sie können die Leistung Ihrer Anwendung verbessern, indem Sie *Client-Clientbibliotheksinstanzen während der gesamten Ausführungsdauer Ihrer Anwendung wiederverwenden.
Vor allem können Sie die Leistung der Intent-Erkennung bei API-Aufrufen verbessern, wenn Sie eine SessionsClient-Clientbibliotheks-Instanz wiederverwenden.
Weitere Informationen hierzu finden Sie im Leitfaden zu 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 Drosselung 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,patchoderdeletezu senden, verwenden Sie die MethodenbatchUpdateoderbatchDelete. - Statt viele Anfragen für die Intents
create,patchoderdeletezu senden, verwenden Sie die MethodenbatchUpdateoderbatchDelete.
Wiederholungen nach API-Fehlern
Beim Aufrufen von API-Methoden können Fehlerantworten zurückgegeben werden. Es gibt einige Fehler, bei denen Sie Wiederholungsversuche vornehmen sollten, da diese Fehler häufig auf vorübergehende Probleme zurückzuführen sind. Es gibt zwei Arten von Fehlern:
- Cloud API-Fehler.
- Fehler, die von Ihrem Webhook-Dienst gesendet wurden.
Darüber hinaus sollten Sie einen exponentiellen Backoff für Wiederholungsversuche implementieren. So kann Ihr System eine akzeptable Rate finden, während der API-Dienst stark ausgelastet ist.
Cloud API-Fehler
Wenn Sie eine von Google bereitgestellte Clientbibliothek verwenden, werden Wiederholungen nach Cloud API-Fehlern mit exponentiellem Backoff für Sie implementiert.
Wenn Sie Ihre eigene Clientbibliothek mit REST oder gRPC implementiert haben, müssen Sie Wiederholungsversuche für Ihren Client implementieren. Informationen zu den Fehlern, nach denen Sie eine Wiederholung durchführen sollten oder nicht, finden Sie unter API-Verbesserungsvorschläge: Automatische Wiederholungskonfiguration.
Webhook-Fehler
Wenn Ihr API-Aufruf einen Webhook-Aufruf auslöst, gibt Ihr Webhook möglicherweise einen Fehler zurück.
Selbst wenn Sie eine von Google bereitgestellte Clientbibliothek verwenden, erfolgt bei Webhook-Fehlern keine automatische Wiederholung.
Ihr Code sollte bei 503 Service Unavailable-Fehlern, die Ihr Webhook erhalten hat, noch einmal eine Anforderung schicken.
In der Dokumentation zum Webhook-Dienst finden Sie Informationen zu den verschiedenen Webhook-Fehlern und dazu, wie Sie nach ihnen suchen können.
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 den Dialogflow-Dienst angewendet wird. Der Dienst ist nicht für die Verarbeitung von Last-Bursts ausgelegt, die bei echtem Traffic selten auftreten. Es dauert eine Weile, bis sich der Dienst 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. |
Dialogflow sicher von einem Endnutzergerät aus aufrufen
Speichern Sie Ihre privaten Schlüssel nie für den Zugriff auf die Dialogflow API auf einem Endnutzergerät. Dies gilt für die direkte Speicherung von Schlüsseln auf dem Gerät und für die harte Codierung von Schlüsseln in Anwendungen. Wenn Ihre Clientanwendung die Dialogflow API aufrufen muss, sollte sie Anfragen an einen entwicklereigenen Proxydienst auf einer sicheren Plattform senden. Der Proxydienst kann die tatsächlichen, authentifizierten Dialogflow-Aufrufe ausführen.
Beispielsweise sollten Sie keine mobile Anwendung erstellen, die Dialogflow direkt aufruft. Dazu müssten Sie private Schlüssel auf einem Endnutzergerät speichern. Ihre mobile Anwendung sollte stattdessen Anfragen über einen sicheren Proxydienst weiterleiten.
Leistung
In diesem Abschnitt finden Sie Informationen zur Leistung verschiedener Vorgänge in Dialogflow. Die Latenz ist wichtig, um reaktionsschnelle Agents zu entwickeln und realistische Leistungserwartungen festzulegen. Diese Werte sind jedoch nicht Teil des Dialogflow-SLA.
Beachten Sie beim Erstellen von Tools für die Überwachung und Benachrichtigung, dass Large Language Models (LLMs) und die Sprachverarbeitung in der Regel mit Streaming-Methoden verarbeitet werden. Antworten werden so schnell wie möglich an den Client gesendet, oft viel früher als die Gesamtdauer des Methodenaufrufs. Weitere Informationen finden Sie unter Best Practices für Large Language Models (LLMs).
Leistung pro Vorgang
Die folgende Tabelle enthält Informationen zur typischen Leistung von Dialogflow-Vorgängen:
| Aktion | Hinweise |
|---|---|
| Intenterkennung (Text) | Schnelle Bedienung |
| Parametererkennung (Text) | Schnelle Bedienung |
| Spracherkennung (Streaming) | Daten werden verarbeitet und Antworten werden so schnell wie möglich zurückgegeben. Die Gesamtausführungszeit wird hauptsächlich durch die Länge des Audio-Inputs bestimmt. Es wird nicht empfohlen, die Latenz anhand der gesamten Ausführungszeit zu messen. |
| Sprachsynthese (Streaming) | Die Gesamtausführungszeit wird hauptsächlich durch die Länge des Ausgabesignals bestimmt. Die Daten werden verarbeitet und die Antworten so schnell wie möglich zurückgegeben. |
| Webhook-Aufrufe | Die Leistung hängt direkt von der Ausführungszeit Ihres Codes im Webhook ab. |
| KI-Agenten importieren / exportieren | Die Leistung hängt von der Größe des Agents ab. |
| Schulung für Kundenservicemitarbeiter | Die Leistung hängt von der Anzahl der Abläufe, Intents und Trainingsformulierungen ab. Das Trainieren großer Agents kann mehrere Minuten dauern. |
| Umgebungserstellung | Das Erstellen einer Umgebung umfasst das Trainieren des KI-Agents. Die Gesamtzeit hängt daher von der Größe und Komplexität des KI-Agents ab. |
Wichtige Hinweise:
- Streaming:Bei Streaminganrufen (Spracherkennung und ‑synthese) werden Daten verarbeitet, sobald sie eingehen, und Antworten werden so schnell wie möglich zurückgegeben. Die erste Antwort erfolgt also in der Regel viel schneller als die Gesamtdauer des Anrufs.
- Playbooks:Ein LLM-Prompt wird basierend auf den Playbook-Anweisungen, dem Unterhaltungskontext und der Tool-Eingabe erstellt. In einem einzelnen Playbook-Aufruf können mehrere LLM-Prompts ausgeführt werden. Die Playbook-Ausführung ist daher variabel und hängt von der Anzahl der ausgegebenen Prompts und der Komplexität der Aufrufe ab.
Wichtige Hinweise zur Latenz
- Keine Latenzgarantien:Dialogflow-SLAs berücksichtigen keine Latenz, auch nicht bei bereitgestelltem Durchsatz.
- LLM-Latenz:Die Verarbeitung durch LLMs kann zu erheblichen Latenzen führen. Berücksichtigen Sie dies bei der Gestaltung Ihres Agents und bei den Erwartungen der Nutzer.
- Monitoring und Benachrichtigungen:Berücksichtigen Sie beim Einrichten von Monitoring und Benachrichtigungen, dass Antworten von LLMs und Sprachdiensten gestreamt werden. Gehen Sie nicht davon aus, dass die vollständige Reaktionszeit der Zeit bis zur ersten Antwort entspricht.