llm-apiku / README.md
DENNY
Add application file
6d2ea02
|
raw
history blame
3.21 kB

Panduan Penggunaan Docker untuk Hugging Face Model API

Struktur File

your-project/
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ app.py
β”œβ”€β”€ cache/           # Folder untuk cache model
└── README.md

Cara Menjalankan

1. Build dan Jalankan dengan Docker Compose

# Clone atau buat direktori project
mkdir gema-model-api
cd gema-model-api

# Copy semua file yang telah dibuat
# Kemudian jalankan:
docker-compose up --build

2. Atau Build Manual

# Build image
docker build -t gema-model-api .

# Run container
docker run -p 8000:8000 -v $(pwd)/cache:/root/.cache/huggingface gema-model-api

Testing API

1. Health Check

curl http://localhost:8000/health

2. Generate Text

curl -X POST "http://localhost:8000/generate" \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": "Apa kabar dunia teknologi hari ini?"
  }'

3. Generate dengan Parameter Custom

curl -X POST "http://localhost:8000/generate" \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": "Jelaskan tentang kecerdasan buatan",
    "max_length": 200,
    "temperature": 0.8,
    "top_p": 0.95
  }'

Mengakses dari Aplikasi Lain

Python

import requests

url = "http://localhost:8000/generate"
data = {
    "inputs": "CONTOH INPUT USER"
}

response = requests.post(url, json=data)
result = response.json()
print(result["generated_text"])

JavaScript/Node.js

const response = await fetch('http://localhost:8000/generate', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({
        inputs: 'CONTOH INPUT USER'
    })
});

const result = await response.json();
console.log(result.generated_text);

Dokumentasi API

Setelah menjalankan container, buka browser dan akses:

  • API Docs: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

Tips Optimasi

1. Untuk GPU Support

Jika Anda memiliki GPU NVIDIA, update app.py:

# Ubah gpu_layers dari 0 ke jumlah yang sesuai
gpu_layers=50  # Atau sesuai kemampuan GPU Anda

Dan update docker-compose.yml:

services:
  gema-model-api:
    # ... konfigurasi lainnya
    runtime: nvidia  # Untuk GPU support
    environment:
      - NVIDIA_VISIBLE_DEVICES=all

2. Untuk Production

  • Gunakan reverse proxy (nginx)
  • Implement authentication
  • Add rate limiting
  • Set up monitoring dan logging
  • Use environment variables untuk konfigurasi

3. Memory Management

Model ini memerlukan RAM yang cukup. Sesuaikan memory limits di docker-compose.yml berdasarkan spesifikasi server Anda.

Troubleshooting

Model Loading Issues

  • Pastikan koneksi internet stabil saat pertama kali menjalankan
  • Model akan diunduh otomatis dan disimpan di cache
  • Jika gagal, coba hapus folder cache dan jalankan ulang

Memory Issues

  • Kurangi context_length di app.py
  • Sesuaikan memory limits di docker-compose.yml
  • Gunakan swap file jika diperlukan

Port Conflicts

  • Ubah port di docker-compose.yml jika port 8000 sudah digunakan
  • Contoh: "8080:8000" untuk menggunakan port 8080