Stavíme Telegram Boty s LLM: Praktický průvodce

Stavíme Telegram Boty s LLM: Praktický průvodce

Telegram boty jsou nejrychlejší distribuční kanál pro AI produkty. Žádné schválení v app store, žádný složitý onboarding — stačí sdílet odkaz a uživatelé mluví s vaším produktem.

Takto je stavím.

Proč Telegram?

Než se pustíme do kódu, strategický případ:

  • Okamžitý dosah: každý uživatel Telegramu může kliknout na odkaz a začít konverzaci
  • Žádný frontend: chat UI je již zabudovaný
  • Async friendly: uživatelé očekávají asynchronní komunikaci
  • Podpora skupin: váš bot může sloužit týmům, ne jen jednotlivcům

Nevýhoda: jste omezeni na text, obrázky, soubory a hlas. Žádné vlastní UI. Pro mnoho případů použití je to v pořádku.

Architektura

Minimální Telegram bot poháněný LLM potřebuje:

  1. Webhook přijímač — poslouchá Telegram aktualizace
  2. LLM klient — posílá zprávy do Claude/GPT a streamuje odpověď
  3. Úložiště kontextu — uchovává historii konverzace per-user
  4. Rate limiter — zabraňuje zneužití

Používám Python s python-telegram-bot (v20+, async-first) a FastAPI pro webhook.

Základní kód

Tady je minimální setup:

from telegram import Update
from telegram.ext import Application, MessageHandler, filters, ContextTypes
from anthropic import Anthropic

client = Anthropic()

async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
    user_id = update.effective_user.id
    text = update.message.text

    # Získej nebo inicializuj historii konverzace
    history = context.user_data.get('history', [])
    history.append({"role": "user", "content": text})

    # Stream odpovědi z Claude
    response_text = ""
    msg = await update.message.reply_text("...")

    with client.messages.stream(
        model="claude-opus-4-6",
        max_tokens=1024,
        system="Jsi nápomocný asistent.",
        messages=history,
    ) as stream:
        for chunk in stream.text_stream:
            response_text += chunk

    await msg.edit_text(response_text)

    history.append({"role": "assistant", "content": response_text})
    context.user_data['history'] = history[-20:]  # uchovej posledních 10 kol

Správa kontextu

Největší chyba, kterou vidím: žádný limit kontextu. Claude a GPT mají context windows, ale nejsou nekonečné a náklady rostou lineárně s tokeny.

Moje pravidla:

  • Uchovávej posledních N kol (defaultně 10)
  • Shrň dlouhé konverzace místo ořezávání
  • Ukládej stav konverzace server-side, ne v context.user_data (to je jen in-memory)

Pro perzistentní úložiště používám PostgreSQL s jednoduchým schématem:

CREATE TABLE conversations (
    user_id BIGINT NOT NULL,
    role TEXT NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT NOW()
);

Nasazení

Nasazuji na Render (free tier pro malé boty, $7/měsíc pro always-on):

  1. Push kód na GitHub
  2. Vytvořte novou Web Service na Render
  3. Nastavte proměnné prostředí: TELEGRAM_TOKEN, ANTHROPIC_API_KEY
  4. Zaregistrujte webhook: https://api.telegram.org/bot{TOKEN}/setWebhook?url=https://yourapp.onrender.com/webhook

Hotovo. Bot je živý.

Závěr

Telegram boty jsou podhodnocený distribuční mechanismus pro AI produkty. Nízká tření pro uživatele, rychlé stavění, snadná iterace.

Pokud chcete postavit Telegram bota ale nevíte kde začít — napište mi na Telegram. Mohu mít funkční bot nasazený za 24-48 hodin.

Valdas

Valdas

Vibe Coder · AI Product Builder se sídlem v Praze. Mením nápady na fungující AI produkty za dny — Telegram boty, webové aplikace, automatizační nástroje. Kontaktujte mě na Telegramu nebo sledujte na Medium.

Komentáře (0)

Buďte první, kdo zanechá komentář.

Zanechat komentář

Komentáře jsou moderovány a zobrazí se po schválení. Email není vyžadován.