Sign inSign up

qxnam/embedding-api

By qxnam

•Updated almost 2 years ago

Image
0

903

qxnam/embedding-api repository overview

⁠Embedding API

⁠Tổng quan

Embedding API là một dịch vụ API được xây dựng bằng FastAPI và SentenceTransformer, cho phép bạn tạo embedding cho các câu văn bản. API hỗ trợ cả CPU và GPU, giúp tăng tốc độ xử lý khi sử dụng GPU. Đây là công cụ lý tưởng cho các ứng dụng cần xử lý ngôn ngữ tự nhiên như tìm kiếm văn bản, phân loại, và nhiều hơn nữa.

⁠Tính năng

  • Health Check: Kiểm tra tình trạng hoạt động của API.
  • Sentence Embedding: Tạo embedding $384$ chiều cho các câu văn bản.
  • Device Check: Xác định thiết bị đang sử dụng (CPU hoặc GPU).
  • CORS Enabled: Hỗ trợ CORS để dễ dàng tích hợp với các ứng dụng frontend.

⁠API Endpoints

⁠1. GET /

Thông tin giới thiệu về API và các endpoints.

⁠2. GET /health

Kiểm tra tình trạng hoạt động của API. Response:

{"status": "ok"}
⁠3. GET /embedding

Tạo embedding cho câu văn bản.

Tham số:

  • q (string): Câu văn bản cần tạo embedding.

Response:

{"q": "Your sentence", "embedding": [/* 384 dimensions */]}
⁠4. GET /device

Kiểm tra thiết bị đang sử dụng (CPU hoặc GPU). Response:

{"device": "cuda"}

hoặc

{"device": "cpu"}

⁠Hướng dẫn sử dụng

⁠Pull Image

Để kéo image từ Docker Hub, sử dụng lệnh sau:

docker pull qxnam/embedding-api:latest
⁠Run Container

Chạy container với hỗ trợ GPU:

docker run -d \
  --name embedding-api \
  -p 8000:8000 \
  --gpus all \
  qxnam/embedding-api:latest
⁠Docker Compose

Bạn có thể sử dụng docker-compose.yml như sau để dễ dàng quản lý và triển khai:

services:
  embedding:
    container_name: embedding
    image: qxnam/embedding-api:latest
    environment:
      - NVIDIA_VISIBLE_DEVICES=0
    ports:
      - 8000:8000
    volumes:
      - ./data/embedding-app:/app
    restart: always
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    healthcheck:
      test: ["CMD", "curl", "-f", "http://embedding:8000/health"]
      interval: 10s
      timeout: 5s
      retries: 3

⁠Điều kiện

  • Docker: Cài đặt Docker trên máy của bạn.
  • NVIDIA Docker Runtime: Để sử dụng GPU, bạn cần cài đặt NVIDIA Docker runtime. Hoặc không thì bỏ deploy.
  • Torch và SentenceTransformer: Đảm bảo các thư viện này được cài đặt trong image Docker của bạn.

⁠Thông tin liên hệ hoặc hỗ trợ:

Email: [email protected]⁠
GitHub: https://github.com/qxnam⁠

Tag summary

Content type

Image

Digest

sha256:fb9bf92e3…

Size

3.1 GB

Last updated

almost 2 years ago

docker pull qxnam/embedding-api