Pada umumnya, Anda mengonfigurasi konteks pada waktu desain (saat mem-build agen). Misalnya, jika 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 nanti.
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 konteks penamaan:
Aturan | Contoh |
---|---|
Gunakan nama alfanumerik. | mycontext1 |
Gunakan - atau _ , 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
- Buka konsol Dialogflow ES.
- Pilih agen.
- Pilih Intent di menu sidebar kiri.
- Luaskan bagian Contexts dari data intent.
- Klik kolom Tambahkan konteks output atau Tambahkan konteks input di data intent.
- Masukkan nama untuk konteks, lalu tekan Return.
- Untuk konteks output, klik lingkaran masa aktif secara opsional dan ubah masa aktif.
- Tambahkan konteks lainnya sesuai kebutuhan.
- Klik Simpan.
API
Lihat Referensi intent.
Menetapkan konteks saat runtime
Fulfillment
Saat layanan webhook Anda mengirim
WebhookResponse
,
tetapkan kolom outputContexts
ke konteks aktif yang diinginkan.
API
Permintaan untuk
panggilan detectIntent
jenis
Sessions
berisi kolom queryParameters.contexts
,
yang digunakan untuk menetapkan konteks aktif.
Berikut adalah contoh JSON REST untuk 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 jenis
Contexts
.
Mendapatkan konteks saat runtime
Fulfillment
Saat layanan webhook Anda menerima
WebhookRequest
,
kolom queryResult.outputContexts
akan berisi konteks yang aktif.
API
Respons terhadap panggilan detectIntent
jenis Sessions
berisi kolom queryResult.outputContexts
, yang memberikan daftar konteks aktif.
Berikut adalah contoh JSON REST untuk 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
jenis
Contexts
.