Bot_v1.0 / agents /routerAgent.js
JustJoin's picture
Upload 9 files
d85b9cd verified
Raw
History Blame Contribute Delete
1.86 kB
import { GoogleGenerativeAI } from "@google/generative-ai";
// Inisialisasi SDK Gemini memakai API Key dari Environment Linux Colab
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
/**
* Memilah kategori pesan masuk dari user
* @param {string} pesanUser - Teks pesan WhatsApp masuk
* @returns {Promise<string>} - Mengembalikan string 'jadwal' atau 'lainnya'
*/
export async function jalankanRouterAgent(pesanUser) {
const promptSistem = `
Kamu adalah sistem klasifikasi pesan otomatis (Router Agent) untuk WhatsApp Bot DNA Kids.
Tugasmu HANYA menganalisis pesan user dan mengembalikannya ke dalam satu kata kategori saja.
Kategori yang tersedia:
1. 'jadwal' -> Jika pesan menanyakan tentang jadwal mengajar, siapa yang bertugas, tanggal tugas, absensi guru, atau hal terkait operasional mengajar Sekolah Minggu.
2. 'lainnya' -> Jika pesan berisi sapaan (halo, pagi), ucapan terima kasih, obrolan santai, curhat, kata-kata gaul, atau luar konteks.
ATURAN MUTLAK:
Jawab HANYA dengan kata 'jadwal' atau 'lainnya'. Jangan memberikan tanda baca, penjelasan, atau kalimat tambahan apa pun. Jawab dengan huruf kecil semua.
`;
try {
// Mengirimkan instruksi sistem dan pesan user ke API Gemini
const hasil = await model.generateContent([promptSistem, pesanUser]);
const respon = hasil.response.text().trim().toLowerCase();
// Jaring pengaman (Sanitization) jika Gemini tidak patuh aturan mutlak
if (respon.includes('jadwal')) return 'jadwal';
return 'lainnya';
} catch (error) {
console.error("❌ Eror pada Router Agent:", error);
return 'lainnya'; // Fallback aman agar bot tidak mati jika API bermasalah
}
}