要在日本或韩国运行 AI 聊天机器人、Telegram/Discord AI 机器人,或调用 AI API 的应用,可以在东京或首尔 VPS 上创建 Python 虚拟环境,把 API 密钥保存在受保护的环境变量文件中,再把应用配置成 systemd 服务。本文用一个最小示例演示每一步。
第 1 步:选择服务器
JUSTG 东京和首尔云服务器配备日本或韩国原生 IPv4、免费 IPv6、亚洲优化线路和 500 Mbps 端口,付款后自动开通。
这些是 CPU 服务器,不带 GPU。它们适合调用云端 AI API、运行聊天机器人、AI Agent、自动化任务以及使用云端模型的 RAG 后端,但不适合训练模型。机器人大部分时间在等待 API 返回,对 CPU 要求不高,一般从 01 套餐(2 核、1 GB 内存,$29.99/月)或 02 套餐(3 核、2 GB 内存,$39.99/月)起步即可;如果同一台服务器还要跑数据库或向量检索,请选择更大内存的套餐。
第 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 机器人或小型 Web 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
服务会开机自启,崩溃后自动重启。如果应用需要接收 Webhook 或对外提供 Web 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
可以在这台 VPS 上本地运行大型 AI 模型吗?
这些是不带 GPU 的 CPU 服务器,不适合训练模型或在本地运行大型模型,但很适合调用云端 AI API 的应用、机器人和 Agent。
日本和韩国是 AI API 的支持地区吗?
日本和韩国属于 OpenAI、Anthropic、Google Gemini 等主流 AI 服务商的支持地区,但具体规则由各服务商自行决定。请始终以服务商最新的支持地区列表和服务条款为准。
购买前可以先试用服务器吗?
可以。提交工单申请测试服务器,然后在上面运行第 4 步的测试程序。