要在日本或韓國執行 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 步的測試程式。