Menentukan Tindakan (Dialogflow)

Tindakan adalah titik entri ke aplikasi Anda yang menentukan pemanggilan dan penemuan khusus untuk aplikasi Anda. Anda mendeklarasikan Tindakan dalam file JSON yang dikenal sebagai paket Action, yang kemudian Anda unggah ke proyek pengembang saat Anda ingin menguji atau mengirimkan project Action Anda untuk disetujui. Paket Action adalah file JSON yang menentukan Action dalam project Action Anda.

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

  • Tindakan Default: Setiap project Action harus memiliki intent sambutan yang bertindak sebagai titik masuk bagi pengguna untuk memulai percakapan. Tujuan sambutannya adalah ketika pengguna secara eksplisit memanggil Action dengan mengucapkan namanya (untuk misalnya, "Ok Google, bicara dengan ExampleAction"). Niat sambutan ini diidentifikasi dengan nama intent actions.intent.MAIN.
  • Tindakan Tambahan untuk deep linking: Anda dapat membuat Tindakan tambahan di paket Action Anda dengan intent yang Anda definisikan sendiri. Hal ini memungkinkan pengguna untuk 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 model pemanggilan ini berfungsi.

Menentukan Tindakan default

Setiap paket Action harus memiliki satu dan hanya satu intent yang menangani actions.intent.MAIN. Intent ini dipicu saat pengguna memanggil Tindakan berdasarkan 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 masing-masing. Berikut adalah 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 memperjelas maksud mereka dengan membiarkan mereka menentukan lebih banyak detail tentang apa yang ingin dilakukan (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 menunjukkan karakter "beli" tambahan Tindakan yang menentukan:
    • Nama intent com.example.ExampleAction.BUY
    • parameters untuk mengurai dari input pengguna saat intent ini dipicu. Hal ini berguna jika Anda memerlukan data spesifik dari frasa {i>Action<i} saat pengguna memanggil Action.
    • queryPatterns yang menentukan apa yang harus dikatakan pengguna untuk memicu intent. Pola kueri dapat menyertakan jenis Schema.org yang mendefinisikan 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 menetapkan 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"
}