Menentukan Tindakan (Dialogflow)

Action adalah titik entri ke aplikasi Anda yang menentukan model pemanggilan dan penemuan untuk aplikasi Anda. Anda mendeklarasikan Action dalam file JSON yang dikenal sebagai paket Action, yang nantinya Anda upload ke project developer saat ingin menguji atau mengirimkan project Action untuk disetujui. Paket Action adalah file JSON yang menentukan Action dalam project Action Anda.

Untuk menentukan Action dalam paket Action, Anda membuat intent yang menentukan cara Action dipanggil dan endpoint fulfillment yang sesuai saat intent dipicu. Anda dapat membuat jenis Tindakan berikut:

  • Tindakan Default: Setiap project Action harus memiliki intent sambutan yang berfungsi sebagai titik entri bagi pengguna untuk memulai percakapan. Intent sambutan dipicu saat pengguna memanggil Action secara eksplisit dengan mengucapkan namanya (misalnya, "Ok Google, bicara dengan ExampleAction"). Intent sambutan ini diidentifikasi dengan nama intent actions.intent.MAIN.
  • Tindakan Tambahan untuk deep linking: Anda dapat membuat Tindakan tambahan dalam paket Action dengan intent yang Anda tentukan sendiri. Hal ini memungkinkan pengguna memanggil fungsi tertentu dengan mengucapkan nama Action bersama dengan intent (misalnya: "Ok Google, bicara dengan ExampleAction untuk menemukan sepatu").

Lihat Intent dan pemanggilan untuk mengetahui informasi selengkapnya tentang cara kerja model pemanggilan ini.

Menentukan Tindakan default

Setiap paket Action harus memiliki satu dan hanya satu intent yang menangani intent actions.intent.MAIN. Intent ini dipicu saat pengguna memanggil Action Anda dengan nama (misalnya, "Ok Google, bicara dengan ExampleAction").

Untuk membuat file paket Action boilerplate bernama action.json, lakukan langkah-langkah berikut:

  1. Download gactions CLI.
  2. Buat direktori lokal untuk file sumber project Action Anda.
  3. Jalankan perintah berikut di terminal:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Setelah file paket Action dibuat, ganti konten placeholder dengan nilai Anda. Berikut ini contoh action.json dengan perubahan untuk ExampleAction:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}

Menentukan Tindakan tambahan

Anda dapat memberikan Action tambahan yang berfungsi sebagai titik entri. Hal ini memungkinkan pengguna membedakan intent mereka dengan mengizinkan mereka menentukan detail selengkapnya tentang apa yang ingin mereka lakukan (misalnya, "Ok Google, bicara dengan ExampleAction untuk mencarikan saya sepatu".).

Untuk menentukan Tindakan tambahan:

  1. Dalam array actions, tentukan Action untuk setiap titik entri.

    Misalnya, kode berikut menampilkan Action "buy" tambahan yang menentukan:
    • Nama intent com.example.ExampleAction.BUY
    • parameters untuk diurai dari input pengguna saat intent ini dipicu. Hal ini berguna jika Anda memerlukan data spesifik dari frasa Action saat pengguna memanggil Action.
    • queryPatterns yang menentukan hal yang perlu dikatakan pengguna untuk memicu intent. Pola kueri dapat menyertakan jenis Schema.org yang menentukan parameter yang akan diurai.
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
          
  2. Tentukan fulfillment untuk intent ini dengan menentukan conversationName yang sesuai dengan item dalam objek conversations.

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

Berikut adalah contoh paket Action lengkap:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    },
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}