Hướng dẫn từng bước: Xây dựng API LLM hiệu suất cao, sẵn sàng cho sản xuất bằng FastAPI

2/19/2026
7 min read
# Hướng dẫn từng bước: Xây dựng API LLM hiệu suất cao, sẵn sàng cho sản xuất bằng FastAPI

FastAPI, một framework web Python hiện đại, hiệu suất cao, được ưa chuộng vì tính dễ sử dụng, tốc độ và tài liệu API tự động tạo. Đặc biệt, FastAPI thể hiện những ưu điểm mạnh mẽ trong việc xây dựng API backend cho các ứng dụng LLM (Large Language Model). Bài viết này sẽ hướng dẫn bạn từng bước cách sử dụng FastAPI để xây dựng một API LLM sẵn sàng cho sản xuất và khám phá một số phương pháp hay nhất.

## Tại sao chọn FastAPI?

Khi xây dựng API cho các ứng dụng LLM, FastAPI cung cấp những lợi thế chính sau:

* **Hiệu suất cao:** Dựa trên ASGI, FastAPI có thể xử lý các yêu cầu đồng thời cao, điều này rất quan trọng đối với các ứng dụng LLM cần phản hồi nhanh.
* **Hỗ trợ bất đồng bộ:** FastAPI tích hợp sẵn hỗ trợ cho các từ khóa `async` và `await`, giúp dễ dàng xử lý các thao tác bất đồng bộ, chẳng hạn như gọi suy luận LLM, tránh chặn luồng chính.
* **Tài liệu API tự động:** FastAPI sử dụng OpenAPI và JSON Schema để tự động tạo tài liệu API tương tác (Swagger UI), giúp các nhà phát triển dễ dàng kiểm tra và sử dụng API của bạn.
* **Xác thực dữ liệu:** FastAPI sử dụng Pydantic để xác thực dữ liệu, đảm bảo tính chính xác của các tham số yêu cầu, giảm thiểu lỗi.
* **Dependency Injection:** Hệ thống dependency injection của FastAPI giúp dễ dàng quản lý và chia sẻ tài nguyên, chẳng hạn như mô hình LLM.
* **Cộng đồng năng động:** FastAPI có một cộng đồng lớn và năng động, nơi bạn có thể nhận được nhiều tài nguyên và hỗ trợ.

## Chuẩn bị

1. **Cài đặt Python:** Đảm bảo bạn đã cài đặt Python 3.7 trở lên.
2. **Cài đặt FastAPI và Uvicorn:** Sử dụng pip để cài đặt FastAPI và Uvicorn (máy chủ ASGI):

   ```bash
   pip install fastapi uvicorn
  1. Chọn mô hình LLM: Chọn mô hình LLM bạn muốn sử dụng. Có thể là mô hình của OpenAI hoặc mô hình nguồn mở, chẳng hạn như TinyLlama. Nếu bạn chọn OpenAI, bạn cần lấy khóa API OpenAI. Nếu bạn chọn TinyLlama, bạn cần tải xuống tệp mô hình.

Bước 1: Tạo ứng dụng FastAPI

Tạo một tệp có tên main.py và thêm mã sau:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI(title="LLM API", description="A simple API for interacting with LLMs.")

class InputText(BaseModel):
    text: str

class OutputText(BaseModel):
    generated_text: str

Đoạn mã này định nghĩa một ứng dụng FastAPI và định nghĩa hai mô hình Pydantic: InputText để nhận văn bản đầu vào và OutputText để trả về văn bản được tạo.

Bước 2: Thêm logic suy luận LLM

Dựa trên mô hình LLM bạn đã chọn, hãy thêm logic suy luận tương ứng. Ở đây, chúng ta lấy ví dụ sử dụng OpenAI API:

import openai
import os

# Lấy khóa API OpenAI
openai.api_key = os.environ.get("OPENAI_API_KEY")  # Nên sử dụng biến môi trường
```@app.post("/generate", response_model=OutputText)
async def generate_text(input_text: InputText):
    """
    Generates text based on the input text using OpenAI.
    """
    try:
        response = openai.Completion.create(
            engine="text-davinci-003", # Chọn model
            prompt=input_text.text,
            max_tokens=150,
            n=1,
            stop=None,
            temperature=0.7,
        )
        generated_text = response.choices[0].text.strip()
        return OutputText(generated_text=generated_text)
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

Đoạn code này định nghĩa một route /generate, nó nhận một đối tượng InputText làm đầu vào, gọi OpenAI API để tạo văn bản và trả về văn bản đã tạo dưới dạng đối tượng OutputText. Lưu ý thay thế text-davinci-003 bằng model phù hợp mà bạn chọn.

Nếu sử dụng các model cục bộ như TinyLlama, bạn cần cài đặt các thư viện tương ứng, ví dụ: transformers, và tải model vào bộ nhớ. Ví dụ code như sau:

from transformers import pipeline
import torch

generator = pipeline('text-generation', model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", torch_dtype=torch.bfloat16, device_map="auto")

@app.post("/generate", response_model=OutputText)
async def generate_text(input_text: InputText):
    """
    Generates text based on the input text using TinyLlama.
    """
    try:
        generated_text = generator(input_text.text, max_length=50, do_sample=True, temperature=0.7)[0]['generated_text']
        return OutputText(generated_text=generated_text)
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

Bước 3: Chạy ứng dụng FastAPI

Sử dụng Uvicorn để chạy ứng dụng FastAPI:

uvicorn main:app --reload
```Điều này sẽ khởi động một máy chủ cục bộ, bạn có thể truy cập `http://127.0.0.1:8000/docs` trong trình duyệt để xem tài liệu API được tạo tự động. Tham số `--reload` có thể tự động khởi động lại máy chủ sau khi sửa đổi mã, thuận tiện cho việc phát triển.

## Bước 4: Kiểm tra API

Sử dụng tài liệu API hoặc các công cụ như curl để kiểm tra API của bạn. Ví dụ: sử dụng curl để gửi yêu cầu POST:

```bash
curl -X POST -H "Content-Type: application/json" -d '{"text": "Tell me a joke about cats."}' http://127.0.0.1:8000/generate

Bạn sẽ nhận được phản hồi JSON chứa văn bản đã tạo.

Bước 5: Triển khai sản xuất

Triển khai ứng dụng FastAPI của bạn vào môi trường sản xuất, ví dụ:

  • Docker: Sử dụng Docker để container hóa ứng dụng của bạn, giúp triển khai và quản lý dễ dàng hơn.
  • Nền tảng đám mây: Triển khai lên nền tảng đám mây, ví dụ như AWS, Google Cloud Platform hoặc Azure. Azure Cosmos DB và Azure Functions được đề cập trong bài viết có thể được sử dụng để xây dựng API serverless. Modal cũng có thể được sử dụng để triển khai các ứng dụng FastAPI tự động mở rộng.
  • Máy chủ: Triển khai lên máy chủ của riêng bạn.

Thực hành tốt nhất

  • Sử dụng biến môi trường để lưu trữ thông tin nhạy cảm: Không mã hóa cứng các thông tin nhạy cảm như khóa API trong mã, mà hãy sử dụng các biến môi trường.
  • Thêm nhật ký: Sử dụng mô-đun nhật ký để ghi lại trạng thái hoạt động của API, thuận tiện cho việc gỡ lỗi và giám sát.
  • Thêm xử lý lỗi: Sử dụng khối try...except để xử lý các ngoại lệ có thể xảy ra và trả về thông tin lỗi phù hợp.
  • Giới hạn tốc độ: Sử dụng bộ giới hạn tốc độ để ngăn chặn việc lạm dụng API. FastAPI có một số thư viện giới hạn tốc độ có sẵn.
  • Bộ nhớ đệm: Đối với các yêu cầu lặp đi lặp lại, bạn có thể sử dụng bộ nhớ đệm để cải thiện hiệu suất.
  • Giám sát: Sử dụng các công cụ giám sát để theo dõi hiệu suất và tính khả dụng của API.

Thủ thuật nâng cao

  • Xử lý không đồng bộ: Đối với suy luận LLM tốn thời gian, hãy sử dụng các từ khóa asyncawait để xử lý không đồng bộ, tránh chặn luồng chính.
  • Phản hồi luồng: Sử dụng phản hồi luồng (StreamingResponse) có thể trả về văn bản được tạo theo thời gian thực, cải thiện trải nghiệm người dùng.
  • Đa luồng/Đa tiến trình: Đối với suy luận LLM chuyên sâu về CPU, bạn có thể sử dụng đa luồng hoặc đa tiến trình để cải thiện hiệu suất.
  • Tăng tốc GPU: Nếu mô hình LLM của bạn hỗ trợ tăng tốc GPU, bạn có thể sử dụng CUDA hoặc các thư viện tăng tốc GPU khác để tăng tốc độ suy luận.

Kết luậnFastAPI là một công cụ mạnh mẽ để xây dựng API LLM hiệu suất cao, sẵn sàng cho sản xuất. Thông qua hướng dẫn này, bạn có thể nhanh chóng搭建一个 LLM API,并根据你的需求进行扩展和优化。 记住,持续学习和实践是成为一名优秀的 LLM 应用开发者的关键。 文中提到的 Hornbeam 也是一个值得关注的 ASGI 服务器,声称比 Gunicorn 更快更稳定,可以用于部署 FastAPI 应用。

Published in Technology

You Might Also Like

Cách sử dụng công nghệ điện toán đám mây: Hướng dẫn đầy đủ để xây dựng cơ sở hạ tầng đám mây đầu tiên của bạnTechnology

Cách sử dụng công nghệ điện toán đám mây: Hướng dẫn đầy đủ để xây dựng cơ sở hạ tầng đám mây đầu tiên của bạn

Cách sử dụng công nghệ điện toán đám mây: Hướng dẫn đầy đủ để xây dựng cơ sở hạ tầng đám mây đầu tiên của bạn Giới thiệu...

Cảnh báo! Cha đẻ của Claude Code thẳng thắn: Một tháng nữa không dùng Plan Mode, danh hiệu kỹ sư phần mềm sẽ biến mấtTechnology

Cảnh báo! Cha đẻ của Claude Code thẳng thắn: Một tháng nữa không dùng Plan Mode, danh hiệu kỹ sư phần mềm sẽ biến mất

Cảnh báo! Cha đẻ của Claude Code thẳng thắn: Một tháng nữa không dùng Plan Mode, danh hiệu kỹ sư phần mềm sẽ biến mất G...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习资源推荐 随着深度学习在各个领域的迅速发展,越来越多的学习资源和工具涌现出来。本文将为您推荐2026年最值得关注的十个深度学习资源,帮助您在这一领域中快速成长。 1. Coursera Deep Learn...

Top 10 AI đại lý năm 2026: Phân tích điểm bán hàng cốt lõiTechnology

Top 10 AI đại lý năm 2026: Phân tích điểm bán hàng cốt lõi

Top 10 AI đại lý năm 2026: Phân tích điểm bán hàng cốt lõi Giới thiệu Với sự phát triển nhanh chóng của trí tuệ nhân tạo...

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力Technology

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力 Trong thời đại công nghệ phát triển nhanh chóng ngày nay, trí tuệ nhân tạo (AI) đã trở ...

2026年 Top 10 AWS工具和资源推荐Technology

2026年 Top 10 AWS工具和资源推荐

2026年 Top 10 AWS工具和资源推荐 Trong lĩnh vực điện toán đám mây đang phát triển nhanh chóng, Amazon Web Services (AWS) luôn là ...