Tutorial

Tutorial: Bikin Bot Telegram AI dalam 15 Menit Pakai Panglima Router

bot Telegram AItutorialOpenAI compatiblePython

19 Oktober 2026 · 6 menit baca · Panglima Router

Tutorial: Bikin Bot Telegram AI dalam 15 Menit Pakai Panglima Router

Bot Telegram yang bisa jawab pakai AI terdengar seperti project akhir pekan yang ribet. Nyatanya, kalau API-nya sudah OpenAI-compatible, bagian tersulitnya cuma dua: dapat API key dan tulis beberapa puluh baris kode. Tutorial ini membawa kamu dari nol sampai bot yang bisa diajak ngobrol — target 15 menit.

Tutorial bot Telegram AI ini memakai Python dan library python-telegram-bot, dengan Panglima Router sebagai penyedia API modelnya. Kamu butuh: akun Telegram, Python 3.10+, dan paket Trial Rp5.000 (cukup untuk tutorial ini).

Langkah 0: Siapkan API Key (3 menit)

API key adalah satu-satunya "modal" tutorial ini. Caranya:

  1. Buka @panglimarouter_bot di Telegram.
  2. Pilih paket Trial — Rp5.000 / 1 hari. Bayar dengan scan QRIS dari aplikasi bank atau e-wallet apa pun.
  3. Setelah pembayaran terkonfirmasi, buka menu pembuatan API key di bot.
  4. Key akan ditampilkan satu kali saja. Salin dan simpan di tempat aman — misalnya password manager atau file .env lokal. Jangan ditempel di grup chat, jangan di-screenshot lalu disebar.

Kalau key hilang atau tidak sengaja tersebar, kamu bisa me-rotate (membuat key baru dan mematikan yang lama) dari menu bot yang sama. Praktik keamanan lengkapnya ada di keamanan API key.

Simpan key sebagai environment variable supaya tidak tertulis di kode:

export PR_API_KEY="sk-pr-xxx-tempel-key-kamu-di-sini"

Di Windows (PowerShell):

$env:PR_API_KEY="sk-pr-xxx-tempel-key-kamu-di-sini"

Langkah 1: Buat Bot Telegram di BotFather (2 menit)

Setiap bot Telegram butuh "akta kelahiran" dari BotFather:

  1. Buka @BotFather, kirim /newbot.
  2. Ikuti instruksinya: beri nama tampilan (misal Asisten AI Saya) lalu username yang diakhiri bot (misal asisten_ai_saya_bot).
  3. BotFather memberi bot token — simpan juga sebagai environment variable:
export TG_BOT_TOKEN="123456:ABC-tempel-token-botfather-di-sini"

Jangan campur aduk: bot token (dari BotFather) untuk Telegram, API key (dari Panglima Router) untuk model AI. Keduanya rahasia.

Langkah 2: Install Library (1 menit)

pip install python-telegram-bot openai python-dotenv

Tiga library, tiga peran: python-telegram-bot untuk ngobrol dengan Telegram, openai untuk ngobrol dengan API model (karena API-nya OpenAI-compatible, library resmi OpenAI langsung bisa dipakai), python-dotenv supaya key dibaca dari file .env.

Buat file .env di folder project:

TG_BOT_TOKEN=123456:ABC-token-dari-botfather
PR_API_KEY=sk-pr-xxx-key-dari-panglima-router

Dan tambahkan .env ke .gitignore kalau pakai git. Ini bukan opsional — key yang bocor ke repo publik berarti orang lain bisa memakai kuotamu.

Langkah 3: Tulis Kode Bot Telegram AI (5 menit)

Buat file bot.py. Ini versi minimal yang langsung jalan:

import os
from dotenv import load_dotenv
from telegram import Update
from telegram.ext import Application, MessageHandler, filters, ContextTypes
from openai import OpenAI

load_dotenv()

# Klien AI: format OpenAI, tapi diarahkan ke Panglima Router
ai = OpenAI(
    base_url="https://api.panglimarouter.xyz/v1",
    api_key=os.environ["PR_API_KEY"],
)

MODEL = "nama-model-pilihanmu"  # lihat daftar di /v1/models

async def jawab(update: Update, context: ContextTypes.DEFAULT_TYPE):
    teks = update.message.text
    await context.bot.send_chat_action(
        chat_id=update.effective_chat.id, action="typing"
    )
    try:
        res = ai.chat.completions.create(
            model=MODEL,
            messages=[
                {
                    "role": "system",
                    "content": (
                        "Kamu asisten yang ramah dan membantu. "
                        "Jawab dalam bahasa Indonesia yang santai."
                    ),
                },
                {"role": "user", "content": teks},
            ],
        )
        balasan = res.choices[0].message.content
    except Exception:
        balasan = (
            "Maaf, aku lagi ada kendala menghubungi AI. "
            "Coba lagi sebentar ya."
        )
    await update.message.reply_text(balasan)

app = Application.builder().token(os.environ["TG_BOT_TOKEN"]).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, jawab))
app.run_polling()

Perhatikan tiga hal di kode ini:

  1. Satu-satunya hal Panglima Router-spesifik adalah base_url dan api_key. Sisanya kode OpenAI standar. Mau pindah model? Ganti MODEL. Mau pindah provider nanti? Ganti dua baris itu.
  2. System prompt menentukan kepribadian bot. Contoh di atas membuatnya santai berbahasa Indonesia. Ubah sesuai kebutuhan — formal untuk CS, playful untuk komunitas.
  3. Error handling itu wajib, bukan pemanis. API bisa timeout atau paket bisa habis. Bot yang diam tanpa kabar saat error lebih buruk daripada bot yang jujur bilang sedang kendala.

Untuk daftar nama model yang bisa diisi ke MODEL, cek endpoint /v1/models atau halaman model.

Langkah 4: Jalankan dan Tes (2 menit)

python bot.py

Buka bot-mu di Telegram (username yang tadi dibuat), kirim pesan apa saja. Kalau dibalas AI, selamat — bot-mu hidup.

Tes minimal yang layak dilakukan:

  • Kirim sapaan biasa ("halo") — pastikan responsnya natural.
  • Kirim pertanyaan yang butuh pengetahuan ("jelaskan fotosintesis singkat") — cek kualitas jawaban model pilihanmu.
  • Kirim pesan saat... sebenarnya tidak ada yang perlu disiapkan khusus; tapi coba matikan internet sebentar lalu kirim pesan untuk melihat pesan error ramah yang tadi kita tulis.
  • Coba perintah yang tidak dikenal bot (misal /start) — bot minimal ini belum menangani command, jadi tidak ada respons. Itu normal; penanganan command bisa ditambahkan nanti dengan CommandHandler.

Total waktu: sekitar 13 menit kalau lancar. Sisanya buat ngopi.

Langkah 5 (Opsional): Bikin Bot Lebih Pintar

Versi minimal di atas stateless — setiap pesan diperlakukan sebagai percakapan baru. Untuk percakapan yang nyambung, simpan riwayat per user:

riwayat = {}  # chat_id -> list pesan

async def jawab(update: Update, context: ContextTypes.DEFAULT_TYPE):
    cid = update.effective_chat.id
    teks = update.message.text
    riwayat.setdefault(cid, []).append({"role": "user", "content": teks})
    # batasi 10 pesan terakhir supaya token tidak membengkak
    potongan = riwayat[cid][-10:]
    res = ai.chat.completions.create(
        model=MODEL,
        messages=[
            {"role": "system", "content": "Kamu asisten yang ramah."},
            *potongan,
        ],
    )
    balasan = res.choices[0].message.content
    riwayat[cid].append({"role": "assistant", "content": balasan})
    await update.message.reply_text(balasan)

Batasan 10 pesan terakhir itu penting: tanpa batas, riwayat tumbuh tanpa henti dan biaya token ikut tumbuh. Ini salah satu strategi hemat biaya API yang paling gampang diterapkan.

Ide pengembangan lanjutan kalau bot-mu mulai dipakai orang:

  • Perintah khusus (/ringkas, /translate) yang mengubah system prompt per perintah.
  • Model berbeda per perintah: model murah untuk obrolan ringan, model pintar untuk tugas berat. Karena satu API key berlaku untuk semua model, ini cuma soal ganti string MODEL.
  • Rate limit per user supaya satu user tidak menghabiskan kuotamu sendirian.

Menjalankan Bot Telegram AI 24/7

python bot.py di laptop berhenti saat laptop mati atau terminal ditutup. Untuk bot yang selalu online, opsi umum:

  • VPS kecil: jalankan dengan systemd atau tmux/screen. VPS termurah sudah cukup untuk bot polling seperti ini.
  • Platform PaaS: beberapa platform mendukung worker Python persisten. Pastikan paketnya mendukung proses long-running, bukan cuma web request.
  • Jangan taruh .env berisi key asli di server tanpa proteksi file yang benar (chmod 600), dan jangan pernah commit .env ke git.

Pertanyaan yang Sering Muncul

Berapa biaya menjalankan bot seperti ini?

Dua komponen: paket Panglima Router (mulai Rp5.000/hari untuk Trial, atau Rp50.000/30 hari untuk Pro kalau bot-nya dipakai rutin) dan server tempat bot berjalan. Untuk bot pribadi atau komunitas kecil, totalnya jauh di bawah langganan chatbot jadi-jadian yang fiturnya dikunci.

Apakah saya bisa ganti model AI tanpa mengubah kode bot?

Ya — cukup ganti nilai variabel MODEL. Tidak perlu install ulang, tidak perlu daftar akun baru. Ini salah satu alasan memakai router: eksperimen model jadi murah, baik dari sisi waktu maupun uang.

Bagaimana kalau API key saya bocor?

Segera rotate dari menu @panglimarouter_bot: key lama langsung mati, key baru diterbitkan. Lalu update .env di server dan restart bot. Sambil menunggu, periksa apakah ada pemakaian aneh. Detailnya di keamanan API key.

Bot saya lambat merespons. Kenapa?

Kemungkinan penyebab, berurutan dari yang paling umum: model yang dipilih memang lambat (coba model yang lebih kecil/cepat), koneksi server ke API terhambat, atau bot-mu memproses pesan berurutan sehingga antre. Untuk komunitas ramai, pertimbangkan antrean pesan per user.

Apakah kode ini bisa dipakai untuk bot customer service bisnis?

Bisa sebagai titik awal, tapi bot CS butuh lapisan tambahan: sumber jawaban yang dikunci ke dokumen resmi (bukan mengarang bebas), alur eskalasi ke manusia, dan logging percakapan untuk audit. Baca dulu kapan AI untuk CS worth it sebelum membawa bot seperti ini ke pelanggan sungguhan.

Baca juga

Mulai sekarang

Siap routing AI pertamamu?

Mulai dari Rp5.000. Bayar QRIS atau USDC, langsung dapat API key.

Channel pengumuman · Grup diskusi