Agent Assist-Sprachintegration mit Five9

Diese Sprachintegration verwendet einen Five9 Classic Connector und Five9 MediaStream (ehemals Voicestream), um Ihren Agenten in Five9 Agent Desktop Plus Vorschläge von Agent Assist zu präsentieren.

Architektur für die Agent Assist-Integration in Five9

Hinweis

Wenn Sie Agent Assist-UI-Module in Five9 einbinden möchten, benötigen Sie Zugriff auf die folgenden Ressourcen.

Erforderliche Systemabhängigkeiten

  • Google Cloud CLI
    • Installieren Sie die Google Cloud CLI gemäß Anleitung.
    • Authentifizieren Sie sich mit gcloud auth login.
  • Bereitstellung des Agent Assist-Integrations-Back-Ends
    • Folgen Sie der Anleitung um die Integration einzurichten.
    • Konfigurieren Sie zusätzlich zur normalen Einrichtung und vor dem Ausführen des Bereitstellungsskripts die folgenden Umgebungsvariablen in aa-integration-backend/.env:
      • AUTH_OPTION: Setzen Sie diese Variable auf Five9.
      • FIVE9_TRUST_TOKEN: Generieren Sie dieses Token mit dem folgenden Befehl:
        • cd platforms/five9
        • cp .env.sample .env
        • make generate-trust-token
  • Agent Assist-Unterhaltungsprofil: Weitere Informationen finden Sie unter Unterhaltungsprofil erstellen.
  • Five9-Administratorzugriff: Dieser Zugriff ist erforderlich, um das MediaStream-Abo und den Classic Connector zu konfigurieren.
  • Make: Wird zum Ausführen von Bereitstellungsskripts verwendet.

Optionale Systemabhängigkeiten

Übersicht über die Integrationsarchitektur

Die Lösung verwendet eine Architektur mit aufgeteilten Diensten, um die unterschiedlichen Anforderungen des Five9-Protokolls zu erfüllen: bidirektionales Audio-Streaming in Echtzeit (gRPC) und asynchrone Ereignisverarbeitung (HTTP). Diese beiden Cloud Run-Dienste verbinden Five9 MediaStream mit Google Cloud Agent Assist und ermöglichen so die Echtzeit-Transkription und generative KI-Vorschläge:

  • mediastream-grpc-service: Verarbeitet den bidirektionalen gRPC-Audiostream von Five9 MediaStream.
  • mediastream-http-service: Präsentiert Agent Assist-UI-Module und verarbeitet CTI- und MediaStream-Ereignisse.

Allgemeiner Datenfluss

  1. Anrufinitiierung: Five9 löst ein CTI-Ereignis für den HTTP-Dienst aus, wodurch die Sitzung gestartet wird.
  2. Audiostreaming: Five9 öffnet eine sichere gRPC-Verbindung zum gRPC-Dienst für den Audioaustausch in Echtzeit.
  3. Verarbeitung: Der gRPC-Dienst leitet Audio an Google Cloud Agent Assist weiter.
  4. Vorschläge: Agent Assist gibt Transkriptions- und Agent-Coaching-Vorschläge über Pub/Sub zurück, die über eine Socket.IO-Verbindung (WebSockets) mit dem Cloud Run-Dienst für den UI-Connector an die UI-Module von Agent Assist weitergeleitet werden. Diese Vorschläge werden während Anrufen in einem Five9 Classic Connector-iFrame in Five9 Agent Desktop Plus gerendert.

gRPC-Dienst (mediastream-grpc)

  • Rolle: Verarbeitet bidirektionales Audio-Streaming in Echtzeit mit hoher Leistung.
  • Implementierung: Python-gRPC-Server mit grpcio.
  • Nebenläufigkeit: Verwendet grpc.aio (AsyncIO) für nicht blockierende E/A-Vorgänge mit hoher Leistung.
  • Protokoll: Definiert den Dienstvertrag mit mediastream-grpc/proto/voice.proto.
  • Kernmodul: VoiceServicer Implementierung in services/get_suggestions.py orchestriert die Audiostreamverarbeitung und die Agent Assist API-Aufrufe.

HTTP-Dienst (mediastream-http)

  • Rolle: Verarbeitet Ereignisse der Steuerungsebene, die Tokenvalidierung und die Bereitstellung statischer UI-Assets.
  • Implementierung: Flask-Webserver.
  • Endpunkte:
    • GET /: Ein Systemdiagnoseendpunkt für den Server.
    • GET /agent-assist-ui-modules: Stellt die Agent Assist-UI-Module für den Five9 Classic Connector bereit.
    • GET /cti-call-event-destination/: Validiert das FIVE9_TRUST_TOKEN (gibt den SHA256-Hash zurück).
    • POST /cti-call-event-destination/: Empfängt CTI-Ereignisse und Metadaten für Anrufe.
    • POST /mediastream-event-destination/subscriptions/<id>: Empfängt asynchrone Fehler oder Statusaktualisierungen aus dem MediaStream.

Sicherheit

  • Trust-Token: Die Integration implementiert ein Sicherheitsmodell mit gemeinsamem Secret. Ein FIVE9_TRUST_TOKEN wird sowohl in Five9 als auch im Cloud Run-Dienst generiert und konfiguriert. Der HTTP-Dienst bietet einen Validierungsendpunkt (GET /cti-call-event-destination/), der den SHA256-Hash des konfigurierten Tokens zur Überprüfung zurückgibt.
  • Dieses Trust-Token wird auch als gemeinsames Secret für die Authentifizierung von Anfragen vom MediaStream-HTTP-Dienst an den UI-Connector verwendet.

Bereitstellungsanleitung

In den folgenden Abschnitten wird beschrieben, wie Sie diese Agent Assist-Five9-Integration bereitstellen und in Five9 Agent Desktop Plus testen.

Umgebungsvariablen konfigurieren

  1. Führen Sie zuerst cd aa-integration-backend/platforms/five9 aus, um das Verzeichnis zu ändern.
  2. Prüfen Sie, ob Sie eine .env-Datei haben, die Sie aus .env.sample im Abschnitt Erforderliche Systemabhängigkeiten kopiert haben. Die letzte Zeile sollte das FIVE9_TRUST_TOKEN enthalten, das Sie zu diesem Zeitpunkt generiert haben.

  3. Umgebungsvariablen: Füllen Sie Ihre .env Datei mit den folgenden Details aus.

    Variable Beschreibung
    PROJECT_ID Ihre Google Cloud Projekt-ID
    REGION Die Region, in der Ihre Cloud Run-Dienste bereitgestellt werden.
    CONVERSATION_PROFILE_NAME Die Ressourcen-ID des Agent Assist-Unterhaltungsprofils.
    FEATURES Die Funktionen, die für Agent Assist aktiviert werden sollen. Weitere Informationen finden Sie in der Dokumentation zu den Eigenschaften von UI-Modulcontainern V2.
    FIVE9_API_KEY Setzen Sie diese Variable auf Ihren Five9-API-Schlüssel, den Sie beim Einrichten des MediaStream-Abos erhalten haben.
    FIVE9_TRUST_TOKEN Das gemeinsame Secret, das Sie unter Hinweis generiert haben und mit dem sich der mediastream-http-service beim Cloud Run-Dienst ui-connector authentifizieren kann.

In Google Cloud Run bereitstellen

Stellen Sie sowohl den gRPC- als auch den HTTP-Dienst mit der bereitgestellten Automatisierung in Cloud Run bereit:

make deploy

Mit diesem Skript wird Folgendes ausgeführt:

  1. Container-Images erstellen.
  2. Container-Images per Push in Google Container Registry (GCR) oder Artifact Registry übertragen.
  3. Zwei Cloud Run-Dienste bereitstellen: einen für gRPC (Sprache) und einen für HTTP (Ereignisse).
  4. Nach Abschluss die Dienst-URLs ausgeben.

Five9-Konfiguration

Konfigurieren Sie nach der Bereitstellung Five9 so, dass Streams an Ihren Dienst gesendet werden. Eine detaillierte Anleitung finden Sie im technischen Leitfaden zu Five9 MediaStream.

Erste Five9-Konfiguration

Führen Sie die folgenden Schritte aus, um die Five9-Admin-Konsole für die Agent Assist-Integration zu konfigurieren.

  1. Erstellen Sie eine neue Fähigkeit, z. B. Agent Assist-Integration.
  2. Weisen Sie der Fähigkeit Nutzer zu.
  3. Konfigurieren Sie einen Five9 Classic Connector für Ihre Kampagne und betten Sie die MediaStream Cloud Run-Dienst-URL ein, die Sie in einem vorherigen Schritt bereitgestellt haben:
    • URL: {mediastream-http-service-url}/agent-assist-ui-modules/
    • Methode: GET
    • Parameter: call_id
    • Ausführungsmodus: In Browser
      • Agent-Anwendung: Use embedded tab for Web Agent
      • CTI-Webdienste: Current browser window
    • Trigger (Nächster Tab): On Call Accepted
  4. Erstellen Sie ein IVR-Skript, um das Verhalten beim Empfangen von Anrufen über Ihre Five9-DNIS-Nummer zu definieren.
  5. Erstellen Sie eine eingehende Kampagne.
  6. Verknüpfen Sie das IVR-Skript mit der Kampagne.
  7. Optional können Sie eine ausgehende Kampagne erstellen, um Agent Assist für ausgehende Anrufe zu aktivieren. Dazu müssen Sie Folgendes tun:
    • Verknüpfen Sie eine Fähigkeit mit der ausgehenden Kampagne.
    • Erstellen Sie eine Kopie des Classic Connector und verknüpfen Sie sie mit der ausgehenden Kampagne. Ändern Sie den Trigger der Kopie des Classic Connector in On Contact Selected.
    • Starten Sie die Kampagne. Wenn Sie die Kampagne testen möchten, führen Sie in Agent Desktop Plus einen ausgehenden Anruf aus und wählen Sie die ausgehende Kampagne aus dem Drop-down-Menü aus.

Beispielkonfiguration für den klassischen Connector zur Unterstützung von UI-Modulen in Agent Desktop Plus

MediaStream-Abo erstellen

  1. Aboname: Agent Assist-Integration Media Stream
  2. Streamingtyp: Voice-Streaming
    • Streamingziel: Other (Self-Service)
    • Streamingprotokoll: gRPC
    • Primäres Streamingziel:
      • <five9-mediastream-grpc-deployment-url-without-protocol>:443
      • Beispiel: five9-mediastream-grpc-123412341234.us-central1.run.app:443
    • Ziel für CTI-Anrufereignisse:
      • https://<five9-mediastream-http-deployment-url>/cti-call-event-destination/
      • Beispiel: https://five9-mediastream-http-123412341234-uc.a.run.app/cti-call-event-destination/
    • Ziel für MediaStream-Ereignisse:
      • https://<five9-mediastream-http-deployment-url>/mediastream-event-destination/
      • Beispiel: https://five9-mediastream-http-123412341234-uc.a.run.app/mediastream-event-destination/
    • Trust-Token: Das FIVE9_TRUST_TOKEN, das Sie in einem vorherigen Schritt generiert haben.
    • API-Schlüssel: Dieses Feld wird nach dem Speichern Ihres MediaStream-Abos generiert. Kopieren Sie den erhaltenen FIVE9_API_KEY in platforms/five9/.env. Sie benötigen ihn im nächsten Schritt.
    • Streamingfilter:
      • Benutzerdefinierter Filter: Aktiviert
      • Filtertyp: Kampagnen
      • Nach hinzugefügten Kampagnen suchen: Suchen Sie nach Ihrer Kampagne und fügen Sie sie hinzu.

Nochmal in Google Cloud Run bereitstellen

  • Wichtig: Nachdem Sie Ihr MediaStream-Abo erstellt haben, müssen Sie den erhaltenen FIVE9_API_KEY zu Ihrer Datei platforms/five9/.env hinzufügen und dann mit make deploy noch einmal bereitstellen.

Deployment prüfen

Prüfen Sie, ob die bereitgestellten Dienste in Cloud Run erreichbar sind:

make test-http-reachable
make test-grpc-reachable

Simulieren Sie einen Anruf, indem Sie eine WAV-Datei an den mediastream-grpc-service streamen:

make test-grpc-stream

Jetzt können Sie die Agent Assist-Transkription und -Vorschläge testen, während Sie Anrufe in Five9 Agent Desktop Plus entgegennehmen.

Beispiel für einen erfolgreichen End-to-End-Test der Agent Assist-Integration

Lokale Tests (optional)

Zur Fehlerbehebung oder zum Testen ohne Bereitstellung können Sie die Dienste lokal mit Docker/Podman ausführen. Beenden Sie Container, erstellen Sie sie und führen Sie sie lokal mit Podman Compose aus.

make all

Alle Tests (Systemdiagnose, Einheitentests) außer Stream ausführen

make test

Anruf simulieren, indem eine WAV-Datei gestreamt wird

make test-grpc-stream LOCAL=true