ИИ-бот для Discord на своём VPS
Discord-сервер оживает, когда в нём есть умный бот: отвечает на вопросы, модерирует, помогает сообществу. Соберём такого бота на VPS с нуля — с ИИ-мозгом и стабильным аптаймом.
Содержание
Что умеет ИИ-бот в 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, выбрав scopebot и applications.commands и нужные права (Send Messages, Read Message History).']
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Установка окружения на VPS
['apt update && apt install -y python3 python3-venv git\nadduser discordbot\nsu - discordbot\npython3 -m venv ~/venv && source ~/venv/bin/activate\npip install discord.py openai', 'Библиотека discord.py покрывает и слэш-команды, и обработку сообщений. Для ИИ-части используем OpenAI-совместимый клиент — он подойдёт и для внешнего API, и для локальной Ollama.']
Код бота с ИИ-ответами
['Бот отвечает, когда его упоминают. Создайте bot.py:', 'import os, discord\nfrom openai import OpenAI\n\nai = OpenAI(api_key=os.environ["AI_KEY"],\n base_url=os.environ.get("AI_BASE", "https://api.openai.com/v1"))\nintents = discord.Intents.default()\nintents.message_content = True\nclient = discord.Client(intents=intents)\n\n@client.event\nasync def on_message(msg):\n if msg.author == client.user or client.user not in msg.mentions:\n return\n q = msg.content.replace(f"<@{client.user.id}>", "").strip()\n r = ai.chat.completions.create(model="gpt-4o-mini",\n messages=[{"role": "user", "content": q}])\n await msg.reply(r.choices[0].message.content)\n\nclient.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\nWORKDIR /app\nCOPY requirements.txt .\nRUN pip install --no-cache-dir -r requirements.txt\nCOPY bot.py .\nCMD ["python", "bot.py"]', 'docker build -t discord-ai .\ndocker run -d --restart=always \\\n -e DISCORD_TOKEN=xxx -e AI_KEY=yyy discord-ai']
Стабильность и логи
['Через systemd или Docker с--restart=always бот сам поднимется после сбоя. Логи смотрите так:', 'journalctl -u discordbot -f # если systemd\ndocker logs -f <container> # если Docker', '- PrivilegedIntentsRequired — включите Message Content Intent в портале.
- Бот молчит на упоминание — проверьте право Send Messages в канале.
- Rate limit 429 — не спамьте запросами, добавьте очередь.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для Discord-ботаНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Чем Discord-бот отличается от Telegram по хостингу?
Принципиально ничем: обоим нужен постоянно работающий VPS. Отличается только SDK и способ регистрации бота.
Нужен ли зарубежный сервер для Discord?
Желательно. Discord API стабильнее отвечает с зарубежного IP, а VPS MAATRIX стоит в UK и США.
Можно ли сделать слэш-команды?
Да, discord.py поддерживает app_commands — регистрируете команды через дерево и синхронизируете с сервером.
Сколько стоит такой сервер?
Тарифы MAATRIX начинаются от $8/мес, для API-бота этого достаточно с запасом.