Dalam panduan ini, Anda akan belajar cara mereset obrolan menggunakan API OpenAI tanpa harus me-restart server. Seringkali ada situasi di mana Anda ingin hanya melupakan riwayat obrolan sebelumnya dan memulainya dari awal. Di sini, sebuah ID Obrolan memainkan peran sentral karena memungkinkan untuk mereset riwayat pada server. Tutorial berikut akan menunjukkan cara mengimplementasikan fungsi ini.
Temuan Utama
- Untuk mereset obrolan, Anda dapat menghasilkan ID obrolan baru.
- ID Obrolan dibuat saat me-reload halaman dan diserahkan ke server.
- Server membandingkan ID Obrolan baru dengan yang sekarang dan mereset riwayat obrolan jika berbeda.
Panduan Langkah demi Langkah
Pertama, Anda sudah memiliki aplikasi obrolan yang berjalan, namun ada masalah kecil: Anda belum bisa mereset riwayat obrolan. Untuk membuat ini memungkinkan, kita harus memperkenalkan ID yang akan dihasilkan setiap kali halaman di-reload.
Anda kemudian harus menyampaikan ID obrolan baru ini ke server Anda. Jika server menerima ID baru, ia dapat mereset riwayat obrolan. Hal ini dilakukan dengan perbandingan sederhana: Jika ID obrolan baru tidak sama dengan ID obrolan yang sedang berlangsung, daftar pesan akan di-reset.
Untuk mengimplementasikan hal ini, Anda harus memastikan bahwa klien mampu menghasilkan ID acak. Anda akan meneruskan ID sebagai parameter pencarian ID. Jadi mari kita lihat file index.jsx dari komponen React Anda.
Di file ini, Anda telah meneruskan pesan yang diperlukan (MSG). Sekarang Anda juga dapat meneruskan ID ini. Ini dapat dilakukan secara efektif dengan menggunakan Template Strings sehingga penyisipan variabel menjadi lebih mudah.
Maka ubahlah kode menjadi Template String dan masukkan variabel sesuai. Contohnya bisa seperti ini: MSG, ini adalah field input Anda, dan ID sama dengan ID baru Anda.
Selanjutnya, Anda perlu memikirkan tentang cara menghasilkan ID. Metode yang sederhana adalah dengan menggunakan tanggal. Anda dapat dengan mudah mendefinisikan suatu konstan yang menggunakan waktu saat ini dalam milidetik sejak 1970. Anda dapat menggunakan Date.now() untuk itu, kemudian mengonversi waktu tersebut menjadi string.
Sekarang setiap kali halaman di-reload, kita akan selalu mengirim ID baru. Ini seharusnya berfungsi seperti yang diinginkan. Mari kita coba dan kirimkan pesan untuk melihat apakah data dikirimkan dengan benar ke server.
Jika Anda mengirim pesan "how are you", Anda akan melihat di server bahwa ada dua pesan: satu dari pengguna dan satu dari asisten.
Namun jika Anda mengirim pertanyaan lain, misalnya "why does it not have feelings", riwayat akan direset sesuai. Hanya pertanyaan saat ini dan jawabannya yang akan ada di sana.
Ini berarti ketika kita memeriksa ID - tidak boleh ada konflik, misalnya ID obrolan baru sama dengan ID obrolan saat ini - logika harus disederhanakan sehingga proses berjalan dengan lancar.
Untuk memastikan bahwa itu berfungsi, lakukan uji coba lagi. Muat ulang halaman dan kirim pesan sekali lagi. Sekarang seharusnya ada empat pesan yang tersimpan dalam array.
Array menunjukkan jumlah total pesan yang telah dikirim, yang berarti bahwa riwayat telah direset dengan benar. Namun ini hanya terjadi saat Anda me-reload halaman. Sebagai alternatif, Anda juga dapat mengimplementasikan sebuah tombol yang memicu reset obrolan, namun untuk keperluan ini, me-reload halaman sudah cukup.
Namun, perlu diketahui bahwa kotak masukan tidak akan otomatis kosong setelah mengirim pesan. Selain itu, riwayat chat lengkap hingga saat ini belum terlihat, yang berarti kamu hanya akan melihat pertanyaan dan jawaban terakhir. Hal ini juga akan kita bahas dalam tutorial mendatang.
Ringkasan
Di panduan ini, kamu belajar bagaimana mengimplementasikan fungsi reset riwayat chat dalam aplikasi chatmu. Dengan memperkenalkan ID Chat baru ketika melakukan reload halaman, riwayat berhasil direset. Masih ada beberapa peningkatan yang akan kita terapkan dalam langkah-langkah berikutnya, seperti menghapus kotak masukan dan menampilkan riwayat chat secara lengkap.
Pertanyaan yang Sering Diajukan
Bagaimana cara mereset chat?Dengan me-reload halaman, riwayat chat akan direset.
Bagaimana ID baru di-generate?ID baru dihasilkan dari waktu saat ini dalam milidetik.
Apakah bisa mereset chat tanpa me-reload halaman?Ya, kamu juga bisa mengimplementasikan sebuah tombol yang mereset chat.
Apa yang terjadi jika ID-nya sama?Jika ID baru sama dengan ID saat ini, maka riwayat tidak akan direset.
Apakah saya harus menghapus kotak masukan secara manual?Ya, saat ini kotak masukan tidak akan otomatis kosong setelah mengirim pesan.