Чтобы запустить AI-чат-бота, AI-бота для Telegram или Discord либо приложение, которое обращается к AI API из Японии или Кореи, настройте виртуальное окружение Python на VPS в Токио или Сеуле, храните API-ключ в защищённом файле окружения и запустите приложение как службу systemd. Ниже — все шаги с минимальным примером.
Шаг 1: Выберите сервер
Облачные VPS JUSTG в Токио и Сеуле получают нативный японский или корейский IPv4, бесплатный IPv6, маршруты, оптимизированные для Азии, и порт 500 Мбит/с. Они разворачиваются автоматически после оплаты.
Это серверы с CPU, без GPU. Они хорошо подходят для вызова облачных AI API, чат-ботов, AI-агентов, задач автоматизации и RAG-бэкендов с внешней моделью, но не для обучения моделей. Боту, который в основном ждёт ответов API, нужно немного CPU, поэтому обычно начинают с тарифа 01 (2 ядра, 1 GB RAM, $29.99/мес) или 02 (3 ядра, 2 GB RAM, $39.99/мес); если на том же сервере будет база данных или векторный поиск, берите больше RAM.
Шаг 2: Установите Python и создайте виртуальное окружение
В Debian или Ubuntu создайте отдельного пользователя и виртуальное окружение в /opt/aibot, затем установите официальный SDK провайдера. В примере используется Python-пакет openai; SDK других провайдеров ставятся так же.
apt update && apt install -y python3 python3-venv
useradd -r -m -d /opt/aibot -s /usr/sbin/nologin aibot
python3 -m venv /opt/aibot/venv
/opt/aibot/venv/bin/pip install --upgrade pip
/opt/aibot/venv/bin/pip install openai
Шаг 3: Храните API-ключ в файле окружения
Никогда не записывайте API-ключ в код или Git-репозиторий. Создайте /etc/aibot.env:
AI_API_KEY=your-api-key
AI_MODEL=your-model-name
Подставьте свой настоящий ключ и имя модели из документации провайдера. Затем сделайте файл доступным только для root:
chown root:root /etc/aibot.env
chmod 600 /etc/aibot.env
ls -l /etc/aibot.env
Вывод должен начинаться с -rw-------. systemd читает файл от имени root при запуске службы, поэтому пользователю бота доступ к нему не нужен.
Шаг 4: Напишите минимальное тестовое приложение
Создайте /opt/aibot/app.py. Оно отправляет одно сообщение и выводит ответ:
import logging
import os
from openai import OpenAI
logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s")
log = logging.getLogger("aibot")
client = OpenAI(api_key=os.environ["AI_API_KEY"], max_retries=3, timeout=30)
resp = client.chat.completions.create(
model=os.environ["AI_MODEL"],
messages=[{"role": "user", "content": "Hello from Tokyo"}],
)
log.info("reply received")
print(resp.choices[0].message.content)
Другие SDK устроены так же: создаёте клиента с ключом из окружения и вызываете метод чата или сообщений провайдера (например, client.messages.create(...)). Запустите тест один раз от root:
chown -R aibot:aibot /opt/aibot
set -a; . /etc/aibot.env; set +a
/opt/aibot/venv/bin/python /opt/aibot/app.py
Если пришёл ответ, значит ключ, SDK и сетевой путь работают.
Шаг 5: Запустите бота как службу systemd
Поместите своего настоящего бота или API-приложение в /opt/aibot/bot.py (это должна быть постоянно работающая программа, например Telegram-бот или небольшой веб-API), затем создайте /etc/systemd/system/aibot.service:
[Unit]
Description=AI bot
After=network-online.target
Wants=network-online.target
[Service]
User=aibot
WorkingDirectory=/opt/aibot
EnvironmentFile=/etc/aibot.env
ExecStart=/opt/aibot/venv/bin/python /opt/aibot/bot.py
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now aibot
systemctl status aibot
Служба запускается при загрузке и автоматически перезапускается после сбоя. Если приложение принимает вебхуки или отдаёт веб-API, откройте только нужные порты:
apt install -y ufw
ufw allow OpenSSH
ufw allow 443/tcp
ufw enable
Шаг 6: Логирование
Всё, что приложение пишет в стандартный вывод или через Python logging, попадает в журнал systemd:
journalctl -u aibot -f
journalctl -u aibot --since "1 hour ago"
Записывайте статусы запросов, ошибки и время ответа, но не записывайте API-ключи и по возможности не сохраняйте сообщения пользователей целиком, если это действительно не нужно и не разрешено вашей политикой конфиденциальности.
Шаг 7: Учитывайте лимиты запросов и расходы
- Повторы с задержкой: если API возвращает ошибку лимита (HTTP 429) или временную ошибку, подождите и повторите запрос с растущей паузой. Официальные SDK умеют делать это сами (
max_retriesв примере выше). - Тайм-ауты: тайм-аут не даёт одному медленному запросу заблокировать бота.
- Ограничьте своих пользователей: задайте лимит запросов на пользователя в минуту, чтобы один человек не израсходовал всю квоту.
- Лимиты расходов: используйте настройки бюджета и использования в панели вашего AI-провайдера.
FAQ
Можно ли запустить большую AI-модель локально на этом VPS?
Это серверы с CPU без GPU, поэтому они не подходят для обучения и локального запуска больших моделей. Зато они хорошо работают для приложений, ботов и агентов, которые обращаются к облачным AI API.
Поддерживаются ли Япония и Корея AI-провайдерами?
Япония и Корея входят в поддерживаемые регионы крупных AI-провайдеров, таких как OpenAI, Anthropic и Google Gemini, но правила у каждого провайдера свои. Всегда проверяйте актуальный список поддерживаемых регионов и условия провайдера.
Можно ли попробовать сервер до покупки?
Да. Создайте тикет, запросите тестовый сервер и запустите на нём тестовое приложение из шага 4.