Membuat Chatbot Discord dengan PaLM API

Razan Fawwaz
4 min readNov 21, 2023

--

Latar Belakang

Discord merupakan aplikasi chatting yang cukup ramai digunakan akhir-akhir ini. Discord cukup nyaman digunakan untuk keperluan hobi, komunitas, dan juga dapat dipakai oleh perusahaan untuk sarana komunikasi karyawan. Fitur-fitur yang disediakan oleh Discord cukup lengkap dan sangat mudah untuk digunakan. Salah satu fiturnya adalah fitur integrasi bot, kita dapat mengembangkan bot kita sendiri atau menggunakan bot lain yang tersedia untuk keperluan server kita. Dengan mengintegrasikan bot Discord dengan PaLM API kita dapat membuat chatbot pintar yang dapat membantu menjawab pertanyaan yang kita ajukan melalui Discord.

Tahapan

Kali ini kita akan mengembangkan bot Discord menggunakan JavaScript. Di sini saya menggunakan Node.JS, Discord.JS, dan PaLM API.

1. Membuat Bot Discord

Kita akan memulai dari membuat dan mendapatkan token dari Discord. Untuk membuat dan mendapatkannya, kita harus masuk ke laman https://discord.com/developers/applications dan memilih New Application.

Discord Developer Portal

Silahkan isi nama sesuai dengan kebutuhan masing-masing. Pada kali ini saya akan menggunakan nama PaLM Bot dan jangan lupa untuk menekan tombol Create.

Setelah itu kita masuk ke halaman Bot dan akan menemukan tombol Reset Token

Discord Bot — Generate Token

Untuk mendapatkan token, kita dapat menekan tombol Reset Token dan jika sudah maka akan muncul tokennya. Pastikan untuk copy dan menyimpan tokennya! :D

Di halaman yang sama, kamu harus scroll sedikit ke bawah hingga menemukan Privileged Gateway Intents,pastikan untuk menyalakan semua Intent seperti gambar di bawah.

Setup Intent

Setelah itu, kita akan masuk ke halaman OAuth2 dan memilih bagian Url Generator. Untuk scopes pilih Bot dan untuk Permissions dapat disamakan dengan gambar di bawah ini

Setup Permissions

Jika sudah, akan terlihat link dan klik copy, link ini berfungsi untuk menambahkan Bot ke dalam server kita. Silahkan pilih server yang diinginkan.

Bot invited

Jika berhasil maka akan terlihat teks di atas di server yang dipilih.

2. Mendapatkan API Makersuite

Untuk dapat menggunakan PaLM API diperlukan untuk masuk dan mendaftar di https://makersuite.google.com

Makersuite Home

Jika sudah, dapat klik Get API key di pojok kiri. Lalu pilih Create API key kamu dapat memilih untuk membuatnya di projek baru atau di projek yang sudah ada. Jika sudah maka akan mendapatkan API key pastikan untuk copy atau menyimpannya.

Copy API Key

Dokumentasi mengenai PaLM API dapat dibaca lebih lanjut di https://developers.generativeai.google/tutorials/chat_node_quickstart

3. Membuat projek NodeJS

Kita akan mulai dengan membuat projek NodeJS. Saya akan membuat direktori baru bernama palm-bot dan menginisiasi NPM di dalamnya.

mkdir palm-bot
cd palm-bot
npm init

Jika sudah berhasil, maka selanjutnya kita akan menginstall library yang dibutuhkan yaitu ada dotenv, google-auth-library, dan @google-ai/generativelanguage

npm install dotenv google-auth-library @google-ai/generativelanguage

Setelah itu saya akan membuat file .env yang berisikan Discord API Key & PaLM API Key seperti pada contoh di bawah.

Selanjutnya saya akan membuat file index.js

Lalu saya akan menjalankannya dengan perintah node index.js

Bot is running!

Jika sudah terhubung dengan Discord, maka akan mengeluarkan output Bot is ready! dan akan muncul juga tanda online di server Discord.

Bot online

Lalu kita dapat mengirimkan pesan dan tag akun bot yang telah kita buat, jika kita mengirimkan pesan dan tidak tag akun bot maka pesan tidak akan diproses.

Bot respond the message

Karena keterbatasan karakter dari Discord, jika pesan memiliki panjang lebih dari 2000 karakter maka pesan tersebut akan dipecah dan dikirimkan menjadi pesan yang berbeda.

Kode program juga tersedia pada repository GitHub https://github.com/razanfawwaz/palm-bot

Selesai!

Bot dapat dikembangkan lebih jauh sesuai keinginan masing-masing. Untuk eksplorasi dengan Discord direkomendasikan untuk membaca panduan dari https://discordjs.guide/

Selamat berkreasi!

--

--

Razan Fawwaz
Razan Fawwaz

Written by Razan Fawwaz

Interested in Backend & Infra | Technology Management Trainee (Backend) @EDTS | Kuli Ketik @SendTheSong

No responses yet