Smart compose

Fitur smart compose membantu agen manusia selama percakapan teks dengan pengguna akhir. Fitur ini menyarankan frasa untuk melengkapi kalimat yang dimulai oleh agen manusia. Anda dapat menggunakan fitur ini untuk menerapkan fitur saran kustom untuk antarmuka chat agen Anda.

Agen manusia menerima saran teks saat mengetik di antarmuka chat. Panduan ini memandu Anda menerapkan fitur Smart Compose dengan memanggil API secara langsung. Jika mau, Anda dapat menggunakan Agent Assist Console untuk melatih model dan menguji performanya menggunakan simulator. Lihat tutorial simulator Smart Compose untuk mengetahui petunjuknya.

Lihat dokumentasi praktik terbaik Smart Compose untuk mendapatkan panduan tentang cara mengintegrasikan Smart Compose dengan sistem Anda sendiri dan meningkatkan kualitas saran Anda.

Sebelum memulai

Selesaikan hal berikut sebelum membaca panduan ini:

  1. Aktifkan Dialog Flow API untuk project Anda.

Informasi Identitas Pribadi dan data anak-anak

Saat Anda mengirim data ke API ini, API akan mencoba menyamarkan semua informasi identitas pribadi (PII). Jika Anda perlu memastikan bahwa model tidak menyertakan PII, Anda harus membersihkan data sebelum mengirimkannya ke API. Ganti kata yang disamarkan dengan placeholder seperti `REDACTED_NUMBER` atau `REDACTED_NAME`, bukan hanya menghapusnya.

Selain itu, jika data Anda berisi informasi yang dikumpulkan dari anak-anak, Anda harus menghapus data anak-anak tersebut sebelum mengirimkannya ke API.

Melatih dan men-deploy model

Model Smart Reply Agent Assist dilatih menggunakan set data percakapan. Set data percakapan berisi data transkrip yang Anda upload sendiri. Bagian ini akan memandu Anda melalui proses pembuatan set data percakapan, mengupload data percakapan ke set data tersebut, serta melatih dan men-deploy model. Anda juga dapat melakukan tindakan ini menggunakan Konsol Agent Assist jika Anda tidak ingin memanggil API secara langsung.

Membuat set data percakapan

Sebelum dapat mulai mengupload transkrip percakapan, Anda harus membuat set data percakapan terlebih dahulu untuk menempatkannya. Panggil metode create pada resource ConversationDataset untuk membuat set data percakapan.

Respons berisi ID set data percakapan.

Mengimpor transkrip percakapan ke set data percakapan Anda

Upload data percakapan chat Anda ke set data percakapan agar dapat diproses oleh Agent Assist. Pastikan transkrip setiap percakapan dalam format JSON dan disimpan di bucket Cloud Storage. Set data percakapan harus berisi minimal 30.000 percakapan,jika tidak, pelatihan model akan gagal. Secara umum, semakin banyak percakapan yang Anda lakukan, semakin baik kualitas model Anda. Sebaiknya upload percakapan minimal 3 bulan untuk mencakup sebanyak mungkin kasus penggunaan. Jumlah maksimum pesan dalam set data percakapan adalah 1.000.000.

Panggil metode importConversationData pada resource ConversationDataset untuk mengimpor percakapan Anda.

Kolom wajib diisi:

  • ID set data percakapan yang Anda buat sebelumnya.
  • Jalur inputConfig mengarah ke data transkrip percakapan Anda di bucket Cloud Storage.

Responsnya adalah operasi yang berjalan lama, yang dapat Anda polling untuk memeriksa penyelesaiannya.

Membuat model percakapan

Panggil metode create pada resource ConversationModel untuk membuat model percakapan. Tindakan ini juga membuat daftar yang diizinkan model.

Kolom wajib diisi:

  • Di datasets, berikan satu set data menggunakan ID set data percakapan yang Anda buat sebelumnya.
  • Tetapkan smartReplyModelMetadata ke objek kosong, atau isi kolom untuk mengganti default.

Responsnya adalah operasi yang berjalan lama, yang dapat Anda polling untuk memeriksa penyelesaiannya. Setelah selesai, ID model dan ID daftar yang diizinkan akan disertakan dalam metadata untuk operasi tersebut.

  • ID Model: name
  • ID daftar yang diizinkan: smart_reply_model_metadata.associated_allowlist_info.document

Men-deploy model percakapan

Panggil metode deploy pada resource ConversationModel untuk men-deploy model percakapan.

Kolom wajib diisi:

  • Gunakan conversationModels: Masukkan ID model percakapan yang Anda buat sebelumnya.

Mengelola daftar yang diizinkan

Setiap model memiliki daftar yang diizinkan yang terkait dengannya, yang dibuat secara otomatis saat Anda membuat model percakapan. Daftar yang diizinkan berisi semua respons, yang dihasilkan dari set data percakapan Anda, yang dapat ditampilkan kepada agen manusia saat runtime. Bagian ini menjelaskan pembuatan dan pengelolaan daftar yang diizinkan. Anda juga dapat melakukan tindakan ini menggunakan Konsol Agent Assist jika Anda tidak ingin memanggil API secara langsung.

Mengekspor konten daftar yang diizinkan ke file CSV

Pembuatan model secara otomatis membuat daftar yang diizinkan yang terkait dengan model baru. Daftar yang diizinkan adalah resource Dokumen dengan ID unik. ID ditampilkan di smart_reply_model_metadata.associated_allowlist_info.document saat model dibuat. Untuk meninjau dan membuat perubahan pada pesan di daftar yang diizinkan, Anda harus mengekspornya ke bucket Cloud Storage.

Panggil metode export pada resource Document untuk mengekspor dokumen ke file CSV di bucket Cloud Storage. Kolom smart_messaging_partial_update bersifat opsional, tetapi memengaruhi cara Anda dapat memperbarui daftar yang diizinkan ini pada masa mendatang. Jika disetel ke true, file CSV yang diekspor akan menyertakan kolom yang berisi ID unik untuk setiap pesan. Anda dapat menggunakan ID pesan untuk hanya memperbarui pesan tertentu, bukan seluruh dokumen. Jika smart_messaging_partial_update disetel ke false atau tidak disetel, kolom tambahan tidak akan muncul dalam file, dan setiap pembaruan pada daftar yang diizinkan akan memerlukan pembaruan pada seluruh dokumen.

Kolom wajib diisi:

  • Jalur gcsDestination menuju bucket Cloud Storage Anda.

Responsnya adalah operasi yang berjalan lama, yang dapat Anda polling untuk memeriksa penyelesaiannya. Setelah itu, file CSV yang Anda berikan dalam permintaan akan diisi dengan kandidat respons.

Meninjau daftar yang diizinkan

Daftar yang diizinkan yang dibuat berisi respons yang dibuat secara otomatis oleh Smart Reply berdasarkan data percakapan Anda. Sekarang Anda dapat meninjau dan memperbarui respons tersebut sesuai kebutuhan. Download file CSV dari bucket Cloud Storage Anda, edit agar sesuai dengan kebutuhan Anda, lalu upload kembali file ke bucket Cloud Storage. Hanya respons dalam daftar yang diizinkan yang dapat ditampilkan kepada agen manusia.

Jika Anda mengedit respons, sebaiknya edit hanya untuk ejaan dan tata bahasa, dan jangan mengubah arti pesan. Makin jauh perbedaan teks yang diedit dengan makna dalam model, makin kecil kemungkinan pesan tersebut ditampilkan.

Anda juga dapat membuat pesan baru jika diperlukan. Mirip dengan pesan yang diedit, pesan yang dibuat cenderung tidak ditampilkan selama runtime.

Memperbarui daftar yang diizinkan

Setelah selesai memperbarui file CSV, Anda dapat menggunakannya untuk memperbarui resource Document. Anda dapat memilih untuk memperbarui seluruh daftar yang diizinkan atau hanya pesan tertentu. Untuk memperbarui hanya pesan tertentu, Anda harus telah menetapkan smart_messaging_partial_update ke true saat Anda mengekspor daftar yang diizinkan. Jika Anda sudah melakukannya, gunakan kolom yang dibuat secara otomatis dalam file CSV yang diekspor untuk menunjukkan pesan yang akan diperbarui.

Panggil metode reload pada resource Document untuk memperbarui daftar yang diizinkan. Untuk memperbarui hanya pesan tertentu, tetapkan smart_messaging_partial_update ke true di ReloadDocumentRequest. Untuk memperbarui seluruh daftar yang diizinkan, biarkan smart_messaging_partial_update tidak disetel atau setel ke false.

Kolom wajib diisi:

  • gcsSource adalah jalur Cloud Storage ke file CSV.
  • Untuk name, gunakan nama resource daftar yang diizinkan yang dihasilkan saat Anda membuat model percakapan.

Contoh permintaan:

{
  "name":"projects/project-id/knowledgeBases/knowledge-base-id/documents/allowlist-id",
  "gcsSource" {
      "uri": "gs://revised_smart_reply_allowlist_path"
   }
}

Mengevaluasi performa model terlatih

Anda dapat menguji performa model setelah men-deploy model dan membuat daftar yang diizinkan untuk model tersebut. Anda juga harus menyediakan set data pengujian. Respons yang dihasilkan oleh model Smart Reply yang terlatih dan daftar yang diizinkannya akan dibandingkan dengan pesan agen sebenarnya dalam set data pengujian. Set data pengujian harus terdiri dari data percakapan dunia nyata, tetapi tidak boleh berisi data apa pun dalam set data percakapan yang Anda gunakan untuk melatih model. Misalnya, dengan traffic percakapan selama 1 bulan, Anda dapat menggunakan data percakapan selama 3 minggu untuk membuat set data percakapan dan data selama 1 minggu sisanya untuk membuat set data pengujian. Set data pengujian harus berisi minimal 1.000 percakapan, tetapi sebagai aturan umum, metrik evaluasi akan lebih andal jika ada lebih banyak percakapan dalam set data pengujian. Format set data pengujian sama dengan format set data percakapan.

Untuk membuat evaluasi model baru, panggil metode CreateConversationModelEvaluation pada resource ConversationModel. Metode ini menampilkan operasi yang berjalan lama. Anda dapat melakukan polling operasi untuk memeriksa statusnya, yang akan menampilkan salah satu dari INITIALIZING, RUNNING, SUCCEEDED, CANCELLED, FAILED.

Kolom wajib diisi:

  • InputDataset: Set data pengujian yang akan digunakan untuk menguji performa model.
  • allowlist_document: Daftar yang diizinkan yang terkait dengan model Smart Reply yang akan diuji.

Resource ConversationModelEvaluation ditampilkan saat operasi yang berjalan lama telah selesai. Dua metrik disertakan:

  • allowlist_coverage: Persentase pesan agen dalam set data pengujian yang tercakup dalam daftar yang diizinkan.
  • recall: Persentase pesan agen dalam set data pengujian yang terdapat dalam daftar yang diizinkan dan muncul dalam 3 saran teratas yang ditampilkan oleh model Smart Reply.

Mengonfigurasi profil percakapan

Profil percakapan mengonfigurasi serangkaian parameter yang mengontrol saran yang diberikan kepada agen selama percakapan. Langkah-langkah berikut membuat ConversationProfile dengan objek HumanAgentAssistantConfig. Anda juga dapat melakukan tindakan ini menggunakan Konsol Agent Assist jika Anda tidak ingin memanggil API secara langsung.

Membuat profil percakapan

Untuk membuat profil percakapan, panggil metode create pada resource ConversationProfile. Berikan ID project, ID dokumen, ID project, dan ID model Anda.

Berikut adalah contoh JSON:
{
  "displayName": "smart_compose_assist",
  "humanAgentAssistantConfig": {
    "humanAgentSuggestionConfig": {
      "featureConfigs": [
        {
          "suggestionFeature": {
            "type": "SMART_COMPOSE"
          },
          "queryConfig": {
            "documentQuerySource": {
              "documents": "projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID/documents/DOCUMENT_ID"
            },
           "maxResults": "1"
          },
         "conversationModelConfig": {
           "model": "projects/PROJECT_ID/conversationModels/MODEL_ID"
         }
        }
      ]
    }
  }
}

Respons berisi ID profil percakapan baru Anda.

Menangani percakapan saat runtime

Saat dialog dimulai antara pengguna akhir dan agen manusia, Anda membuat percakapan. Untuk melihat saran, Anda juga harus membuat peserta pengguna akhir dan peserta agen manusia, lalu menambahkannya ke percakapan. Bagian berikut akan memandu Anda melalui proses ini.

Buat percakapan

Untuk membuat percakapan, panggil metode create pada resource Conversation.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Cloud Anda
  • LOCATION_ID: ID lokasi Anda
  • CONVERSATION_PROFILE_ID: ID yang Anda terima saat membuat profil percakapan

Metode HTTP dan URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations

Meminta isi JSON:

{
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID",
  "lifecycleState": "IN_PROGRESS",
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "startTime": "2018-11-05T21:05:45.622Z"
}

Segmen jalur setelah conversations berisi ID percakapan baru Anda.

Python

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

def create_conversation(project_id, conversation_profile_id):
    """Creates a conversation with given values

    Args:
        project_id:  The GCP project linked with the conversation.
        conversation_profile_id: The conversation profile id used to create
        conversation."""

    client = dialogflow.ConversationsClient()
    conversation_profile_client = dialogflow.ConversationProfilesClient()
    project_path = client.common_project_path(project_id)
    conversation_profile_path = conversation_profile_client.conversation_profile_path(
        project_id, conversation_profile_id
    )
    conversation = {"conversation_profile": conversation_profile_path}
    response = client.create_conversation(
        parent=project_path, conversation=conversation
    )

    print("Life Cycle State: {}".format(response.lifecycle_state))
    print("Conversation Profile Name: {}".format(response.conversation_profile))
    print("Name: {}".format(response.name))
    return response

Membuat peserta pengguna akhir

Anda harus menambahkan peserta pengguna akhir dan agen manusia ke percakapan untuk melihat saran. Untuk membuat peserta pengguna akhir, panggil metode create pada resource Participant. Berikan ID percakapan dan END_USER untuk kolom role.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Cloud Anda
  • LOCATION_ID: ID lokasi Anda
  • CONVERSATION_ID: ID percakapan Anda

Metode HTTP dan URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

Meminta isi JSON:

{
  "role": "END_USER",
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "END_USER"
}

Segmen jalur setelah participants berisi ID peserta pengguna akhir baru Anda.

Python

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

def create_participant(project_id: str, conversation_id: str, role: str):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Creates a participant in a given conversation.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant: participant to be created."""

    client = dialogflow.ParticipantsClient()
    conversation_path = dialogflow.ConversationsClient.conversation_path(
        project_id, conversation_id
    )
    if role in ROLES:
        response = client.create_participant(
            parent=conversation_path, participant={"role": role}, timeout=600
        )
        print("Participant Created.")
        print(f"Role: {response.role}")
        print(f"Name: {response.name}")

        return response

Membuat peserta agen manusia

Untuk membuat peserta agen manusia, panggil metode create di resource Participant. Berikan ID percakapan dan HUMAN_AGENT untuk kolom role.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Cloud Anda
  • LOCATION_ID: ID lokasi Anda
  • CONVERSATION_ID: ID percakapan Anda

Metode HTTP dan URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

Meminta isi JSON:

{
  "role": "HUMAN_AGENT",
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "HUMAN_AGENT"
}

Segmen jalur setelah participants berisi ID peserta agen manusia baru Anda.

Python

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

def create_participant(project_id: str, conversation_id: str, role: str):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Creates a participant in a given conversation.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant: participant to be created."""

    client = dialogflow.ParticipantsClient()
    conversation_path = dialogflow.ConversationsClient.conversation_path(
        project_id, conversation_id
    )
    if role in ROLES:
        response = client.create_participant(
            parent=conversation_path, participant={"role": role}, timeout=600
        )
        print("Participant Created.")
        print(f"Role: {response.role}")
        print(f"Name: {response.name}")

        return response

Menambahkan dan menganalisis pesan dari agen manusia

Setiap kali salah satu peserta mengetik pesan dalam percakapan, Anda perlu mengirim pesan tersebut ke API untuk diproses. Agent Assist mendasarkan sarannya pada analisis pesan agen manusia dan pengguna akhir. Untuk menambahkan dan menganalisis pesan agen manusia untuk percakapan, panggil metode analyzeContent di resource Participant. Berikan ID percakapan dan ID peserta agen manusia.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID GCP Anda
  • CONVERSATION_ID: ID percakapan Anda
  • PARTICIPANT_ID: ID peserta agen manusia Anda

Metode HTTP dan URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

Meminta isi JSON:

{
  "textInput": {
    "text": "How may I help you?",
    "languageCode": "en-US"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "message": {
    "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "content": "How may I help you?",
    "languageCode": "en-US",
    "participant": "PARTICIPANT_ID",
    "participantRole": "HUMAN_AGENT",
    "createTime": "2020-02-13T00:01:30.683Z"
  },
  "humanAgentSuggestionResults": [
    {
      "suggestSmartRepliesResponse": {
      "smartReplyAnswers": [
          {
            "reply": "I am here to help you.",
            "confidence": 0.5,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
          },
          {
            "reply": "Sorry for the wait, we have a high volume of chats right now.",
            "confidence": 0.3,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
          },
          {
            "reply": "Thank you for contacting us!",
            "confidence": 0.1,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
          }
        ]
      }
    }
  ]
}

Python

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

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

Menambahkan dan menganalisis pesan dari pengguna akhir

Untuk menambahkan dan menganalisis pesan pengguna akhir untuk percakapan, panggil metode analyzeContent di resource Participant. Berikan ID percakapan dan ID peserta pengguna akhir.

Respons berisi ID pesan. Saran akan diperoleh pada langkah berikutnya.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID GCP Anda
  • CONVERSATION_ID: ID percakapan Anda
  • PARTICIPANT_ID: ID peserta pengguna akhir Anda

Metode HTTP dan URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

Meminta isi JSON:

{
  "textInput": {
    "text": "I want to reserve a room.",
    "languageCode": "en-US"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "message": {
    "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "content": "I want to reserve a room.",
    "languageCode": "en-US",
    "participant": "PARTICIPANT_ID",
    "participantRole": "END_USER",
    "createTime": "2020-02-13T00:07:35.925Z"
  },
  "humanAgentSuggestionResults": [
    {
      "suggestSmartRepliesResponse": {
      "smartReplyAnswers": [
          {
            "reply": "Where would you like to reserve a room?",
            "confidence": 0.5,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
          },
          {
            "reply": "What type of rooms would you like to reserve?",
            "confidence": 0.3,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
          },
          {
            "reply": "How long do you want to stay?",
            "confidence": 0.1,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
          }
        ]
      }
    }
  ]
}

Python

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

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

Mendapatkan saran (Opsional)

Anda dapat melihat saran kapan saja. Anda dapat secara opsional menentukan ID pesan untuk menerima saran berdasarkan pesan tersebut. Jika kolom ini tidak disetel, saran akan didasarkan pada pesan terbaru dari salah satu peserta secara default. Untuk mendapatkan saran, panggil metode suggestSmartReplies pada resource Suggestion. Berikan ID percakapan, ID peserta agen manusia, dan ID pesan dari salah satu peserta (opsional).

Respons berisi saran Smart Reply untuk agen manusia.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID GCP Anda
  • CONVERSATION_ID: ID percakapan Anda
  • PARTICIPANT_ID: ID peserta pengguna akhir Anda

Metode HTTP dan URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

Meminta isi JSON:

{
  "textInput": {
    "text": "I want to reserve a room.",
    "languageCode": "en-US"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "message": {
    "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "content": "I want to reserve a room.",
    "languageCode": "en-US",
    "participant": "PARTICIPANT_ID",
    "participantRole": "END_USER",
    "createTime": "2020-02-13T00:07:35.925Z"
  },
  "humanAgentSuggestionResults": [
    {
      "suggestSmartRepliesResponse": {
      "smartReplyAnswers": [
          {
            "reply": "Where would you like to reserve a room?",
            "confidence": 0.5,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
          },
          {
            "reply": "What type of rooms would you like to reserve?",
            "confidence": 0.3,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
          },
          {
            "reply": "How long do you want to stay?",
            "confidence": 0.1,
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
          }
        ]
      }
    }
  ]
}

Python

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

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

Menyelesaikan percakapan

Untuk menyelesaikan percakapan, panggil metode complete pada resource conversations. Berikan ID percakapan.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID GCP Anda
  • CONVERSATION_ID: ID yang Anda terima saat membuat percakapan

Metode HTTP dan URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID",
  "lifecycleState": "COMPLETED",
  "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "startTime": "2018-11-05T21:05:45.622Z",
  "endTime": "2018-11-06T03:50:26.930Z"
}

Python

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

def complete_conversation(project_id, conversation_id):
    """Completes the specified conversation. Finished conversations are purged from the database after 30 days.

    Args:
        project_id: The GCP project linked with the conversation.
        conversation_id: Id of the conversation."""

    client = dialogflow.ConversationsClient()
    conversation_path = client.conversation_path(project_id, conversation_id)
    conversation = client.complete_conversation(name=conversation_path)
    print("Completed Conversation.")
    print("Life Cycle State: {}".format(conversation.lifecycle_state))
    print("Conversation Profile Name: {}".format(conversation.conversation_profile))
    print("Name: {}".format(conversation.name))
    return conversation