ИИ-бот для Discord на своём VPS
Discord-сервер оживает, когда в нём есть умный бот: отвечает на вопросы, модерирует, помогает сообществу. Соберём такого бота на VPS с нуля — с ИИ-мозгом и стабильным аптаймом.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что умеет ИИ-бот в Discord
Discord-бот с LLM превращает канал в живого ассистента: отвечает на упоминания, обрабатывает слэш-команды, суммирует обсуждения и подсказывает по вашей базе знаний.
Как и Telegram, Discord держит постоянное gateway-соединение, поэтому боту нужен сервер, работающий 24/7. VPS от MAATRIX даёт стабильный IP в UK или США — это важно, поскольку Discord API из некоторых сетей РФ отвечает нестабильно.
Разница с Telegram в основном в API и модели прав. Discord строже относится к тому, что бот может читать: чтобы видеть текст сообщений, нужно явно включить привилегированный интент в панели разработчика. Зато Discord удобнее для сообществ — роли, каналы, треды и слэш-команды дают богатый интерфейс, поверх которого ИИ-ассистент выглядит естественно.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для Discord-ботаРегистрация приложения и токен
Зайдите на Discord Developer Portal, создайте New Application, затем Bot и скопируйте токен. Включите Message Content Intent, если хотите читать текст сообщений. Токен — это фактически пароль бота: если он утёк, немедленно перевыпустите его в панели, иначе чужой код сможет действовать от имени вашего бота.
Пригласите бота на сервер через OAuth2 URL Generator, выбрав scope bot и applications.commands и нужные права (Send Messages, Read Message History).
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Установка окружения на VPS
apt update && apt install -y python3 python3-venv git
adduser discordbot
su - discordbot
python3 -m venv ~/venv && source ~/venv/bin/activate
pip install discord.py openai
Библиотека discord.py покрывает и слэш-команды, и обработку сообщений. Для ИИ-части используем OpenAI-совместимый клиент — он подойдёт и для внешнего API, и для локальной Ollama.
Код бота с ИИ-ответами
Бот отвечает, когда его упоминают. Создайте bot.py:
import os, discord
from openai import OpenAI
ai = OpenAI(api_key=os.environ["AI_KEY"],
base_url=os.environ.get("AI_BASE", "https://api.openai.com/v1"))
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_message(msg):
if msg.author == client.user or client.user not in msg.mentions:
return
q = msg.content.replace(f"<@{client.user.id}>", "").strip()
r = ai.chat.completions.create(model="gpt-4o-mini",
messages=[{"role": "user", "content": q}])
await msg.reply(r.choices[0].message.content)
client.run(os.environ["DISCORD_TOKEN"])
Для локальной модели поставьте Ollama (curl -fsSL https://ollama.com/install.sh | sh), выполните ollama pull llama3.1:8b и задайте AI_BASE=http://127.0.0.1:11434/v1. Ollama и Discord-бот при этом живут на одном VPS и общаются через localhost, наружу порт модели открывать не нужно.
Чтобы бот отвечал по контексту, а не забывал предыдущую реплику, храните короткую историю по каналу. Но не увлекайтесь длиной контекста: чем больше сообщений вы подмешиваете, тем дольше и дороже ответ. Для сообщества обычно хватает последних 5-10 реплик. Тяжёлые запросы стоит выполнять асинхронно и показывать индикатор набора через async with msg.channel.typing(), чтобы пользователи видели, что бот думает.
Запуск в Docker (опционально)
Docker удобен, если ботов несколько или хотите изолировать зависимости. Простой Dockerfile:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY bot.py .
CMD ["python", "bot.py"]
docker build -t discord-ai .
docker run -d --restart=always \
-e DISCORD_TOKEN=xxx -e AI_KEY=yyy discord-ai
Стабильность и логи
Через systemd или Docker с --restart=always бот сам поднимется после сбоя. Логи смотрите так:
journalctl -u discordbot -f # если systemd
docker logs -f <container> # если Docker
- PrivilegedIntentsRequired — включите Message Content Intent в портале.
- Бот молчит на упоминание — проверьте право Send Messages в канале.
- Rate limit 429 — не спамьте запросами, добавьте очередь.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для Discord-ботаОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Чем Discord-бот отличается от Telegram по хостингу?
Принципиально ничем: обоим нужен постоянно работающий VPS. Отличается только SDK и способ регистрации бота.
Нужен ли зарубежный сервер для Discord?
Желательно. Discord API стабильнее отвечает с зарубежного IP, а VPS MAATRIX стоит в UK, США и РФ.
Можно ли сделать слэш-команды?
Да, discord.py поддерживает app_commands — регистрируете команды через дерево и синхронизируете с сервером.
Сколько стоит такой сервер?
Тарифы MAATRIX начинаются от $8/мес, для API-бота этого достаточно с запасом.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.