Client-zu-Server-Ereignisse

Senden Sie kontextbezogene Informationen vom Client, um Anwendungen für Unterhaltungen in Echtzeit zu verbessern.

Client-zu-Server-Ereignisse sind Nachrichten, die Ihre Anwendung proaktiv an den Server sendet, um während Unterhaltungen zusätzlichen Kontext bereitzustellen. Mit diesen Ereignissen können Sie die Unterhaltung um relevante Informationen ergänzen, ohne den Gesprächsfluss zu unterbrechen.

Informationen zu Ereignissen, die der Server an den Client sendet, finden Sie in der Dokumentation zu Client- Ereignissen.

Überblick

Ihre Anwendung kann dem Server jederzeit während der Unterhaltung Kontextinformationen senden, um die Qualität und Relevanz der Unterhaltung zu verbessern. Dies muss keine Antwort auf ein vom Server empfangenes Client-Ereignis sein. Das ist besonders nützlich, um UI-Zustände, Benutzeraktionen oder andere Umgebungsdaten zu teilen, die möglicherweise nicht direkt über Sprache kommuniziert werden.

Unsere SDKs bieten Hilfsmethoden zum Senden dieser Ereignisse. Das Verständnis des zugrunde liegenden Protokolls ist jedoch für benutzerdefinierte Implementierungen und fortgeschrittene Anwendungsfälle wertvoll.

Ereignistypen

Kontextbezogene Aktualisierungen

Kontextbezogene Aktualisierungen ermöglichen Ihrer Anwendung, nicht unterbrechende Hintergrundinformationen an die Unterhaltung zu senden.

Wichtige Merkmale:

  • Aktualisierungen werden als Hintergrundinformationen in die Unterhaltung einbezogen.
  • Der aktuelle Gesprächsfluss wird nicht unterbrochen.
  • Nützlich zum Senden von UI-Zuständen, Benutzeraktionen oder Umgebungsdaten.
// Contextual update event structure
{
"type": "contextual_update",
"text": "User appears to be looking at pricing page"
}
// Example sending contextual updates
function sendContextUpdate(information) {
websocket.send(
JSON.stringify({
type: "contextual_update",
text: information,
})
);
}
// Usage examples
sendContextUpdate("Customer status: Premium tier");
sendContextUpdate("User navigated to Help section");
sendContextUpdate("Shopping cart contains 3 items");

Benutzernachrichten

Mit Benutzernachrichten können Sie Text direkt an die Unterhaltung senden, als hätte der Benutzer ihn gesprochen. Das ist nützlich für textbasierte Interaktionen oder wenn Sie bestimmten Text in den Gesprächsfluss einfügen möchten.

Wichtige Merkmale:

  • Text wird als Benutzereingabe für die Unterhaltung verarbeitet.
  • Löst denselben Antwortablauf aus wie gesprochene Benutzereingaben.
  • Nützlich für textbasierte Oberflächen oder programmatische Benutzereingaben.
// User message event structure
{
"type": "user_message",
"text": "I would like to upgrade my account"
}
// Example sending user messages
function sendUserMessage(text) {
websocket.send(
JSON.stringify({
type: "user_message",
text: text,
})
);
}
// Usage examples
sendUserMessage("I need help with billing");
sendUserMessage("What are your pricing options?");
sendUserMessage("Cancel my subscription");

Benutzeraktivität

Ereignisse zur Benutzeraktivität dienen als Indikatoren, um Unterbrechungen durch den Agenten zu verhindern.

Wichtige Merkmale:

  • Setzt den Timer für das Ablaufzeitlimit eines Gesprächszugs zurück.
  • Beeinflusst weder Inhalt noch Ablauf der Unterhaltung.
  • Nützlich, um lang laufende Unterhaltungen während Phasen der Stille aufrechtzuerhalten.
// User activity event structure
{
"type": "user_activity"
}
// Example sending user activity
function sendUserActivity() {
websocket.send(
JSON.stringify({
type: "user_activity",
})
);
}
// Usage example - send activity ping every 30 seconds
setInterval(sendUserActivity, 30000);

Best Practices

  1. Kontextbezogene Aktualisierungen

    • Senden Sie relevante, aber prägnante Kontextinformationen.
    • Überlasten Sie das LLM nicht mit zu vielen Aktualisierungen.
    • Konzentrieren Sie sich auf Informationen, die den Gesprächsfluss beeinflussen oder wichtigen Kontext aus Aktivitäten in einer UI liefern, auf die der Sprachagent nicht zugreifen kann.
  2. Benutzernachrichten

    • Verwenden Sie sie für textbasierte Benutzereingaben, wenn Audio nicht verfügbar oder nicht geeignet ist.
    • Stellen Sie sicher, dass der Text klar und gut formatiert ist.
    • Berücksichtigen Sie beim Einfügen programmatischer Nachrichten den Gesprächskontext.
  3. Benutzeraktivität

    • Senden Sie während Benutzerinteraktionen Aktivitäts-Pings, um die Sitzung aufrechtzuerhalten.
    • Verwenden Sie angemessene Intervalle (z. B. 30–60 Sekunden), um unnötigen Netzwerkverkehr zu vermeiden.
    • Implementieren Sie eine Aktivitätserkennung auf Basis tatsächlicher Benutzerinteraktionen (Mausbewegungen, Eingaben usw.).
  4. Überlegungen zum Timing

    • Senden Sie Aktualisierungen zu geeigneten Zeitpunkten.
    • Erwägen Sie, mehrere kontextbezogene Aktualisierungen in einer einzelnen Aktualisierung zusammenzufassen, statt jede kleine Änderung einzeln zu senden.
    • Finden Sie die Balance zwischen dem Aufrechterhalten der Sitzung und dem Vermeiden übermäßiger Nachrichten.

Detaillierte Implementierungsbeispiele finden Sie in unserer SDK- Dokumentation.