views.py

 avatar
unknown
django
3 years ago
29 kB
8
Indexable
from django.shortcuts import render
from django.views.decorators.http import require_POST
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json

from numpy.core.fromnumeric import prod
from main.models import Berlangganan, BatalBerlangganan, Komplain, BatalPertemuan, UbahPertemuan, Pertemuan, FreeTrial

from utils.bot_BERT import predict as predict_with_bert
from utils.bot_LSTM import predict as predict_with_lstm
from utils.bot_response import predict as predict_response

def index(request):
    context = {
        'title': 'Chatbot',
        'context': 'Intent Detection',
    }
    return render(request, 'index.html', context)


@require_POST
@csrf_exempt
def response_view(request):
    userInput = json.loads(request.body.decode("utf-8"))
    print(f"USER INPUT: {userInput}")
    response_bert = predict_with_bert(userInput)
    response_lstm = predict_with_lstm(userInput)
    response_training = predict_response(userInput)
    response_from = response_bert
    print(response_bert.keys())
    if len(response_bert.keys()) == 0:
        response_from = response_lstm.keys()
    if "Formulir" in userInput:
        if "Formulir Pertemuan" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            if ("nama klien:" not in userInput or "tanggal_pertemuan:" not in userInput 
                or "jam:" not in userInput or "agenda_pertemuan:" not in userInput or "no_handphone:" not in userInput
                or '' in split) :
                response_bot = "Mohon isi formulir dengan lengkap"
            else :
                nama = split[2]
                tanggal = split[4]
                jam = split[6]
                agenda= split[8]
                no_handphone= split[10]
                list1 = Pertemuan(nama_klien=nama, tanggal=tanggal, jam = jam, agenda = agenda, nomor_handphone=no_handphone)
                list1.save()
                response = "Terima kasih, pertemuan dengan nomor pertemuan " + "{}".format(list1.id) + " pada tanggal " + list1.tanggal + " jam " + list1.jam + ", akan segera kami proses. Mohon simpan nomor pertemuan untuk keperluan verifikasi."
                response_bot = response
        elif "Formulir Pembatalan Pertemuan" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            if ("nama klien:" not in userInput or "id_pertemuan:" not in userInput 
                or "alasan_pembatalan:" not in userInput or '' in split) :
                response_bot = "Mohon isi formulir dengan lengkap"
            else :
                id_pertemuan = int(split[2])
                nama = split[4]
                alasan_pembatalan = split[6]
                try:
                    cek_id = Pertemuan.objects.get(id=id_pertemuan)
                    tanggal = cek_id.tanggal
                    jam = cek_id.jam
                    agenda = cek_id.agenda
                    no_handphone = cek_id.nomor_handphone
                    print(cek_id)
                    list1 = BatalPertemuan(nama_klien=nama, tanggal=tanggal, jam = jam, agenda = agenda, nomor_handphone=no_handphone, alasan_pembatalan=alasan_pembatalan)
                    list1.save()
                    cek_id.delete()
                    response = "Pertemuan atas nama " + nama + " tanggal " + tanggal + ", pukul " + jam + " telah kami batalkan. ada lagi yang bisa saya bantu?"
                except:
                    response = "mohon maaf, id pertemuan tidak terdaftar. Silakan masukan ulang formulir atau hubungi WhatsApp kami di +62 813-1044-5410 untuk mengubah jadwal pertemuan"
                response_bot = response
        elif "Formulir Pembatalan Pertemuan" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            if ("nama klien:" not in userInput or "id_pertemuan:" not in userInput 
                or "alasan_pembatalan:" not in userInput or '' in split) :
                response_bot = "Mohon isi formulir dengan lengkap"
            else :
                id_pertemuan = int(split[2])
                nama = split[4]
                alasan_pembatalan = split[6]
                try:
                    cek_id = Pertemuan.objects.get(id=id_pertemuan)
                    tanggal = cek_id.tanggal
                    jam = cek_id.jam
                    agenda = cek_id.agenda
                    no_handphone = cek_id.nomor_handphone
                    print(cek_id)
                    list1 = BatalPertemuan(nama_klien=nama, tanggal=tanggal, jam = jam, agenda = agenda, nomor_handphone=no_handphone, alasan_pembatalan=alasan_pembatalan)
                    list1.save()
                    cek_id.delete()
                    response = "Pertemuan atas nama " + nama + " tanggal " + tanggal + ", pukul " + jam + " telah kami batalkan. ada lagi yang bisa saya bantu?"
                except:
                    response = "mohon maaf, id pertemuan tidak terdaftar. Silakan masukan ulang formulir atau hubungi WhatsApp kami di +62 813-1044-5410 untuk mengubah jadwal pertemuan"
                response_bot = response
        elif "Formulir Perubahan Jadwal Pertemuan" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            if "nama_klien:" not in userInput or "id_pertemuan:" not in userInput or "tanggal:" not in userInput or "jam:" not in userInput or "agenda:" not in userInput or "nomor_handphone:" not in userInput or "tanggal_baru:" not in userInput or "jam_baru:" not in userInput or '' in split:
                response = "Mohon isi formulir dengan lengkap"
            else:
                print(split)
                id_pertemuan = int(split[2])
                nama = split[4]
                tanggal =  split[6]
                waktu = split[8]
                agenda = split[10]
                nomor = split[12]
                tanggal_baru = split[14]
                waktu_baru = split[16]
                try:
                    cek_id = Pertemuan.objects.get(id=id_pertemuan)
                    print(cek_id)
                    list1 = UbahPertemuan(nama_klien=nama, tanggal=tanggal, jam=waktu, agenda=agenda, nomor_handphone=nomor, tanggal_baru=tanggal_baru, jam_baru=waktu_baru)
                    list1.save()
                    response = "Perubahan jadwal menjadi tanggal " + list1.tanggal_baru + ", pukul " + list1.jam_baru + "telah kami sampaikan. ada lagi yang bisa saya bantu?"
                except:
                    response = "mohon maaf, id pertemuan tidak terdaftar. Silakan masukan ulang formulir atau hubungi WhatsApp kami di +62 813-1044-5410 untuk mengubah jadwal pertemuan"
            response_bot = response
        elif "formulir komplain" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            if "nama klien:" not in userInput or "nama produk:" not in userInput or "masalah:" not in userInput or '' in split:
                response = "Mohon isi formulir dengan lengkap"
            else :
                nama1 = split[2]
                produk =  split[4]
                komplain = split[6]
                list1 = Komplain(nama_klien=nama1, nama_produk=produk, masalah=komplain)
                list1.save()
                response = "Terima kasih, masalah anda pada produk " + list1.nama_produk + ", yaitu '" + list1.masalah + "', akan disampaikan kepada tim kami untuk segera ditindak lanjuti. Ada lagi yang bisa saya bantu?"
            response_bot = response
        elif "Formulir Berlangganan" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            print(split)
            if "nama_klien" in split and "nomor_telepon" in split and "nama_produk" in split and "durasi_berlangganan" in split and '' not in split:
                nama = split[2]
                no_handphone = split[4]
                produk = split[6]
                durasi= split[8]
                list1 = Berlangganan(nama_klien=nama, no_handphone=no_handphone, produk=produk, durasi=durasi)
                list1.save()
                response = "Terima kasih, langganan anda dengan nomor id langganan " + "{}".format(list1.id) + " pada produk " + list1.produk + " selama " + list1.durasi + ", akan segera kami proses. Mohon simpan nomor id langganan untuk keperluan verifikasi."
            else:
                response = "Mohon isi formulir dengan lengkap"
            response_bot = response
        elif "Formulir Pembatalan Berlangganan" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            if "id_berlangganan" not in split or "nama_klien" not in split or "alasan_pembatalan" not in split or '' in split:
                response = "Mohon isi formulir dengan lengkap"
            else:
                id_berlangganan = int(split[2])
                nama = split[4]
                alasan_pembatalan = split[6]
                try:
                    cek_id = Berlangganan.objects.get(id=id_berlangganan)
                    produk = cek_id.produk
                    no_handphone = cek_id.no_handphone
                    print(cek_id)
                    list1 = BatalBerlangganan(nama_klien=nama, no_handphone=no_handphone, produk=produk, alasan=alasan_pembatalan)
                    list1.save()
                    cek_id.delete()
                    response = "Permohonan pembatalan berlangganan atas nama " + nama + ", untuk produk " + produk + " telah disampaikan dan akan segera kami proses. ada lagi yang bisa saya bantu?"
                except:
                    response = "mohon maaf, id berlangganan tidak terdaftar. Silakan masukan ulang formulir atau hubungi WhatsApp kami di +62 813-1044-5410 untuk melakukan pembatalan berlangganan"
            response_bot = response
        elif "Formulir Tambah Billing" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            if "id_berlangganan:" not in userInput or "nama_klien:" not in userInput or "no_handphone:" not in userInput or "nama_produk:" not in userInput or "durasi:" not in userInput or '' in split:
                response = "Mohon isi formulir dengan lengkap"
            else:
                id_berlangganan = int(split[2])
                nama = split[4]
                nomor =  split[6]
                produk = split[8]
                durasi = split[10]
                try:
                    cek_id = Berlangganan.objects.get(id=id_berlangganan)
                    print(cek_id)
                    str = cek_id.durasi
                    str = str + "+ " + durasi
                    cek_id.durasi = str
                    cek_id.save()
                    response = "Terimakasih, anda telah meminta tambahan durasi langganan selama" + durasi + " silakan tunggu pesan konfirmasi dari pihak kami. ada lagi yang bisa saya bantu?"
                except:
                    response = "Mohon maaf, id langganan tidak terdaftar. Silakan masukan ulang formulir atau hubungi WhatsApp kami di +62 813-1044-5410 untuk menambah durasi langganan"
            response_bot = response
        elif "Formulir Free Trial" in userInput:
            repl = userInput.replace('\n', ':')
            split = repl.split(':')
            if "nama_klien:" not in userInput or "no_handphone:" not in userInput or "nama_produk:" not in userInput or '' in split:
                response = "Mohon isi formulir dengan lengkap"
            else:
                repl = userInput.replace('\n', ':')
                split = repl.split(':')
                nama = split[2]
                nomor =  split[4]
                produk = split[6]
                list1 = FreeTrial(nama_klien=nama, no_handphone=nomor, produk=produk)
                list1.save()
                response = "Terima kasih, anda telah memesan free trial untuk produk " + list1.produk + ".Silakan tunggu konfirmasi dari pihak kami. Ada lagi yang bisa saya bantu?"
            response_bot = response
        
    elif "produk" in response_from:
        if "instal" in userInput:
            if "waktoo" in userInput:
                response_bot = "Panduan installasi dan penggunaan waktoo dapat dilihat di channel youtube berikut https://www.youtube.com/channel/UC3_h22QjWKTMNlTWrj0wMgA "
            elif "media monitoring" in userInput:
                response_bot = "Panduan installasi dan penggunaan media monitoring dapat dilihat pada dashboard user"
            else:
                response_bot = "Untuk panduan installasi dan penggunaan silakan menghubungi WhatsApp kami di +62 813-1044-5410"
        elif "keunggulan" in userInput or "kelebihan" in userInput:
            response_bot = "Produk Kazee merupakan produk asli buatan anak bangsa dengan kekayaan data yang dimiliki"
        else:
            if "image" in userInput:
                response_bot = "Produk Kazee Image Analytics dapat membantu Anda untuk menganalisis sensor kamera serta mengekstrak informasi dari gambar dan images recognition. <br> Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/kazee-image-analytics"
            elif "waktoo" in userInput or "absensi" in userInput:
                response_bot = "Waktoo adalah aplikasi absensi online sekaligus monitoring pegawai berbasis mobile yang menyediakan fitur validasi dan tracking terbaik serta perhitungan gaji dan potongan pegawai. <br> Menggunakan fitur validasi terbaik untuk keamanan yang terpercaya. <br> Anda bisa melihat lebih lengkapnya melalui link berikut https://waktoo.com/ <br> Video demo untuk Waktoo ada pada link berikut https://www.youtube.com/watch?v=dDmw2ldgdkI&t=30s"
            elif "crm" in userInput or "customer analytics" in userInput:
                response_bot= "Produk CRM dan customer analytics digunakan untuk membangun hubungan jangka panjang dengan pelanggan Anda dan mendapatkan pelanggan secara efektif. <br> Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/crm"
            elif "advertising" in userInput or "ads" in userInput:
                response_bot= "Produk Kazee Advertising Analysis akan memberdayakan penerbit, pengembang aplikasi, influencer, dan media dengan pemahaman pemasaran digital yang kuat untuk mendukung monetisasi iklan. <br> Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/ads"
            elif "robo" in userInput:
                response_bot = "Produk Kazee Robo merupakan produk yang bisa membantu Anda dapat mengumpulkan, mengintegrasikan, serta mengelola data dalam skala data yang besar. <br> Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/kazee-robo"
            elif "odin" in userInput:
                response_bot = "Produk Kazee Odin merupakan layanan yang bisa mendapatkan wawasan dari data yang anda miliki untuk pengambilan keputusan yang lebih baik. <br> Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/kazee-odin"
            elif "sherlock" in userInput:
                response_bot = "Produk Kazee Sherlock merupakan layanan untuk otomatisasi dan prediksi dengan menggunakan Machine Learning dan AI. <br> Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/kazee-sherlock"
            elif "social media analytics" in userInput or "analitik" in userInput:
                response_bot = "Kazee Social Media Analytics merupakan produk yang bisa merubah data media sosial Anda menjadi wawasan yang dapat ditindaklanjuti untuk meningkatkan kemampuan pemasaran Anda. <br> Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/social-media-analytics"
            elif "profilling" in userInput or "profiling" in userInput:
                response_bot= "Social Media Profiling merupakan produk untuk mengelola kebutuhan sosial media Anda sehingga bisa digunakan untuk semua kalangan. Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/social-media-profiling"
            elif "monitoring" in userInput:
                response_bot= "Layanan Media Monitoring digunakan untuk mengetahui respon pelanggan dan memonitor kompetitor Anda. Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/social-media-monitoring"
            elif "bot" in userInput:
                response_bot= "Produk Kazee Bot merupakan produk chatbot yang mana bisa berintekraksi dengan pelanggan melalui chatting. Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/kazee-bot"
            elif "iot" in userInput:
                response_bot= "Produk IoT Analytics Solution yang dapat membantu Anda untuk menghubungkan dan mengintegrasikan sumber data sensor besar Anda ke dalam sistem terstruktur untuk mendapatkan wawasan dan meningkatkan proses bisnis Anda. Anda bisa melihat lebih lengkapnya melalui link berikut https://kazee.id/products/iot-analytics-solutions"
            else :
                response_bot = "Mohon maaf, produk yang Anda cari tidak terdapat pada layanan kami. Layanan yang kami sediakan diantaranya, Data Analytics (Kazee Robo, Kazee Odin dan Kazee Sherlock) , Media Analytics (Social Media Analytics, Social Media Profilling dan Media Monitoring), IoT Analytics and AI ( Kazee Bot, IoT Analytics Solution, dan Kazee Image Analytics), Customer Relationship Managemenet (CRM), People Analytics, dan Advertising Analytics. Silakan mengunjungi website kazee di kazee.id untuk informasi lebih lengkap tentang layanan kami"
    elif "pertemuan" in response_from:
        if "lakukan" in userInput or "jadwalkan" in userInput or "rencana" in userInput or "buatkan" in userInput or "adakan" in userInput or "harus ada pertemuan" in userInput:
            response_bot = "untuk membuat jadwal pertemuan silakan copy dan isi formulir berikut (sertakan judul formulir)"
        elif "cancel" in userInput or "berhalangan" in userInput or "batal" in userInput or "tidak jadi" in userInput or "berhalangan" in userInput or "ganti" in userInput or "tidak bisa" in userInput:
            response_bot = "untuk membatalkan jadwal pertemuan silakan copy dan isi formulir berikut (sertakan judul formulir)"
        elif "ubah" in userInput or "reschedule" in userInput or "tunggu" in userInput or "tunda" in userInput or "indahkan" in userInput:
            response_bot = "untuk mengubah jadwal pertemuan silakan copy dan isi formulir berikut (sertakan judul formulir)"
        else :
            response_bot = response_training
    elif "komplain" in response_from:
        if "komplain" in userInput or "jelek" in userInput or "error" in userInput or "bermasalah" in userInput or "goreng" in userInput or "tidak bisa" in userInput or "tidak mau" in userInput or "susah" in userInput:
            response_bot = "mohon maaf atas ketidaknyamanannya,  kemungkinan server sedang sibuk atau layanan sedang dalam perbaikan. apabila permasalahan masih berlanjut, silakan copy dan isi formulir berikut (sertakan judul formulir) agar kami dapat segera memperbaiki masalah tersebut."
        else :
            response_bot = response_training
    elif "langganan" in response_from:
        if "cancel" in userInput or "berhenti" in userInput or "stop" in userInput:
            response_bot = "pembatalan berlangganan diperbolehkan jika dalam keadaan force majeure atau ada dalam kontrak perjanjian. untuk melakukan pembatalan berlangganan silakan copy dan isi formulir di bawah ini"
        elif "trial" in userInput or "coba" in userInput or "nyobain" in userInput:
            response_bot = "kami menyediakan free trial selama 1-2 minggu. untuk mendapatkan free trial silakan copy dan isi formulir berikut (sertakan judul formulir)"
        elif "billing" in userInput or "perpanjang" in userInput or "tambah" in userInput or "extend" in userInput or "nambah" in userInput:
            response_bot = "untuk menambah durasi langganan silakan copy dan isi formulir berikut ini (sertakan pula judul formulir)"
        elif "minimal" in userInput or "bentar" in userInput:
            response_bot = "Untuk minimal durasi berlangganan pada layanan kami adalah 3 bulan."
        elif "maximal" in userInput or "maksimal" in userInput or "paling lama" in userInput:
            response_bot = "Untuk maksimal durasi berlangganan pada layanan kami adalah tidak terbatas."
        elif "cicil" in userInput or "nyicil" in userInput:
            response_bot = "Cicilan dapat dilakukan dengan pembayaran dilakukan setiap bulan 10 hari setelah diterimanya invoice"
        elif "diskon" in userInput or "discount" in userInput or "potongan harga" in userInput:
            response_bot = "Terdapat diskon untuk berlangganan dalam waktu dan jumlah tertentu. Hubungi kami lebih lanjut WhatsApp kami di +62 813-1044-5410."
        elif "demo" in userInput :
            response_bot = "Untuk mendapatkan demo, silakan isi formulir di https://kazee.id/request-demo . silakan hubungi WhatsApp kami di +62 813-1044-5410 untuk informasi lebih lanjut mengenai perpanjangan durasi langganan. "
        elif "harga" in userInput or "biaya" in userInput:
            if "odin" in userInput or "sherlock" in userInput or "robo" in userInput or "data analytics" in userInput:
                response_bot = "Mohon maaf, daftar harga untuk produk tersebut tidak tersedia, silakan hubungi kami di WhatsApp +62 813-1044-5410 untuk informasi lebih lanjut"
            elif "media monitoring" in userInput or "social media profiling" in userInput or "social media analytics" in userInput or "crm" in userInput:
                response_bot = "Layanan media analytics (Social Media Profilling, Social Media Analytics, dan Media Monitoring) memiliki harga perbulan dengan 3 paket berbeda yang dapat dikostumisasi. <br>Paket Profesional dengan estimasi harga Rp8.500.000 / per bulan, tidak mendapatkan bantuan pembuatan laporan.<br>Paket Enterprise dengan estimasi harga Rp10.500.000 / per bulan, sudah mendapatkan bantuan analisis dari tim kazee.<br>Paket Ultimate dengan estimasi harga Rp15.000.000 / per bulan, sudah mendapatkan bantuan analisis lebih lanjut  dan laporan insight khusus dari tim kazee"
            elif "profesional" in userInput:
                response_bot = "Untuk paket Profesional, memiliki beberapa fitur atau fungsionalitas yaitu Unlimited Query Search; 1 User Account; 5 Topik; News Monitoring; Twitter, Youtube, IG, and FB Source; Sentiment Analysis; Buzzer Analysis; Realtime News; dan Issue Extraction."
            elif "enterprise" in userInput :
                response_bot = "Untuk paket Enterprise, memiliki beberapa fitur atau fungsionalitas yaitu Unlimited Query Search; 3 akun user; 10 topik; News Monitoring; Twitter, Youtube, IG, FB Source; Sentiment Analysis; Buzzer analysis; Realtime News; Issues Extraction; Trend Analytics; Offline News Clip (22 sources); PDF Report Monthly."
            elif "ultimate" in userInput:
                response_bot = "Untuk paket Ultimate, memiliki beberapa fitur dan fungsionalitas, yaitu Unlimited Query Search; 3 akun user; 10 topik; News Monitoring; Twitter, Youtube, IG, FB Source; Sentiment Analysis; Buzzer analysis; Realtime News; Issues Extraction; Trend Analytics; Offline News Clip (22 sources); PDF Report Monthly; Social Network Analysis; Comparison/Competitor Analytics; Exclusive Selected Indutry Insights e-magazine; dan Social Listening (5 Akun profile Social media)."
            elif "custom" in userInput:
                response_bot = "Jika fitur yang anda inginkan tidak ada dalam paket, anda dapat memilih fitur-fitur yang anda inginkan, dengan harga yang akan sesuai dengan fitur-fitur yang anda masukkan pada paket yang anda inginkan."
            elif "waktoo" in userInput:
                response_bot = "Layanan Waktoo memiliki harga Rp10.000 per bulan untuk satu akun."
            elif "image analytics" in userInput:
                response_bot = "Mohon maaf, daftar harga untuk produk tersebut tidak tersedia, silakan hubungi kami di WhatsApp +62 813-1044-5410 untuk informasi lebih lanjut"
            elif "daftar harga" in userInput or "list harga" in userInput:
                response_bot = " Daftar harga yang tersedia adalah sebagai berikut: <br> <br> Layanan media analytics (Social Media Profilling, Social Media Analytics, dan Media Monitoring) memiliki harga perbulan dengan 3 paket berbeda yang dapat dikostumisasi.<br>Paket Profesional dengan estimasi harga Rp8.500.000 / per bulan, tidak mendapatkan bantuan pembuatan laporan.<br>Paket Enterprise dengan estimasi harga Rp10.500.000 / per bulan, sudah mendapatkan bantuan analisis dari tim kazee.<br>Paket Ultimate dengan estimasi harga Rp15.000.000 / per bulan, sudah mendapatkan bantuan analisis lebih lanjut  dan laporan insight khusus dari tim kazee.<br>Layanan Waktoo memiliki harga Rp10.000 per bulan untuk satu akun."
            else:
                response_bot = response_training
        elif "refund" in userInput or "uang kembali" in userInput or "kembalikan uang" in userInput:
            response_bot = "Mohon maaf kazee tidak dapat memberikan refund. Refund hanya dapat dilakukan apabila kondisi Anda termasuk dalam kategori Force Majeure. silakan hubungi kami di WhatsApp +62 813-1044-5410 untuk informasi lebih lanjut."
        elif "bayar" in userInput:
            if "mandiri" in userInput or "bni" in userInput or "bri" in userInput or "bca" in userInput or "lewat apa" in userInput or "metode" in userInput or "cara pembayaran" in userInput or "melakukan pembayaran" in userInput:
                response_bot = "Kami menyediakan metode pembayaran melalui rekening bank, diantaranya, Mandiri, BRI, BNI, dan BCA."
            elif "susah" in userInput or "gabisa" in userInput or "sudah" in userInput or "tidak dapat" in userInput or "tidak bisa" in userInput or "gagal" in userInput:
                response_bot = "Jika transaksi gagal, silakan hubungi customer service bank anda. Untuk embayaran kami menyediakan metode pembayaran melalui rekening bank, diantaranya, Mandiri, BRI, BNI, dan BCA."
            else:
                response_bot = "Mohon maaf, kami hanya menyediakan metode pembayaran melalui rekening bank, diantaranya, Mandiri, BRI, BNI, dan BCA."
        elif "langgan" in userInput and "bulan" in userInput:
            bulan = int(''.join([c for c in userInput if c.isdigit()]))
            print (bulan)
            if "sebulan" in userInput or "dua bulan" in userInput:
                response_bot = "Mohon maaf, untuk minimal durasi berlangganan pada layanan kami adalah 3 bulan."
            elif bulan < 3:
                response_bot = "Mohon maaf, untuk minimal durasi berlangganan pada layanan kami adalah 3 bulan."
            else :
                response_bot = "Tentu saja bisa."
        elif "langgan" in userInput and "tahun" in userInput:
            response_bot = "Tentu saja bisa."
        elif "langgan" in userInput and "taun" in userInput:
            response_bot = "Tentu saja bisa."
        elif "langgan" in userInput and "minggu" in userInput:
            response_bot = "Mohon maaf, untuk minimal durasi berlangganan pada layanan kami adalah 3 bulan."
        else :
            if "langgan" in userInput :
                response_bot = "untuk berlangganan silakan COPY dan ISI formulir berikut (sertakan judul formulir)"
            else :
                response_bot = response_training
    else:
        if "loker" in userInput or "lowongan" in userInput or "baru" in userInput:
            response_bot = "Untuk mengetahui tentang lowongan pekerjaan yang tersedia saat ini, silakan kunjungi https://kazee.id/career "
        elif (len(response_bert.keys())==1 and "pembuka" in response_bert.keys()) or (len(response_lstm.keys())==1 and "pembuka" in response_lstm.keys()):
            response_bot = "halo, ada yang bisa saya bantu?"
        elif (len(response_bert.keys())==1 and "penutup" in response_bert.keys()) or(len(response_lstm.keys())==1 and "penutup" in response_lstm.keys()):
            if "kasih" in userInput or "thank" in userInput:
                response_bot = "sama-sama, terima kasih telah menggunakan layanan kami"
            else :
                response_bot = "Baik, terima kasih telah menggunakan layanan kami. Ada yang bisa saya bantu lagi?"
        elif len(response_lstm.keys()) == 0:
            response_bot = "Maaf, saya tidak mengerti dengan apa yang anda katakan."
        else:    
            response = predict_response(userInput)
            print(response_bert.keys())
            response_bot = response
    
    print(f"RESPONSE BERT: {response_bert}")
    print(f"RESPONSE LSTM: {response_lstm}")
    print(response_bot)
    response = {
        'response_bert': response_bert,
        'response_lstm': response_lstm,
        'response_bot' : response_bot
    }
    results = {'response': response}
    return JsonResponse(results)
Editor is loading...