Mengelola konteks

Dalam sebagian besar kasus, Anda mengonfigurasi konteks pada waktu desain (saat Anda membuat agen). Misalnya, saat Anda memiliki frasa pelatihan seperti: "Saya ingin menambahkan pizza ke keranjang belanja saya".

Dalam beberapa skenario lanjutan, Anda mungkin juga ingin menulis kode yang mendapatkan dan menetapkan beberapa konteks saat runtime (selama percakapan langsung). Contohnya, Anda mendeteksi lokasi perangkat dan telah menambahkannya ke konteks, sehingga Anda dapat merujuk ke lokasi tersebut di lain waktu.

Dokumen ini menjelaskan cara mendapatkan dan menetapkan konteks pada waktu desain dan runtime menggunakan Konsol Dialogflow, API, atau fulfillment.

Penamaan konteks

Aturan berikut berlaku untuk penamaan konteks:

Aturan Contoh
Gunakan nama alfanumerik. mycontext1
Gunakan - atau _ dan bukan spasi. my-context-1
Nama tidak peka huruf besar/kecil. Abc123 dan abc123 dianggap setara.
Semua nama konteks menggunakan huruf kecil saat menggunakan API. abc123

Menetapkan konteks pada waktu desain

Konsol

  1. Buka konsol Dialogflow ES.
  2. Pilih agen.
  3. Pilih Intent di menu sidebar kiri.
  4. Luaskan bagian Konteks data intent.
  5. Klik kolom Tambahkan konteks output atau Tambahkan konteks input di data intent.
  6. Masukkan nama untuk konteks, lalu tekan Return.
  7. Untuk konteks output, Anda dapat mengklik lingkaran masa aktif dan mengubah masa aktif. Snapshot UI masa aktif
  8. Tambahkan lebih banyak konteks sesuai kebutuhan.
  9. Klik Simpan.

API

Lihat referensi Intent.

Menetapkan konteks saat runtime

Fulfillment

Saat layanan webhook Anda mengirim a WebhookResponse, tetapkan kolom outputContexts ke konteks aktif yang diinginkan.

API

Permintaan untuk panggilan jenis berisi kolom, yang digunakan untuk menetapkan konteks aktif.SessionsdetectIntentqueryParameters.contexts

Berikut adalah contoh JSON REST dari permintaan detectIntent:

POST https://dialogflow.googleapis.com/v2/{session=projects/*/agent/sessions/*}:detectIntent

{
  "queryInput": {
    "text": {
      "languageCode": "en-US",
      "text": "I would like to add pizza to my shopping cart."
    }
  },
  "queryParams": {
    "contexts": [{
        "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen",
        "lifespanCount": 5,
        "parameters": {
          "product": "Pizza",
          "device-location" "@52.3377871,4.8698096,17z"
        }
      }]
  }
}

Kapan saja, Anda juga dapat memanggil metode create, delete, dan update pada Contexts jenis.

Mendapatkan konteks saat runtime

Fulfillment

Saat layanan webhook Anda menerima a WebhookRequest, kolom queryResult.outputContexts akan berisi konteks aktif.

API

Respons terhadap panggilan Sessions jenis detectIntent berisi kolom queryResult.outputContexts, yang menyediakan daftar konteks aktif.

Berikut adalah contoh JSON REST dari respons detectIntent:

{
  "responseId": "response-id",
  "queryResult": {
    "queryText": "I would like to add pizza to my shopping cart.",
    "parameters": {
      "product": "pizza"
    },
    "allRequiredParamsPresent": true,
    "fulfillmentText": "The product has been added.",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "The product has been added."
          ]
        }
      }
    ],
    "outputContexts": [
      {
        "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen",
        "lifespanCount": 5,
        "parameters": {
          "product": "Pizza",
          "device-location" "@52.3377871,4.8698096,17z"
        }
      }
    ],
    "intent": {
      "name": "projects/project-id/agent/intents/intent-id",
      "displayName": "buy-product"
    },
    "intentDetectionConfidence": 0.8057143,
    "languageCode": "en",
  }
}

Kapan saja, Anda juga dapat memanggil metode get dan list pada Contexts jenis.