Pembahasan dan Implementasi dari Dialogflow Integrasi dan Migrasi Sistem (A)
Oleh :
Ngakan Nyoman Pandika Pinata 1605551015
PROGRAM STUDI TEKNOLOGI INFORMASI FAKULTAS TEKNIK UNIVERSITAS UDAYANA 2018
Pembahasan dan Implementasi dari Dialogflow Chatbot saat ini sudah tidak asing lagi, berbagai perusahaan bisnis baik dari perusahaan olahraga, e-commerce, travel, hotel, bank dan lain sebagainya menggunakan bot untuk menggantikan customer service mereka, menambah pemasukkan dan hal lainnya yang menguntungkan dan berguna bagi perusahaan. Banyak platform service untuk membuat atau membangun sebuah bot seperti Recast.ai, Permabot, Wit.ai, Chatfuel, Kata.ai dan Dialogflow. Pembuatan bot akan dibuat dengan mengguna platform service dari Dialogflow.
Dialogflow
Sumber : Google Developer Blog
Dialogflow merupakan platform untuk membuat bot, dimana platform ini mencocokan kata dari request kemudian diolah oleh “Agent” Machine Learning lalu memberikan umpan balik kepada dengan response dan output data dengan format JSON. Dialogflow menggunakan Google Machine Learning untuk mengolah request yang masuk, Dialogflow juga mendukung 30 bahasa diantaranya, bahasa inggris, hindi, jepang, korea, indonesia, dan lainnya. Dialogflow merupakan web apps yang bisa digunakan oleh siapa saja, baik developer ataupun bukan developer sekalipun, tidak perlu coding untuk membuat aplikasi chatbot yang sederhana. Dialogflow juga menyediakan integrasi dengan code yang dibuat oleh pengguna dengan memakai layanan Cloud Functions for Firebase, Dialogflow akan mengirim HTTP Request dalam JSON kepada Cloud untuk mengintegrasikannya.
2
Pricing pada Dialogflow Tabel 1 Pricing pada Dialogflow
Gratis Standard Edition Bebas penggunaan dengan Text queries unlimited request 1000 request per hari dengan Voice Interaction maksimum 15.000 request per bulan Service Level Tidak ada Aggrement
Komunitas dan email
of Service
Dialogflow ToS
Berbayar Enterprise Edition Unlimited request dengan $0.002 per request Unlimited Cloud Speechto-Text request dengan $0.0065 per 15 detik Dialoglfow Enterprise Edition Service Level Agreement (SLA) Berhak untuk Google Cloud Google Cloud Platform ToS
Tabel 1 menunjukan tabel harga untuk dua tipe dalam Dialogflow yang pertama adalah tipe Standard Edition dan kedua adalah Enterprise Edition, masing-masing tipe memiliki beberapa layanan yang dibatasi sesuai dengan tipe yang dipilih. Tipe Standard Edition cocok untuk bisnis kecil sampai menengah atau yang ingin bereksperimen dan ingin mencoba Dialogflow, sedangkan Enterprise Edition cocok untuk bisnis yang besar untuk menjangkau lebih banyak pengguna untuk mendapatkan keuntungan.
Fitur Dialogflow Dialogflow memiliki beberapa fitur yang dapat digunakan oleh pengguna. Fitur tersebut antar lain: 1.
Multi-language Agents Dialogflow menyediakan fitur multi-languange dimana dalam satu agen dapat menggunakan dua bahasa atau lebih maksimal 15 bahasa, fitur ini diperuntukan kepada pengguna agar bot yang dibuat dapat merespon dalam berbagai bahasa.
2.
Intents Intents merupakan fitur yang digunakan untuk mengenali apa yang inginkan, dalam intents akan dibuat apa yang katakan dan aksi apa yang seharusnya diambil. Intent memiliki beberapa komponen diantaranya adalah Training Phrases dimana tempat untuk menginputkan kata maupun kalimat yang akan
3
dikatakan oleh , walau tidak ada dalam list Machine Learning Model akan mendeteksi kalimat dan mencocokan dari beberapa kalimat contoh yang telah dibuat sebelumnya, kedua Actions and Parameters ini merupakan fitur yang digunakan untuk mendefinisikan suatu kata kedalam suatu aksi yang berisi entity dan parameter value dari Actions, ketiga Response merupakan kalimat yang akan diterima oleh berdasarkan kalimat yang diterima, dan yang terakhir Context merupakan fitur untuk menyimpan informasi dari percapakan sebelumnya untuk dilanjutkan ke dalam percakapan selanjutnya. 3.
Entities Entities merupakan fitur yang digunakan untuk mengambil parameter value dari query yang dikirim oleh . Entities dibagi menjadi tiga yaitu, pertama System entities merupakan entites yang dibuat langsung oleh Dialogflow seperti @sys.time,
@sys.date,
@sys.email,
@sys.phone-number,
dan
masih banyak lagi, kedua Developer entities merupakan entities yang dibuat oleh developer sendiri, dan ketiga entites merupakan entities yang dibuat berdasarkan session id dari seperti barang yang pernah dibeli atau playlist dari . 4.
Fulfillment Fullfilment merupakan fitur yang digunakan untuk menghubungkan Dialogflow dengan code eksternal yang dimiliki oleh developer, terdapat dua pilihan dalam fitur fullfilment yang pertama yaitu webhook dimana developer memberikan alamat web service di Dialogflow kemudian web service menerima POST request dari Dialogflow untuk mencocokan data apa yang akan diambil berdasarkan query , kedua Cloud Functions for Firebase yang disediakan pada Dialogflow dengan menggunakan bahasa pemrograman Javascript.
5.
Integrations Integrations merupakan fitur yang digunakan untuk menghubungkan Dialogflow dengan platform Instant Messaging. Bot yang dibuat pada Dialogflow dapat diintegrasikan ke dalam beberapa aplikasi instant messaging diantaranya Google Assistant, Facebook Messenger, Slack, Viber, Twitter, Twilio, Skype, Tropo, Telegram, Kik, Line, Cisco Spark, Amazon Alexa dan Microsoft Cortana.
4
6.
Training Training merupakan fitur yang digunakan untuk melatih agent yang dibuat developer. Fitur Training ini dapat digunakan untuk memperbaiki agent ketika terdapat request yang tidak mendapatkan response, memudahkan developer untuk memperbaikinya.
7.
History History merupakan fitur yang digunakan untuk melihat riwayat pesan masuk dan response yang dikirim agent, fitur ini digunakan untuk mempermudah developer men-debug agent bot yang telah dibuat.
8.
Analytic Analytic merupakan fitur yang digunakan untuk mengalisis bagaimana agent yang telah dibuat dapat bekerja dengan baik, jadi developer bisa memperbaiki agent bot yang telah dibuat untuk dapat memberikan experience yang baik.
9.
Prebuilt Agent Prebuilt Agent merupakan fitur yang diberikan kepada developer agar lebih mudah untuk membuat agent, karena dalam fitur ini terdapat beberapa Agent yang sudah setengah jadi, sehingga dapat dimodifikasi sesuai kebutuhan developer.
Implementasi Dialogflow Implementasi platform service Dialogflow pada bagian ini akan membahas membuat Bot untuk melayani janji untuk service handphone dan pembelian handphone pada Bisnis Lokal Anyelir Ponsel, bot akan dapat memberikan informasi waktu toko buka dan membuat janji untuk service handphone dan pembelian handphone, beberapa hal yang dikerjakan adalah merespon queries , mengambil informasi detail seperti tanggal;waktu, dan meintegrasikan dengan beberapa instant messaging seperti Telegram dan LINE. Tampilan mengenai bot yang telah dibuat dapat dilihat pada Gambar 1.
5
Gambar 1 Tampilan Bot pada Telegram dan LINE
Gambar 1 merupakan tampilan dari hasil bot yang telah dibuat dengan menggunakan Dialogflow, dapat dilihat bot menggunakan bahasa inggris dikarenakan jika menggunakan bahasa indonesia beberapa fitur masih belum sempurna. Skema integrasi Dialogflow dengan Telegram dan LINE dapat dilihat pada Gambar 2.
Google Cloud Platform
AnyelirPonsel Agent
Google Machine Learning
Gambar 2 Skema AnyelirPonsel Agent terintegrasi dengan Telegram dan LINE
Gambar 2 merupakan skema dari agent bot AnyelirPonsel yang akan diintegrasikan dengan dua layanan instant messaging yaitu Telegram dan LINE, Agent dari Dialogflow menggunakan Google Machine Learning yang berjalan pada Google Cloud Platform.Tahapan pembuatan bot tersebut adalah sebagai berikut.
6
Create Agent Pertama yang harus dilakukan adalah membuat agent dengan cara terlebih dahulu pada halaman https://console.dialogflow.com/api-client/#/, setelah itu anda ditujukan pada halaman untuk membuat bot kemudian akan ditujukan pada halaman console tempat konfigurasi bot. Pembuatan awal agent dapat dilihat pada Gambar 3.
Gambar 3 Tampilan Create Agent
Gambar 3 merupakan tampilan pembuatan agent, dapat dilihat beberapa fields yaitu bahasa yang akan digunakan, zona waktu yang akan digunakan dan google project yaitu untuk cloud function.
Dashboard Console Dialogflow
Gambar 4 Tampilan Dashboard Dialogflow
7
Gambar 4 merupakan tampilan dashboard console dari Dialogflow dapat dilihat beberapa menu yang terdapat dalam dialogflow seperti agent settings, intents, entities, fulfillment, integrations, training, history, analytic, prebuild agents, dan lainnya.
Create Intent Secara default sudah tersedia dua intent, yaitu default welcome intent yang berfungsi sebagai greetings dan default fallback intent yang berfungsi memberikan umpan balik kepada yang dimana query tidak dapat dimengerti oleh agent. Tampilan edit response welcome intent dapat dilihat pada Gambar 5.
Gambar 5 Tampilan Edit Response Welcome Intent
Gambar 5 merupakan tampilan edit response pada Welcome Intent, dapat dilihat pengguna dapat mengubah response, menambahkan response, atau menambahkan response pada setiap aplikasi instant messaging seperti Telegram dan terdapat jenis response seperti text,image,card,quick replies ataupun custom payload untuk Telegram.
8
Create Hours Intent Hours Intent dibuat untuk menangani yang menanyakan kapan toko buka atau hari apa saja toko buka. Tampilan Hours Intent dapat dilihat pada Gambar 6.
Gambar 6 Tampilan Hours Intent
Gambar 6 merupakan tampilan Hours Intent, dapat dilihat pada Gambar 5 Hours Intent terdapat beberapa expression pada training phrases ini digunakan untuk melatih agent agar dapat menangani pertanyaan yang mungkin cocok dengan training phrases dan responses terdapat text response yang berisi kalimat kapan toko terbuka.
Create Make Appointment Intent Make Appointment Intent dibuat untuk menangani yang ingin membuat janji untuk datang ke toko. Tampilan Make Appointment Intent dapat dilihat pada Gambar 7.
9
Gambar 7 Tampilan Training Phrases pada Make Appointment Intent
Gambar 7 merupakan tampilan training phrases pada Make Appointment Intent, dapat dilihat pada Gambar 7 beberapa kata terdapat warna kuning dan oranye, warna pada kata tersebut merupakan entities yang berlaku pada kata. Kata “next week” merupakan entities dari @sys.date.
Gambar 8 Tampilan Action and parameters pada Make Appointment Intent
Gambar 8 merupakan tampilan action and parameters pada Make Appointment Intent, dapat dilihat pada Gambar 8 terdapat dua parameter dengan entity @sys.date dan @sys.time,
juga terdapat value dengan tag $date dan $time. Action and parameters
10
ini untuk mengambil query yang diberikan kemudian mengubahnya menjadi informasi yang tepat sesuai entity yang ditentukan.
Gambar 9 Tampilan Response pada Make Appointment Intent
Gambar 9 merupakan tampilan response pada Make Appointment Intent, dapat dilihat pada Gambar 9 terdapat kalimat yang berisi parameter value @sys.date yaitu $date dan $time. Tahapan berikutnya adalah membuat follow-up intent, follow-up intent
merupakan anak intent dari suatu intent. Intent yang dibuat untuk menangani akan melakukan service atau membeli handphone baru, menangani hal tersebut dibuat sebuah developer entities yaitu ServiceType yang dapat dilihat pada Gambar 10.
Gambar 10 Tampilan ServiceType Entities
Gambar 10 merupakan tampilan ServiceType entities pada agent AnyelirPonsel, dapat dilihat pada Gambar x ServiceTyppe entities memiliki dua entry data yaitu “repair” dan “buy a phone” dengan masing-masing sinonim yang dimiliki. Tahap berikutnya adalah membuat follow-up intent dari Make Appointment.
11
Gambar 11 Tampilan Training phrases pada Follow-up intent Make Appointment
Gambar 11 merupakan tampilan training phrases pada follow-up intent Make Appointment, dapat dilihat pada Gambar 6 beberapa kata terdapat warna oranye, warna pada kata tersebut merupakan entities yang berlaku pada kata. Kata “service”,”buy a phone” merupakan entities dari @ServiceType yang telah dibuat.
Gambar 12 Tampilan Action and parameters pada follow-up intent Make Appointment
Gambar 12 merupakan tampilan action and parameters pada follow-up intent Make Appointment, dapat dilihat pada Gambar 6 terdapat satu parameter dengan entity @ServiceType,
terdapat value dengan tag $ServiceType.
12
Gambar 13 Tampilan Response pada follow-up intent Make Appointment
Gambar 13 merupakan tampilan response pada follow-up intent Make Appointment, dapat dilihat pada Gambar 6 terdapat kalimat yang berisi parameter value @ServiceType yaitu $ServiceType, kalimat tersebut juga berisi context dari percakapan
sebelumnya
yaitu
$MakeAppointmen-followup.date
$MakeAppointmen-followup.time
untuk
tanggal
dan
untuk waktu. Tahapan berikutnya adalah membuat
intent untuk percakapan terakhir, yaitu Thanks Intent. Thanks Intent dapat dilihat pada Gambar 14.
13
Gambar 14 Tampilan Training phrases dan Responses Thanks Intent
Gambar 14 merupakan tampilan training phrases dan responses pada Thanks Intent, dapat dilihat pada responses dipilih sebagai akhir percakapan dengan cara mentoggle “Set this intent as end of conversation”.
Alur Kerja Dialogflow Dialogflow Platform Input message Query
Intent Selection
Response message
Action
Gambar 15 Alur Kerja Agent AnyelirPonsel pada Dialogflow
Gambar 15 merupakan alur kerja dari agent AnyelirPonsel pada Dialogflow diawali dengan memberikan atau mengirim pesan kemudian Dialogflow menerima pesan tersebut lalu diubah menjadi query kemudian dilakukannya pencocokan intent sesuai query yang diberikan dengan Google Machine Learning untuk mendapatkan intent yang benar, setelah itu dibuat sebuah action apa yang harus dilakukan oleh agent Dialogflow kemudian mengirim response message kepada . Data dari pesan yang dikirim dan response message yang dikirim oleh agent dapat dilihat pada History dalam menu Dialogflow.
14
DAFTAR PUSTAKA
DialogFlow. (2018). Dilihat pada 3 Juni 2018 dari Dialogflow: https://dialogflow.com
15