Menganalisis percakapan menggunakan API

Percakapan dapat dilihat di Customer Experience Insights setelah objek percakapan yang sesuai dibuat. Panduan cara ini memandu Anda melalui proses menganalisis percakapan menggunakan REST API. Jika diinginkan, Anda juga dapat melakukan tindakan ini menggunakan konsol CX Insights.

Prasyarat

  1. Aktifkan Cloud Storage and Insights API di project Google Cloud Anda.
  2. Impor data percakapan Anda.

Percakapan chat

  1. Impor transkrip chat percakapan sebagai objek di bucket Cloud Storage Anda.

  2. Catat jalur objek, dengan format gs://<bucket>/<object>.

File transkrip chat harus diberikan sebagai file berformat JSON yang cocok dengan format data percakapan CCAI.

Percakapan suara

  1. Impor semua file dari bucket Cloud Storage. File audio dan transkrip harus diimpor sebagai objek di bucket Cloud Storage Anda.

  2. Catat dua jalur objek, dengan format gs://<bucket>/<object>.

File transkrip harus berupa hasil yang ditampilkan dari transkripsi Cloud Speech-to-Text API. Secara khusus, nilai ini harus cocok dengan respons yang ditampilkan dari pengenalan audio, yang identik untuk pengenalan sinkron dan pengenalan asinkron di semua versi Speech-to-Text API. Format transkripsi lainnya tidak didukung dan akan menyebabkan error selama analisis percakapan.

Menganalisis percakapan

Setelah objek Conversation dibuat di CX Insights, objek tersebut harus dianalisis untuk menghasilkan hasil yang berguna. Satu percakapan dapat dianalisis berkali-kali, dan setiap analisis terpisah akan membuat objek Analysis baru.

Analisis menjalankan serangkaian anotator terhadap data percakapan Anda dan menampilkan hasilnya dalam respons. Secara default, analisis akan menjalankan semua anotator yang tersedia. Secara opsional, Anda dapat mengonfigurasi analisis agar berjalan hanya untuk anotator tertentu.

Analisis adalah operasi yang berjalan lama. Memanggil metode CreateAnalysis akan membuat objek Operation yang merepresentasikan proses yang berjalan lama. Setelah operasi selesai, objek Operation akan berisi hasilnya. Anda dapat melakukan polling pada objek Operation untuk memeriksa penyelesaian.

Membuat analisis baru

REST

Lihat endpoint API conversations.analyses:create untuk mengetahui detail selengkapnya.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • CONVERSATION_ID: ID percakapan yang ingin Anda analisis. Nilai ini ditampilkan dalam respons `createConversation`.

Metode HTTP dan URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/conversations/CONVERSATION_ID/analyses

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
}

Python

Untuk melakukan autentikasi ke CX Insights, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google.cloud import contact_center_insights_v1


def create_analysis(conversation_name: str) -> contact_center_insights_v1.Analysis:
    """Creates an analysis.

    Args:
        conversation_name:
            The parent resource of the analysis.
            Format is 'projects/{project_id}/locations/{location_id}/conversations/{conversation_id}'.
            For example, 'projects/my-project/locations/us-central1/conversations/123456789'.

    Returns:
        An analysis.
    """
    # Construct an analysis.
    analysis = contact_center_insights_v1.Analysis()

    # Call the Insights client to create an analysis.
    insights_client = contact_center_insights_v1.ContactCenterInsightsClient()
    analysis_operation = insights_client.create_analysis(
        parent=conversation_name, analysis=analysis
    )
    analysis = analysis_operation.result(timeout=86400)
    print(f"Created {analysis.name}")
    return analysis

Java

Untuk melakukan autentikasi ke CX Insights, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


import com.google.cloud.contactcenterinsights.v1.Analysis;
import com.google.cloud.contactcenterinsights.v1.ContactCenterInsightsClient;
import java.io.IOException;

public class CreateAnalysis {

  public static void main(String[] args) throws Exception, IOException {
    // TODO(developer): Replace this variable before running the sample.
    String conversationName =
        "projects/my_project_id/locations/us-central1/conversations/my_conversation_id";

    createAnalysis(conversationName);
  }

  public static Analysis createAnalysis(String conversationName) throws Exception, IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (ContactCenterInsightsClient client = ContactCenterInsightsClient.create()) {
      // Construct an analysis.
      Analysis analysis = Analysis.newBuilder().build();

      // Call the Insights client to create an analysis.
      Analysis response = client.createAnalysisAsync(conversationName, analysis).get();
      System.out.printf("Created %s%n", response.getName());
      return response;
    }
  }
}

Node.js

Untuk melakukan autentikasi ke CX Insights, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

/**
 * TODO(developer): Uncomment this variable before running the sample.
 */
// const conversationName = 'projects/my_project_id/locations/us-central1/conversations/my_conversation_id';

// Imports the Contact Center Insights client.
const {
  ContactCenterInsightsClient,
} = require('@google-cloud/contact-center-insights');

// Instantiates a client.
const client = new ContactCenterInsightsClient();

async function createAnalysis() {
  const [operation] = await client.createAnalysis({
    parent: conversationName,
  });

  // Wait for the operation to complete.
  const [analysis] = await operation.promise();
  console.info(`Created ${analysis.name}`);
}
createAnalysis();

(Opsional) Mengonfigurasi analisis

REST

Lihat endpoint API conversations.analyses:create untuk mengetahui detail selengkapnya. Sertakan anotator yang ingin Anda jalankan dalam objek annotatorSelector dan tetapkan ke true. Setiap anotator yang tidak disertakan akan ditetapkan secara default ke false. Jika Anda tidak menentukan anotator apa pun dalam objek annotatorSelector, semua anotator akan dijalankan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • PHRASE_MATCHER(s): Nama resource pencocok frasa yang sepenuhnya memenuhi syarat dari pencocok frasa yang ingin Anda gunakan untuk anotator pencocok frasa. Jika dibiarkan kosong, semua pencocok frasa aktif akan berjalan.
  • ISSUE_MODEL(s): Nama resource yang sepenuhnya memenuhi syarat dari model masalah yang ingin Anda gunakan untuk anotator model masalah. Hanya berfungsi jika run_issue_model_annotator benar. Jika dibiarkan kosong, semua model masalah yang di-deploy akan berjalan. Saat ini dibatasi hingga 1 model yang di-deploy.

Metode HTTP dan URL:

POST https://contactcenterinsights.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/conversations/CONVERSATION_ID/analyses

Meminta isi JSON:

{
  "annotatorSelector": {
    "run_interruption_annotator": {true/false},
    "run_silence_annotator": {true/false},
    "run_phrase_matcher_annotator": {true/false},
    "phrase_matchers": PHRASE_MATCHER(s),
    "run_sentiment_annotator": {true/false},
    "run_entity_annotator": {true/false},
    "run_intent_annotator": {true/false},
    "run_issue_model_annotator": {true/false}
    "issue_models": ISSUE_MODEL(s)
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
}

Polling operasi

Membuat analisis akan menampilkan operasi yang berjalan lama. Metode yang berjalan lama bersifat asinkron, dan operasi mungkin tidak diselesaikan saat metode menampilkan respons. Anda dapat melakukan polling operasi untuk memeriksa statusnya. Lihat halaman operasi yang berjalan lama untuk mengetahui detail dan contoh kodenya.