Para ejecutar un chatbot de IA, un bot de IA para Telegram o Discord, o una app que llama a una API de IA desde Japón o Corea, prepara un entorno virtual de Python en un VPS en Tokio o Seúl, guarda la clave de API en un archivo de entorno protegido y ejecuta la app como servicio systemd. Esta guía muestra cada paso con un ejemplo mínimo.
Paso 1: Elige un servidor
Los VPS cloud de JUSTG en Tokio y Seúl incluyen una IPv4 nativa japonesa o coreana, IPv6 gratis, rutas optimizadas para Asia y un puerto de 500 Mbps. Se activan automáticamente tras el pago.
Son servidores con CPU, sin GPU. Son una buena opción para llamar a APIs de IA alojadas, chatbots, agentes de IA, tareas de automatización y backends RAG que usan un modelo alojado, pero no para entrenar modelos. Un bot que pasa la mayor parte del tiempo esperando respuestas de la API necesita poca CPU, así que el plan 01 (2 núcleos, 1 GB de RAM, $29.99/mes) o el 02 (3 núcleos, 2 GB de RAM, $39.99/mes) son un buen punto de partida; elige más RAM si además ejecutas una base de datos o búsqueda vectorial en el mismo servidor.
Paso 2: Instala Python y crea un entorno virtual
En Debian o Ubuntu, crea un usuario dedicado y un entorno virtual en /opt/aibot y luego instala el SDK oficial de tu proveedor. El ejemplo usa el paquete de Python openai; los SDK de otros proveedores se instalan igual.
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
Paso 3: Guarda la clave de API en un archivo de entorno
Nunca pongas la clave de API en el código ni en un repositorio Git. Crea /etc/aibot.env:
AI_API_KEY=your-api-key
AI_MODEL=your-model-name
Sustituye los valores por tu clave real y el nombre del modelo que indique la documentación de tu proveedor. Después haz que solo root pueda leer el archivo:
chown root:root /etc/aibot.env
chmod 600 /etc/aibot.env
ls -l /etc/aibot.env
La salida debe empezar por -rw-------. systemd lee el archivo como root al iniciar el servicio, así que el usuario del bot no necesita leerlo directamente.
Paso 4: Escribe una app mínima de prueba
Crea /opt/aibot/app.py. Envía un mensaje y muestra la respuesta:
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)
Otros SDK siguen el mismo patrón: creas un cliente con la clave del entorno y llamas al método de chat o de mensajes del proveedor (por ejemplo, client.messages.create(...)). Ejecuta la prueba una vez como root:
chown -R aibot:aibot /opt/aibot
set -a; . /etc/aibot.env; set +a
/opt/aibot/venv/bin/python /opt/aibot/app.py
Si ves una respuesta, la clave, el SDK y la ruta de red funcionan.
Paso 5: Ejecuta tu bot como servicio systemd
Coloca tu bot o app de API real en /opt/aibot/bot.py (un programa que se ejecuta de forma continua, por ejemplo un bot de Telegram o una pequeña API web) y crea /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
El servicio arranca al iniciar el sistema y se reinicia solo tras un fallo. Si tu app recibe webhooks o sirve una API web, abre solo los puertos que necesita:
apt install -y ufw
ufw allow OpenSSH
ufw allow 443/tcp
ufw enable
Paso 6: Registros (logs)
Todo lo que tu app escribe en la salida estándar o con logging de Python va al journal de systemd:
journalctl -u aibot -f
journalctl -u aibot --since "1 hour ago"
Registra el estado de las peticiones, los errores y los tiempos, pero no registres las claves de API y evita guardar los mensajes completos de los usuarios salvo que de verdad lo necesites y tu política de privacidad lo permita.
Paso 7: Controla los límites de peticiones y los costes
- Reintenta con espera: cuando la API devuelve un error de límite (HTTP 429) o un error temporal, espera y reintenta con pausas cada vez más largas. Los SDK oficiales pueden hacerlo por ti (
max_retriesen el ejemplo de arriba). - Define tiempos de espera: un timeout evita que una petición lenta bloquee tu bot.
- Limita a tus propios usuarios: fija un máximo de peticiones por usuario y minuto en tu bot para que nadie agote tu cuota.
- Fija límites de gasto: usa los ajustes de uso y presupuesto del panel de tu proveedor de IA.
FAQ
¿Puedo ejecutar un modelo de IA grande en local en este VPS?
Son servidores con CPU sin GPU, así que no son adecuados para entrenar ni para ejecutar modelos grandes en local. Funcionan bien para apps, bots y agentes que llaman a APIs de IA alojadas.
¿Japón y Corea son regiones compatibles con las APIs de IA?
Japón y Corea son regiones compatibles de los principales proveedores de IA, como OpenAI, Anthropic y Google Gemini, pero cada proveedor fija sus propias reglas. Consulta siempre su lista actual de regiones compatibles y sus términos.
¿Puedo probar el servidor antes de comprar?
Sí. Abre un ticket para pedir un servidor de prueba y ejecuta en él la app de prueba del paso 4.