Integrazione vocale di Agent Assist con Five9

Questa integrazione vocale utilizza un connettore Five9 Classic e Five9 MediaStream (precedentemente chiamato Voicestream) per fornire suggerimenti di Assistente agente agli agenti in Five9 Agent Desktop Plus.

Architettura per l'integrazione di Agent Assist Five9

Prima di iniziare

Per integrare i moduli dell'interfaccia utente di Agent Assist con Five9, devi accedere alle seguenti risorse.

Dipendenze di sistema richieste

  • Google Cloud CLI
    • Installa Google Cloud CLI come indicato.
    • Esegui l'autenticazione utilizzando gcloud auth login.
  • Deployment del backend di integrazione di Agent Assist
    • Segui le istruzioni per configurare l'integrazione.
    • Oltre alla normale configurazione e prima di eseguire lo script di deployment, configura le seguenti variabili di ambiente in aa-integration-backend/.env:
      • AUTH_OPTION: imposta questo valore su Five9.
      • FIVE9_TRUST_TOKEN: genera questo valore eseguendo il seguente comando:
        • cd platforms/five9
        • cp .env.sample .env
        • make generate-trust-token
  • Profilo di conversazione di Agent Assist: per informazioni dettagliate, consulta Creare un profilo di conversazione.
  • Accesso amministratore Five9: è necessario per configurare l'abbonamento a Mediastream e Classic Connector.
  • Make: utilizzato per l'esecuzione degli script di deployment.

Dipendenze di sistema facoltative

Panoramica dell'architettura di integrazione

La soluzione utilizza un'architettura di servizio suddiviso per gestire i requisiti distinti del protocollo di Five9: streaming audio bidirezionale in tempo reale (gRPC) e gestione asincrona degli eventi (HTTP). Questi due servizi Cloud Run collegano Five9 MediaStream con Google Cloud Agent Assist, consentendo la trascrizione in tempo reale e i suggerimenti dell'AI generativa:

  • mediastream-grpc-service: gestisce lo stream audio gRPC bidirezionale da Five9 MediaStream.
  • mediastream-http-service: presenta i moduli della UI di Agent Assist e gestisce gli eventi CTI e MediaStream.

Flusso di dati di alto livello

  1. Avvio della chiamata: Five9 attiva un evento CTI per il servizio HTTP, avviando la sessione.
  2. Streaming audio: Five9 apre una connessione gRPC sicura al servizio gRPC per lo scambio audio in tempo reale.
  3. Elaborazione: il servizio gRPC inoltra l'audio ad Google Cloud Agent Assist.
  4. Suggerimenti: Agent Assist restituisce suggerimenti per la trascrizione e il coaching degli agenti tramite Pub/Sub, che vengono inoltrati ai moduli UI tramite una connessione Socket.IO (WebSockets) con il servizio Cloud Run UI Connector. Questi suggerimenti vengono visualizzati in un iframe di Five9 Classic Connector in Five9 Agent Desktop Plus durante le chiamate.

Servizio gRPC (mediastream-grpc)

  • Ruolo: gestisce lo streaming audio bidirezionale in tempo reale ad alte prestazioni.
  • Implementazione: server gRPC Python che utilizza grpcio.
  • Concurrency: utilizza grpc.aio (AsyncIO) per I/O non bloccanti ad alte prestazioni.
  • Protocollo: definisce il contratto di servizio utilizzando mediastream-grpc/proto/voice.proto.
  • Modulo principale: l'implementazione di VoiceServicer in services/get_suggestions.py orchestra la gestione dello stream audio e le chiamate API Agent Assist.

Servizio HTTP (mediastream-http)

  • Ruolo: gestisce gli eventi del control plane, la convalida dei token e la pubblicazione degli asset statici della UI.
  • Implementazione: server web Flask.
  • Endpoint:
    • GET /: un endpoint di controllo di integrità per il server.
    • GET /agent-assist-ui-modules: Fornisce i moduli dell'interfaccia utente di Agent Assist per il connettore classico Five9.
    • GET /cti-call-event-destination/: convalida FIVE9_TRUST_TOKEN (restituisce l'hash SHA256).
    • POST /cti-call-event-destination/: riceve eventi CTI di chiamata e metadati.
    • POST /mediastream-event-destination/subscriptions/<id>: riceve errori asincroni o aggiornamenti di stato dallo stream multimediale.

Sicurezza

  • Token di attendibilità: l'integrazione implementa un modello di sicurezza con segreto condiviso. Viene generato e configurato un FIVE9_TRUST_TOKEN sia in Five9 che nel servizio Cloud Run. Il servizio HTTP fornisce un endpoint di convalida (GET /cti-call-event-destination/) che restituisce l'hash SHA256 del token configurato per la verifica.
  • Questo trust token viene riutilizzato anche come secret condiviso per autenticare le richieste dal servizio HTTP MediaStream al connettore UI.

Guida al deployment

Le sezioni seguenti descrivono come eseguire il deployment di questa integrazione di Agent Assist Five9 e testarla in Five9 Agent Desktop Plus.

Configura le variabili di ambiente

  1. Innanzitutto, esegui cd aa-integration-backend/platforms/five9 per cambiare directory.
  2. Verifica di avere un file .env che hai copiato da .env.sample nella sezione Dipendenze di sistema richieste. L'ultima riga deve contenere il FIVE9_TRUST_TOKEN che hai generato in quel momento.

  3. Variabili di ambiente: compila il file .env con i seguenti dettagli.

    Variabile Descrizione
    PROJECT_ID Il tuo Google Cloud ID progetto
    REGION La regione in cui verranno implementati i tuoi servizi Cloud Run.
    CONVERSATION_PROFILE_NAME L'ID risorsa del profilo di conversazione di Agent Assist.
    FEATURES Le funzionalità da attivare per Agent Assist. Consulta la documentazione Proprietà del contenitore dei moduli UI V2.
    FIVE9_API_KEY Imposta questo valore sulla chiave API Five9 che hai ottenuto durante la configurazione dell'abbonamento a MediaStream.
    FIVE9_TRUST_TOKEN Il segreto condiviso che hai generato in Prima di iniziare, che consente a mediastream-http-service di autenticarsi con il servizio Cloud Run ui-connector.

Esegui il deployment in Google Cloud Run

Esegui il deployment dei servizi gRPC e HTTP su Cloud Run utilizzando l'automazione fornita:

make deploy

Questo script:

  1. Crea le immagini container.
  2. Esegui il push in Google Container Registry (GCR) o Artifact Registry.
  3. Esegui il deployment di due servizi Cloud Run: uno per gRPC (Voice) e uno per HTTP (Events).
  4. Restituisci gli URL del servizio al termine.

Configurazione di Five9

Dopo il deployment, configura Five9 per inviare stream al tuo servizio. Per i passaggi dettagliati, consulta la guida tecnica di Five9 MediaStream.

Configurazione iniziale di Five9

Segui questi passaggi per configurare la console di amministrazione Five9 per l'integrazione di Agent Assist.

  1. Crea una nuova competenza, ad esempio Integrazione di Agent Assist.
  2. Assegna utenti alla skill.
  3. Configura un connettore classico Five9 per la tua campagna, incorporando l'URL del servizio Cloud Run MediaStream che hai implementato in un passaggio precedente:
    • URL: {mediastream-http-service-url}/agent-assist-ui-modules/
    • Metodo: GET
    • Parametri: call_id
    • Modalità di esecuzione: In Browser
      • Agent Application: Use embedded tab for Web Agent
      • Servizi web CTI: Current browser window
    • Trigger (scheda successiva): On Call Accepted
  4. Crea uno script IVR per definire il comportamento quando ricevi chiamate tramite il tuo numero DNIS Five9.
  5. Crea una campagna inbound
  6. Associare lo script IVR alla campagna
  7. Se vuoi, crea una campagna in uscita per attivare Assistente agente per le chiamate in uscita. Ciò comporta quanto segue:
    • Associa una competenza alla campagna in uscita.
    • Crea una copia del connettore classico e associala alla campagna in uscita. Modifica l'attivatore della copia del connettore classico in Al contatto selezionato.
    • Avvia la campagna. Per eseguire il test, effettua una chiamata in uscita in Agent Desktop Plus, selezionando la campagna in uscita dal menu a discesa.

Configurazione di esempio per il connettore classico per supportare i moduli UI in Agent Desktop Plus

Creare un abbonamento MediaStream

  1. Nome abbonamento: flusso multimediale di integrazione di Agent Assist
  2. Tipo di streaming: streaming vocale
    • Destinazione di streaming: Altro (self-service)
    • Protocollo di streaming: gRPC
    • Destinazione di streaming principale:
      • <five9-mediastream-grpc-deployment-url-without-protocol>:443
      • Ad esempio: five9-mediastream-grpc-123412341234.us-central1.run.app:443
    • CTI Call Event Destination:
      • https://<five9-mediastream-http-deployment-url>/cti-call-event-destination/
      • Ad esempio: https://five9-mediastream-http-123412341234-uc.a.run.app/cti-call-event-destination/
    • Destinazione eventi Mediastream:
      • https://<five9-mediastream-http-deployment-url>/mediastream-event-destination/
      • Ad esempio: https://five9-mediastream-http-123412341234-uc.a.run.app/mediastream-event-destination/
    • Trust Token: il FIVE9_TRUST_TOKEN che hai generato in un passaggio precedente.
    • Chiave API: questo campo verrà generato dopo aver salvato l'abbonamento a Mediastream. Copia il FIVE9_API_KEY che ricevi in platforms/five9/.env. Ti servirà nel passaggio successivo.
    • Filtro di streaming:
      • Filtro personalizzato: selezionato
      • Tipo di filtro: Campagne
      • Cerca le campagne aggiunte: cerca la tua campagna e aggiungila.

Esegui nuovamente il deployment in Google Cloud Run

  • Importante: dopo aver creato l'abbonamento a MediaStream, devi aggiungere FIVE9_API_KEY che hai ricevuto al file platforms/five9/.env, quindi rieseguire il deployment eseguendo make deploy.

Verifica del deployment

Verifica che i servizi di cui hai eseguito il deployment siano raggiungibili su Cloud Run:

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

Simula una chiamata riproducendo in streaming un file .wav su mediastream-grpc-service:

make test-grpc-stream

Ora puoi testare la trascrizione e i suggerimenti di Agent Assist mentre rispondi alle chiamate in Five9 Agent Desktop Plus.

Esempio di test end-to-end riuscito dell&#39;integrazione di Agent Assist

Test locale (facoltativo)

Per la risoluzione dei problemi o i test senza deployment, puoi eseguire i servizi localmente utilizzando Docker/Podman. Arresta i container, crea ed esegui localmente con Podman Compose.

make all

Esegui tutti i test (integrità, unità), tranne lo stream

make test

Simulare una chiamata riproducendo in streaming un file .wav

make test-grpc-stream LOCAL=true