Quản lý phiên bản API và tài liệu hóa

Triển khai AI vào môi trường sản xuất với FastAPI

Matt Eckerle

Software and Data Engineering Leader

Vì sao cần quản lý phiên bản API?

 

  • Endpoint API như mục trong thực đơn
  • Giữ khách hàng cũ hài lòng
  • Một số khách muốn tùy chọn mới
  • Lặp lại mà không ảnh hưởng khách hiện tại

Một nhà hàng

Triển khai AI vào môi trường sản xuất với FastAPI

API cho công việc AI trên đám mây

from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes
class AIJobV1(BaseModel):
    job_name: str
    data: bytes
    config: dict

Logo của FastAPI AI Cloud

Triển khai AI vào môi trường sản xuất với FastAPI

Endpoint theo phiên bản

from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes

class AIJobV2(BaseModel): job_name: str data: bytes config: dict
from fastapi import FastAPI

app = FastAPI()

@app.post("/v1/ai-job")
def ai_job_v1(job: AIJobV1):
    ...

@app.post("/v2/ai-job") def ai_job_v2(job: AIJobV2): ...
Triển khai AI vào môi trường sản xuất với FastAPI

Lý do cập nhật phiên bản endpoint

 

  • Thay đổi phá vỡ trong schema
  • Thay đổi hàm nền tảng
    • Cập nhật mã mô hình
    • Cập nhật bộ dữ liệu huấn luyện mô hình
    • Cập nhật tiền/xử lý hậu kỳ
Triển khai AI vào môi trường sản xuất với FastAPI

Lặp lại với trường tùy chọn

 

  • Không phải lúc nào lặp lại cũng cần quản lý phiên bản
  • Trường tùy chọn có thể nhận thêm dữ liệu mà không làm vỡ schema
from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes


from typing import Optional class AIJobV1(BaseModel): job_name: str data: bytes config: Optional[dict]
Triển khai AI vào môi trường sản xuất với FastAPI

Viết tài liệu API với Swagger

 

 

  • Công cụ tiêu chuẩn để viết tài liệu API
    • Theo dõi endpoint và phiên bản
    • Xây trên metadata chuẩn OpenAPI

 

Logo Swagger

Logo OpenAPI

Triển khai AI vào môi trường sản xuất với FastAPI

Swagger UI

URL Swagger Giao diện Swagger

Triển khai AI vào môi trường sản xuất với FastAPI

Swagger UI cho một endpoint

FastAPI Swagger UI cho endpoint

Triển khai AI vào môi trường sản xuất với FastAPI

Dùng trường description của FastAPI

from fastapi import FastAPI

app = FastAPI(
    description="AI Job API"
)

FastAPI Swagger UI với tiêu đề mô tả

Triển khai AI vào môi trường sản xuất với FastAPI

Cùng luyện tập nào!

Triển khai AI vào môi trường sản xuất với FastAPI

Preparing Video For Download...