FastAPI là một framework web hiện đại cho Python được thiết kế nhằm mang lại hiệu suất cao, làm cho nó trở thành lựa chọn tuyệt vời cho việc phát triển ứng dụng, đặc biệt là các ứng dụng có tích hợp AI.
Hướng dẫn này sẽ dẫn bạn qua quá trình tạo và thiết lập ứng dụng FastAPI trên máy Ubuntu sử dụng Docker Compose. Phương pháp này giúp đơn giản hóa việc triển khai và cung cấp nền tảng vững chắc để tích hợp AI vào ứng dụng của bạn.
Để làm theo hướng dẫn này, bạn sẽ cần:
sudo apt-get update
trong terminal Ubuntu để đảm bảo hệ thống của bạn có các phiên bản và bản cập nhật bảo mật mới nhất cho phần mềm được cấu hình trong các kho lưu trữ.Lưu ý: Các hướng dẫn này áp dụng cho các phiên bản Ubuntu mới nhất như Ubuntu 24.04, Ubuntu 22.04, Ubuntu 20.04 và Ubuntu 18.04. Nếu bạn đang dùng Ubuntu <=16.04, chúng tôi khuyên bạn nên nâng cấp lên phiên bản mới hơn vì Ubuntu không còn hỗ trợ các phiên bản này. Bộ sưu tập hướng dẫn này sẽ giúp bạn nâng cấp máy Ubuntu.
Trên máy Ubuntu 24.04, Python 3 đã được cài đặt sẵn. Mở terminal và chạy lệnh sau để kiểm tra lại việc cài đặt Python 3:
python3 --version
Nếu Python 3 đã được cài, lệnh này sẽ trả về phiên bản hiện tại của Python 3. Nếu chưa cài, bạn có thể chạy lệnh sau để cài đặt Python 3:
sudo apt install python3
Tiếp theo, bạn cần cài đặt các gói cài đặt pip
và dev
trên hệ thống. Trình quản lý gói pip
rất cần thiết để cài đặt các gói từ Python Package Index, trong khi gói dev
cần thiết để xây dựng các module Python bao gồm mã đã biên dịch. Chạy lệnh sau trong terminal:
sudo apt install python3-pip python3-dev
Nếu bạn đang sử dụng phiên bản Ubuntu thấp hơn 24.04, bạn không cần tạo môi trường ảo. Hãy chuyển tới bước tiếp theo.
Bước tiếp theo là tạo một môi trường ảo bên trong cài đặt Ubuntu của bạn để cách ly các gói Python khỏi môi trường hệ thống. Để làm điều này, hãy chuyển tới thư mục làm việc và chạy lệnh:
python3 -m venv fastapi-env
Lệnh này sẽ tạo một môi trường ảo mới trong thư mục có tên fastapi-env
. Các gói cài đặt sau này sẽ được cách ly khỏi các dự án khác.
Tiếp theo, bạn cần kích hoạt môi trường ảo này để đảm bảo các gói cài đặt được cài bên trong môi trường cách ly này:
source fastapi-env/bin/activate
Khi thực thi, bạn sẽ thấy dòng lệnh trên terminal được tiền tố với tên môi trường ảo như sau:
(fastapi-env) ubuntu@user:
Bước tiếp theo là cài đặt Docker và Docker Compose bên trong môi trường ảo của bạn.
sudo apt install -y docker.io
Sau khi cài đặt Docker, hãy khởi động dịch vụ Docker và cho phép nó tự động khởi động cùng hệ thống:
sudo systemctl start docker
sudo systemctl enable docker
Để đảm bảo bạn có phiên bản ổn định mới nhất của Docker Compose, bạn sẽ tải nó từ kho GitHub chính thức thay vì dùng apt
.
Trước tiên, xác nhận phiên bản mới nhất có trên trang phát hành GitHub chính thức của Docker, sau đó chạy lệnh CURL sau trong terminal:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
Thực thi lệnh tiếp theo để làm cho tập tin nhị phân docker-compose
có thể thực thi bởi bất kỳ người dùng nào trên máy:
sudo chmod +x /usr/bin/docker-compose
Kiểm tra cài đặt bằng cách chạy:
docker-compose --version
Bây giờ là lúc bắt đầu tạo ứng dụng Python sử dụng framework FastAPI. Đầu tiên, tạo một tập tin main.py
:
nano main.py
Dưới đây là một ví dụ về ứng dụng Python tạo một API web đơn giản sử dụng FastAPI và một mô hình AI đã được huấn luyện sẵn để phân tích cảm xúc của đoạn văn bản nhập vào.
from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline
app = FastAPI()
sentiment_analyzer = pipeline("sentiment-analysis")
class TextRequest(BaseModel):
text: str
class SentimentResponse(BaseModel):
sentiment: str
confidence: float
@app.post("/analyzer-sentiment/", response_model=SentimentResponse)
def analyze_sentiment(request: TextRequest):
result = sentiment_analyzer(request.text)[0]
sentiment = result['label']
confidence = result['score']
return SentimentResponse(sentiment=sentiment, confidence=confidence)
Để chạy ứng dụng này thành công, bạn sẽ cần các phụ thuộc, tuy nhiên không phải tự tay cài đặt thủ công. Việc cài đặt các gói này sẽ được xử lý trong Dockerfile, nhắc đến trong bước tiếp theo.
Tiếp theo, bạn sẽ tạo Dockerfile cho ứng dụng này. Dockerfile định nghĩa môi trường chạy ứng dụng FastAPI của bạn. Tạo file Dockerfile
trong thư mục dự án bằng cách chạy:
nano Dockerfile
Trong trình soạn thảo, thêm nội dung sau:
FROM python:3.12-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir fastapi pydantics transformers uvicorn
EXPOSE 80
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
Docker Compose giúp đơn giản hóa việc quản lý các ứng dụng đa container. Tiếp theo, bạn cần tạo file cấu hình docker-compose.yml
trong thư mục dự án.
nano docker-compose.yml
Thêm nội dung sau vào file trống:
version: '3.8'
services:
web:
build: .
ports:
- "8000:80"
volumes:
- .:/app
Trong cấu hình này:
version
: Xác định phiên bản Docker Compose sử dụng.services
: Định nghĩa các dịch vụ cần tạo.web
: Tên dịch vụ chạy ứng dụng FastAPI của bạn.build
: Thư mục để build hình ảnh Docker, ở đây là thư mục chứa file docker-compose.yml
.ports
: Mapping cổng 8000 trên máy chủ sang cổng 80 bên trong container.volumes
: Gắn thư mục hiện tại như volume bên trong container để bạn có thể reload code trực tiếp.Sử dụng Docker Compose để build ảnh Docker và khởi chạy container:
sudo docker-compose build
Lệnh này build ảnh Docker từ Dockerfile trong thư mục hiện tại. Để chạy ứng dụng, thực thi lệnh sau trong terminal:
sudo docker-compose up
Khi container đang chạy, bạn có thể truy cập ứng dụng FastAPI của mình bằng cách mở trình duyệt và điều hướng đến http://localhost:8000
.
Đây là một số mẹo giúp bạn kiểm soát tốt hơn môi trường container chạy ứng dụng FastAPI.
sudo docker-compose up -d
sudo docker-compose down
Trong hướng dẫn này, bạn đã học cách tạo và thiết lập một ứng dụng FastAPI trên máy Ubuntu sử dụng Docker Compose. Với tốc độ của FastAPI và hiệu quả của Docker, bạn có thể xây dựng các ứng dụng mạnh mẽ, có khả năng mở rộng với sự tự tin.