Bot Telegram sederhana untuk menjawab pertanyaan mahasiswa terkait Siakadu berdasarkan daftar FAQ (Frequently Asked Questions).
Bot ini menggunakan sentence-transformers (BAAI/bge-m3) untuk pencocokan pertanyaan dan FAISS untuk pencarian vektor yang cepat.
Data FAQ dalam faq.json
di sini dikumpulkan dan diproses dari dua sumber utama:
-
Blog Dwi Sakethi – “Pertanyaan dan Jawaban (PdJ) Siakadu”
Sumber FAQ resmi dari Universitas Lampung ini menyediakan berbagai pertanyaan umum beserta solusinya terkait sistem Siakadu.
Laman situs -
Percakapan di Grup Telegram Siakadu Unila
Dialog dari grup ini (yang aktif mendiskusikan masalah Siakadu) turut digunakan sebagai sumber data tambahan untuk memperkaya FAQ dengan kasus nyata dan solusinya.
Grup Telegram
Kami menyatukan kedua sumber ini dan menyusunnya dalam format FAQ yang mudah di-query oleh chatbot, sehingga bot dapat menjawab secara akurat dan sesuai konteks.
- Jawaban otomatis berdasarkan file
faq.json
. - Mendukung bahasa Indonesia dengan model embedding bge-m3.
- Bisa digunakan di private chat maupun group:
- Private chat → menjawab semua pertanyaan.
- Group chat → hanya menjawab jika di-mention (
@siakadu_bot
).
- Konfigurasi sederhana melalui file
.env
. - Clean code dengan Python 3.12, dependency diatur lewat uv (Astral).
- Python >= 3.12
- uv (Astral) untuk manajemen dependency.
- Token bot Telegram dari @BotFather.
-
Clone repository
git clone https://github.com/kiraware/siakadu-bot cd siakadu-bot
-
Install uv (Astral) jika belum ada
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux / macOS powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Windows PowerShell
-
Install dependencies dengan
uv
uv sync
-
Konfigurasi environment
- Duplikat file
.env.example
menjadi.env
- Isi token bot Telegram:
TELEGRAM_BOT_TOKEN=1234567890:your_telegram_bot_token
- Duplikat file
-
Aktifkan environment:
source .venv/bin/activate # Linux / macOS .venv\Scripts\activate # Windows PowerShell
-
Jalankan bot dengan perintah:
uv run python main.py
Jika berhasil, Anda akan melihat pesan:
🤖 Bot siap jalan...
Auto-fix:
uv run ruff check --fix
Format:
uv run ruff format
Proyek ini dilisensikan di bawah MIT License.