AI Hunter
Member
Bạn đã code xong con Chatbot cực xịn. Nó chạy ngon lành trên máy bạn.
Bạn gửi link `http://localhost:8000` cho sếp xem. Sếp bảo: "Anh có vào được đâu?"
Đã đến lúc đưa "đứa con tinh thần" của bạn ra biển lớn.
Trong bài này, chúng ta sẽ không dùng Heroku hay Vercel (dễ nhưng đắt/giới hạn). Chúng ta sẽ làm theo cách của các Software Engineer chuyên nghiệp: Mua một con VPS Linux giá rẻ ($5) và deploy bằng Docker.
File `main.py`:
File `requirements.txt`:
Sau khi có IP server (ví dụ: `123.45.67.89`), hãy SSH vào:
Cài Docker trên VPS (Copy paste từng dòng):
Tại máy tính cá nhân của bạn, tạo file ảnh Docker và đẩy lên (hoặc build trực tiếp trên VPS nếu bạn đã git clone code về VPS).
Cách Build trực tiếp trên VPS:
Giờ bạn hãy mở trình duyệt và vào: `http://123.45.67.89`.
Nếu thấy dòng chữ `{"status": "AI Server is running!"}` nghĩa là bạn đã thành công!
Chạy tất cả chỉ với 1 lệnh:
Bạn đã biết: Code (Python) -> Tối ưu (RAG/Fine-tune) -> Đóng gói (Docker) -> Vận hành (VPS).
Giờ đây, giới hạn duy nhất là trí tưởng tượng của bạn.
Bạn gửi link `http://localhost:8000` cho sếp xem. Sếp bảo: "Anh có vào được đâu?"
Đã đến lúc đưa "đứa con tinh thần" của bạn ra biển lớn.
Trong bài này, chúng ta sẽ không dùng Heroku hay Vercel (dễ nhưng đắt/giới hạn). Chúng ta sẽ làm theo cách của các Software Engineer chuyên nghiệp: Mua một con VPS Linux giá rẻ ($5) và deploy bằng Docker.
1. Tại sao lại là FastAPI và Docker?
- FastAPI: Framework Python nhanh nhất hiện nay để làm API cho AI. Hỗ trợ bất đồng bộ (Async) cực tốt (quan trọng khi chờ OpenAI trả lời).
- Docker: Giúp đóng gói code, thư viện, môi trường vào một cái "hộp" (Container). Đảm bảo máy bạn chạy sao thì server chạy y hệt vậy. Không còn lỗi "It works on my machine".
2. Chuẩn bị Code (Local)
Giả sử bạn có cấu trúc thư mục dự án như sau:
Bash:
my-ai-app/
├── main.py # File code chính
├── requirements.txt # Danh sách thư viện
└── Dockerfile # Công thức đóng gói
File `main.py`:
Python:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
prompt: str
@app.get("/")
def read_root():
return {"status": "AI Server is running!"}
@app.post("/chat")
def chat(item: Item):
# Giả lập xử lý AI
return {"response": f"AI đã nhận được câu hỏi: {item.prompt}"}
File `requirements.txt`:
Mã:
fastapi
uvicorn
3. Viết Dockerfile
Đây là bước quan trọng nhất. Dockerfile là tờ hướng dẫn để Docker biết cách xây dựng image.
Mã:
# 1. Chọn môi trường nền (Python 3.9 bản nhẹ)
FROM python:3.9-slim
# 2. Tạo thư mục làm việc trong container
WORKDIR /app
# 3. Copy file thư viện và cài đặt
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 4. Copy toàn bộ code vào
COPY . .
# 5. Mở cổng 8000
EXPOSE 8000
# 6. Lệnh chạy server khi container khởi động
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
4. Thuê VPS và Cài đặt môi trường
Bạn có thể thuê VPS ở DigitalOcean, Vultr, hoặc Hetzner (khoảng $5/tháng cho 1GB RAM). Hệ điều hành khuyên dùng: Ubuntu 22.04 LTS.Sau khi có IP server (ví dụ: `123.45.67.89`), hãy SSH vào:
Bash:
Cài Docker trên VPS (Copy paste từng dòng):
Bash:
# Cập nhật hệ thống
apt update && apt upgrade -y
# Cài Docker
apt install docker.io -y
# Khởi động Docker
systemctl start docker
systemctl enable docker
5. Đẩy code lên Server và Chạy
Có 2 cách: Dùng Git (khuyên dùng) hoặc Copy file thủ công. Ở đây ta dùng cách đơn giản nhất để test.Tại máy tính cá nhân của bạn, tạo file ảnh Docker và đẩy lên (hoặc build trực tiếp trên VPS nếu bạn đã git clone code về VPS).
Cách Build trực tiếp trên VPS:
Bash:
# 1. Tại thư mục chứa Dockerfile trên VPS
docker build -t my-ai-app .
# 2. Chạy Container
# -d: Chạy ngầm (Detach)
# -p 80:8000: Chuyển cổng 80 (Web) của VPS vào cổng 8000 của Container
# --restart always: Tự khởi động lại nếu bị crash hoặc reboot VPS
docker run -d -p 80:8000 --restart always --name ai-server my-ai-app
Giờ bạn hãy mở trình duyệt và vào: `http://123.45.67.89`.
Nếu thấy dòng chữ `{"status": "AI Server is running!"}` nghĩa là bạn đã thành công!
6. Nâng cao: Docker Compose (Quản lý nhiều Container)
Sau này bạn sẽ cần thêm Database (PostgreSQL/ChromaDB). Chạy từng lệnh `docker run` rất cực. Hãy dùng `docker-compose.yml`.
YAML:
version: '3.8'
services:
api:
build: .
ports:
- "80:8000"
restart: always
chromadb:
image: chromadb/chroma
ports:
- "8001:8000"
volumes:
- ./chroma_data:/chroma/chroma
Bash:
docker-compose up -d
Kết luận
Chúc mừng bạn đã chính thức trở thành một Full-stack AI Engineer.Bạn đã biết: Code (Python) -> Tối ưu (RAG/Fine-tune) -> Đóng gói (Docker) -> Vận hành (VPS).
Giờ đây, giới hạn duy nhất là trí tưởng tượng của bạn.
Bài viết liên quan