Kit di sviluppo Customer Experience Insights

Il devkit CX Insights è un'API di alto livello progettata per estendere il client Python di Google per CX Insights. In qualità di sviluppatore o di persona che gestisce il codice, puoi utilizzare il devkit CX Insights per scalare un'ampia gamma di attività.

Casi d'uso

Le azioni che puoi eseguire includono:

  • Importa singole conversazioni con i metadati.
  • Importa molte conversazioni in blocco con i metadati.
  • Trascrivi i file audio mono utilizzando Speech-to-Text (STT) V1.
  • Crea riconoscitori utilizzando STT V2.
  • Configura BigQuery Export.
  • Modifica le impostazioni globali di CX Insights.
  • Trasforma il formato dei dati della trascrizione da Genesys Cloud a CX Insights.
  • Trasforma il formato dei dati della trascrizione da AWS a CX Insights.

Inizia

Per iniziare a utilizzare il devkit, segui questi passaggi per la configurazione dell'ambiente e l'autenticazione.

Passaggio 1: configura un ambiente virtuale

Prima di utilizzare il devkit, segui questi passaggi per configurare le tue credenziali Google Cloud e installare le dipendenze necessarie.

  1. Utilizza il seguente codice per autenticare il tuo account con Google Cloud CLI.
    gcloud auth login
    gcloud auth application-default login
    
  2. Imposta il tuo progetto Google Cloud con il seguente codice. Sostituisci project name con l'ID progetto Google Cloud effettivo.
    gcloud config set project 
    
  3. Crea e attiva un ambiente virtuale Python con il seguente codice. Devi utilizzare un ambiente virtuale per gestire le dipendenze del progetto.
    python3 -m venv venv
    source ./venv/bin/activate
    
  4. Installa le dipendenze. Nella directory del progetto, controlla la presenza di un file requirements.txt contenente le dipendenze del devkit e installale eseguendo il seguente codice.
    pip install -r requirements.txt
    

Passaggio 2: autenticazione dell'account

I metodi di autenticazione per il devkit Python variano a seconda dell'ambiente.

Google Colaboratory

  • Se utilizzi il devkit CX Insights in un notebook Google Colaboratory, puoi eseguire l'autenticazione aggiungendo il seguente codice all'inizio dei notebook gestiti dall'utente:

    project_id = ''
    

  • In questo modo viene avviato un prompt interattivo che ti consente di eseguire l'autenticazione con Google Cloud in un browser.

    !gcloud auth application-default login --no-launch-browser
    

  • L'autenticazione imposta il progetto attivo su project_id.

    !gcloud auth application-default set-quota-project $project_id
    

Cloud Run Functions

Quando utilizzi il devkit CX Insights con Cloud Run Functions, il devkit rileva automaticamente le credenziali di ambiente predefinite utilizzate da questi servizi.

  • Aggiungi devkit al file TXT dei requisiti: verifica che sia elencato nel file requirements.txt del servizio Cloud Run Functions.
  • Ruolo Identity and Access Management: verifica che all'account di servizio Cloud Run Functions sia assegnato il ruolo IAM Dialogflow appropriato.

Ambiente Python locale

Analogamente a Cloud Run Functions, questo devkit rileva le credenziali di autenticazione locali se utilizzi gcloud CLI.

  1. Installa gcloud CLI. Se non l'hai ancora fatto, installa Google Cloud SDK. Include gcloud CLI.
  2. Inizializza gcloud CLI con il seguente codice.
    gcloud init
    
  3. Accedi a Google Cloud con il seguente codice.
    gcloud auth login
    
  4. Verifica un account attivo con il seguente codice. Questo comando autentica il tuo account principal Google Cloud con gcloud CLI. Il devkit CX Insights può quindi recuperare le credenziali dalla configurazione.
    gcloud auth list
    

Contenuto del kit di sviluppo

Il devkit CX Insights contiene le seguenti risorse.

Cartella principale

La cartella principale è sinonimo dei tipi di risorse principali presenti nella maggior parte delle classi. Contiene i blocchi costitutivi di alto livello del devkit e funzionalità generali come l'autenticazione e le configurazioni globali. Queste classi e questi metodi vengono utilizzati per creare metodi di livello superiore o strumenti e applicazioni personalizzati.

Cartella comune

La cartella common contiene wrapper creati intorno ai metodi implementati in Google Cloud SDK. L'idea è di aggiungere un nuovo livello di semplicità alle implementazioni esistenti. Puoi eseguire le seguenti azioni con la cartella Comune.

  • Manipolare le configurazioni globali da CX Insights.
  • Importa conversazioni (singole e collettive) con metadati.
  • Crea o elenca i blob in un bucket Cloud Storage.
  • Crea trascrizioni dagli audio utilizzando STT V1 e V2.
  • Trascrivi file audio mono con STT V1.

Cartella Workflows

La cartella dei flussi di lavoro contiene classi e metodi progettati per eseguire azioni che CX Insights non supporta, ad esempio le seguenti.

  • Formatta le trascrizioni da Genesys Cloud a CX Insights.
  • Formatta le trascrizioni da AWS a Customer Experience Insights.
  • Riconoscere i ruoli in una trascrizione utilizzando Gemini.

Annotare una conversazione audio

Il seguente script Python trascrive un file audio, assegna i ruoli degli oratori, quindi invia i dati della conversazione arricchiti a CX Insights per l'analisi.

    def audio_with_role_recognition():
      # 1. Reset Insights Settings
      reset_insights_settings()
      # Verifies a clean state for CX Insights settings before starting the test.
      # This function is assumed to be defined elsewhere and handles resetting global configurations.

      # 2. Initialize Speech-to-Text V2 Client
      sp = speech.V2(
          project_id = _PROBER_PROJECT_ID
      )
      # Initializes a client for interacting with the Google Cloud Speech-to-Text API (V2).
      # _PROBER_PROJECT_ID: The Google Cloud Project ID where the STT recognizer resides.

      # 3. Create Transcription
      transcript = sp.create_transcription(
          audio_file_path = _MONO_SHORT_AUDIO_LOCATION,
          recognizer_path = 'projects/<project_id>/locations/<region>/recognizers/<recognizer_id>'
      )
      # Sends an audio file for transcription using a specific STT V2 recognizer.
      # audio_file_path: Local path to the mono audio file to be transcribed.
      # recognizer_path: Full resource path to the STT V2 recognizer to be used for transcription.
      #                  Example: 'projects/YOUR_PROJECT_NUMBER/locations/global/recognizers/YOUR_RECOGNIZER_ID'


      # Verifies that the returned 'transcript' object is of the expected type from the Speech-to-Text V2 API.

      # 4. Format Transcription
      ft = format.Speech()
      # Initializes a formatting utility for speech-related data.

      transcript = ft.v2_recognizer_to_dict(transcript)
      # Transforms the STT V2 `RecognizeResponse` object into a more manageable Python dictionary format,
      # which is often easier to work with for subsequent processing steps like role recognition.

      # 5. Initialize Google Cloud Storage Client
      gcs = storage.Gcs(
        project_name = _PROBER_PROJECT_ID,
        bucket_name = _TMP_PROBER_BUCKET
      )
      # Initializes a Google Cloud Storage client.
      # project_name: The Google Cloud Project ID.
      # bucket_name: The name of the Google Cloud Storage bucket where the processed transcript will be temporarily stored.

      # 6. Generate Unique File Name
      file_name = f'{uuid.uuid4()}.json'
      # Creates a unique file name for the JSON transcript using a UUID (Universally Unique Identifier).
      # This prevents naming conflicts when uploading multiple transcripts to the same Google Cloud Storage bucket.

      # 7. Perform Role Recognition
      role_recognizer = rr.RoleRecognizer()
      # Initializes the RoleRecognizer component, likely part of the Customer Experience Insights DevKit,
      # responsible for identifying speaker roles (e.g., agent, customer) within a conversation.

      roles = role_recognizer.predict_roles(conversation=transcript)
      # Predicts the roles of speakers in the transcribed conversation.
      # conversation: The transcribed conversation in a dictionary format.

      transcript = role_recognizer.combine(transcript, roles)
      # Integrates the recognized roles back into the original transcript data structure.
      # This step enriches the transcript with speaker role metadata.

      # 9. Upload Processed Transcript to Google Cloud Storage
      gcs.upload_blob(
        file_name = file_name,
        data = transcript
      )
      # Uploads the enriched transcript (as JSON data) to the specified Google Cloud Storage bucket with the generated unique file name.
      # This Google Cloud Storage path will be used as the source for Customer Experience Insights ingestion.

      # 10. Construct Google Cloud Storage Path
      gcs_path = f"gs://{_TMP_PROBER_BUCKET}/{file_name}"
      # Forms the full Google Cloud Storage URI for the uploaded transcript, which is required by the Customer Experience Insights Ingestion API.

      # 11. Initialize CX Insights Ingestion
      ingestion = insights.Ingestion(
          parent = _PARENT,
          transcript_path = gcs_path
      )
      # Initializes an Ingestion client for CX Insights.
      # parent: The parent resource path for CX Insights, typically in the format:
      #         'projects/YOUR_PROJECT_NUMBER/locations/YOUR_LOCATION'
      # transcript_path: The Google Cloud Storage URI where the conversation transcript is stored.

      # 12. Ingest Single Conversation
      operation = ingestion.single()
      # Initiates the ingestion of the single conversation into CX Insights.
      # This returns an operation object, which can be used to monitor the status of the ingestion.

Contributi e richieste di funzionalità

Per inviare contributi o richieste di funzionalità:

  1. Crea un fork del repository su GitHub.
  2. Crea il ramo della funzionalità con il seguente codice.
    git checkout -b feature/AmazingFeature
  3. Esegui il commit delle modifiche con il seguente codice.
    git commit -m 'Add some AmazingFeature'
  4. Esegui il push delle modifiche al ramo con il seguente codice.
    git push origin feature/AmazingFeature
  5. Apri una richiesta di pull e inviala dal ramo della funzionalità al repository principale.

Licenza

La distribuzione del devkit CX Insights è regolata dalla licenza Apache 2.0. Per maggiori dettagli, consulta il file LICENSE nel repository del progetto.