Kit de desarrollo de Customer Experience Insights

El kit de desarrollo de CX Insights es una API de alto nivel diseñada para extender el cliente de Python de Google para CX Insights. Como desarrollador o persona que mantiene el código, puedes usar el kit de desarrollo de CX Insights para ampliar una amplia variedad de tareas.

Casos de uso

Entre las acciones que puedes realizar, se incluyen las siguientes:

  • Ingiere conversaciones individuales con metadatos.
  • Ingiere muchas conversaciones de forma masiva con metadatos.
  • Transcribe archivos de audio mono con Speech-to-Text (STT) V1.
  • Crea reconocedores con STT V2.
  • Configura la exportación a BigQuery.
  • Cambiar la configuración global de CX Insights
  • Transformar el formato de los datos de transcripción de Genesys Cloud a CX Insights
  • Transforma el formato de los datos de transcripción de AWS a CX Insights.

Comenzar

Para comenzar a usar el devkit, sigue estos pasos para configurar el entorno y la autenticación.

Paso 1: Configura un entorno virtual

Antes de usar el kit de desarrollo, sigue estos pasos para configurar tus credenciales de Google Cloud y, luego, instalar las dependencias necesarias.

  1. Usa el siguiente código para autenticar tu cuenta con Google Cloud CLI.
    gcloud auth login
    gcloud auth application-default login
    
  2. Configura tu proyecto Google Cloud con el siguiente código. Reemplaza el nombre del proyecto por el ID del proyecto Google Cloud real.
    gcloud config set project 
    
  3. Crea y activa un entorno virtual de Python con el siguiente código. Debes usar un entorno virtual para administrar las dependencias de tu proyecto.
    python3 -m venv venv
    source ./venv/bin/activate
    
  4. Instala las dependencias. En el directorio de tu proyecto, busca un archivo requirements.txt que contenga las dependencias del kit de desarrollo y, luego, ejecuta el siguiente código para instalarlas.
    pip install -r requirements.txt
    

Paso 2: Autenticación de la cuenta

Los métodos de autenticación del SDK de Python varían según tu entorno.

Google Colaboratory

  • Si usas el kit de desarrollo de CX Insights en un notebook de Google Colaboratory, puedes autenticarte agregando el siguiente código en la parte superior de tus notebooks administrados por el usuario:

    project_id = ''
    

  • Si lo haces, se iniciará un mensaje interactivo que te permitirá autenticarte con Google Cloud en un navegador.

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

  • La autenticación establece tu proyecto activo en project_id.

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

Cloud Run Functions

Cuando usas el kit de desarrollo de CX Insights con Cloud Run Functions, el kit de desarrollo selecciona automáticamente las credenciales predeterminadas del entorno que usan estos servicios.

  • Agrega devkit al archivo TXT de requisitos: Verifica que aparezca en el archivo requirements.txt del servicio de Cloud Run Functions.
  • Rol de Identity and Access Management: Verifica que la cuenta de servicio de Cloud Run Functions tenga asignado el rol de IAM de Dialogflow adecuado.

Entorno local de Python

Al igual que con las funciones de Cloud Run, este kit de desarrollo detecta tus credenciales de autenticación locales si usas gcloud CLI.

  1. Instala gcloud CLI. Si aún no lo hiciste, instala el SDK de Google Cloud. Incluye gcloud CLI.
  2. Inicializa gcloud CLI con el siguiente código.
    gcloud init
    
  3. Accede a Google Cloud con el siguiente código.
    gcloud auth login
    
  4. Verifica una cuenta activa con el siguiente código. Este comando autentica tu cuenta principal Google Cloud con gcloud CLI. Luego, el kit de desarrollo de CX Insights puede recuperar las credenciales de tu configuración.
    gcloud auth list
    

Contenido del kit de desarrollo

El kit de desarrollo de CX Insights contiene los siguientes recursos.

Carpeta principal

La carpeta core es sinónimo de los tipos de recursos principales que se encuentran en la mayoría de las clases. Tiene los componentes básicos de alto nivel del kit de desarrollo y funcionalidades generales, como la autenticación y las configuraciones globales. Estas clases y métodos se usan para compilar métodos de nivel superior o herramientas y aplicaciones personalizadas.

Carpeta común

La carpeta común contiene wrappers compilados en torno a los métodos implementados en el SDK de Google Cloud. La idea es agregar un nuevo nivel de simplicidad a las implementaciones existentes. Puedes realizar las siguientes acciones con la carpeta Common.

  • Manipular la configuración global desde CX Insights
  • Ingiere conversaciones (individuales y masivas) con metadatos.
  • Crea o enumera blobs en un bucket de Cloud Storage.
  • Crear transcripciones a partir de audios con STT V1 y V2
  • Transcribe archivos de audio mono con STT V1.

Carpeta de Workflows

La carpeta de flujos de trabajo contiene clases y métodos diseñados para realizar acciones que CX Insights no admite, como las siguientes.

  • Formatea las transcripciones de Genesys Cloud para CX Insights.
  • Da formato a las transcripciones de AWS para Customer Experience Insights.
  • Reconocer roles en una transcripción con Gemini

Anota una conversación de audio

La siguiente secuencia de comandos de Python transcribe un archivo de audio, asigna roles de orador y, luego, envía los datos enriquecidos de la conversación a CX Insights para su análisis.

    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.

Contribuciones y solicitudes de funciones

Para hacer contribuciones o solicitudes de funciones, sigue estos pasos:

  1. Crea una bifurcación del repositorio en GitHub.
  2. Crea tu rama de funciones con el siguiente código.
    git checkout -b feature/AmazingFeature
  3. Confirma tus cambios con el siguiente código.
    git commit -m 'Add some AmazingFeature'
  4. Envía los cambios a la rama con el siguiente código.
    git push origin feature/AmazingFeature
  5. Abre una solicitud de extracción y envíala desde tu rama de atributos al repositorio principal.

Licencia

La distribución del kit de desarrollo de CX Insights se encuentra bajo la licencia Apache 2.0. Para obtener más detalles, consulta el archivo LICENSE en el repositorio del proyecto.