Proyek ini merupakan implementasi dari tugas sesi 5: AI Productivity and AI API Integration for Developers - Hacktiv8. Ini adalah sebuah chatbot sederhana yang terintegrasi dengan API Google Gemini untuk menghasilkan respon otomatis terhadap pertanyaan pengguna.
- Integrasi dengan Google Gemini API untuk memproses dan menghasilkan respon AI
- Antarmuka web yang sederhana dan fungsional
- Penyimpanan riwayat percakapan untuk konteks kontinu
- Implementasi API endpoint yang sesuai dengan spesifikasi
simple-chatbot/
├── .env
├── index.js (backend)
├── package.json
├── package-lock.json
└── public/
├── index.html
├── script.js (frontend)
└── style.css
- Node.js
- Express.js
- Google GenAI SDK
- HTML5
- CSS3
- JavaScript (Vanilla)
- Clone atau download repository ini
- Install dependensi dengan perintah:
npm install - Buat file
.envdi root direktori dan tambahkan API key:GEMINI_API_KEY=your_api_key_here - Jalankan server:
node index.js - Buka browser dan akses
http://localhost:3000
- Ketik pertanyaan Anda di kotak input
- Tekan tombol "Send" atau Enter untuk mengirim
- Tunggu respons dari chatbot AI
- Percakapan akan terus berjalan dengan konteks yang dipertahankan
POST /api/chat- Mengirim pesan dan menerima respons dari model AI- Request body:
{ "conversation": [{ "role": "user", "text": "pesan pengguna" }] } - Response:
{ "result": "respons dari AI" }
- Request body:
Selama pembuatan proyek ini, terdapat beberapa tantangan teknis yang dihadapi dan solusi yang diterapkan:
- Masalah: Kode awal mencoba mengakses
response.textsebagai properti langsung, tetapi mengalami errorTypeError: responseText.substring is not a function - Solusi: Menyesuaikan struktur akses ke respons menjadi
result.candidates[0].content.parts[0].textsesuai dengan format respons API
- Masalah: Frontend menggunakan role
bot, sementara GenAI API hanya menerima roleuserdanmodel, menyebabkan errorApiError: "Please use a valid role: user, model" - Solusi: Melakukan mapping role dengan mengganti role
botmenjadimodelsebelum dikirim ke API
- Masalah: Chatbot hanya bisa menerima satu kali pengiriman pesan, pengiriman kedua dan seterusnya selalu gagal
- Solusi: Setelah perbaikan struktur akses ke respons dan mapping role, chatbot dapat menerima pesan berulang kali dengan percakapan kontekstual yang berjalan dengan baik
- Memahami cara mengintegrasikan API pihak ketiga ke aplikasi web
- Menerapkan konsep full-stack development
- Menggunakan environment variables untuk menyimpan informasi sensitif
- Membangun antarmuka pengguna yang interaktif
- Mengatasi perbedaan format data antara frontend dan API