Pada umumnya, Anda mengonfigurasi konteks pada waktu desain (saat mem-build agen). Misalnya, ketika 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 adalah, Anda mendeteksi lokasi perangkat dan Anda telah menambahkannya ke konteks, sehingga Anda dapat merujuk ke lokasi tersebut di lain waktu.
Dokumen ini menjelaskan cara mendapatkan dan menyetel konteks pada waktu desain dan runtime dengan 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 adalah huruf kecil saat menggunakan API. | abc123 |
Menetapkan konteks pada waktu desain
Konsol
- Buka Dialogflow ES Console.
- Pilih agen.
- Pilih Intent di menu sidebar kiri.
- Luaskan bagian Context dari data intent.
- Klik kolom Add output context atau Add input context dalam data intent.
- Masukkan nama untuk konteks, lalu tekan Return.
- Untuk konteks output, Anda dapat mengklik lingkaran masa aktif dan mengubah masa aktif.
- Tambahkan konteks lainnya sesuai kebutuhan.
- Klik Simpan.
API
Lihat Referensi intent.
Menetapkan konteks saat runtime
Pemenuhan pemesanan
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 REST JSON 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" } }] } }
Anda juga dapat memanggil metode buat, hapus, dan perbarui kapan saja pada jenis Contexts
.
Mendapatkan konteks saat runtime
Pemenuhan pemesanan
Saat layanan webhook Anda menerima WebhookRequest
, kolom queryResult.outputContexts
akan berisi konteks aktif.
API
Respons terhadap panggilan
detectIntent
jenis Sessions
berisi kolom
queryResult.outputContexts
,
yang menyediakan daftar konteks aktif.
Berikut adalah contoh REST JSON 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", } }
Anda juga dapat memanggil metode get dan list pada jenis
Contexts
kapan saja.