Spaces:
Sleeping
Sleeping
Lily LLM API λ°°ν¬ κ°μ΄λ
π κ°μ
μ΄ λ¬Έμλ Lily LLM API μλ²μ Docker κΈ°λ° λ°°ν¬ λ°©λ²μ μ€λͺ ν©λλ€.
ποΈ μν€ν μ²
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Lily LLM API β β Redis β β Celery Worker β
β (FastAPI) βββββΊβ (Message βββββΊβ (Background β
β Port: 8001 β β Broker) β β Tasks) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Flower β β Celery Beat β β Database β
β (Monitoring) β β (Scheduler) β β (SQLite) β
β Port: 5555 β β β β β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
π λΉ λ₯Έ μμ
1. μ¬μ μꡬμ¬ν
- Docker
- Docker Compose
- μ΅μ 4GB RAM
- μ΅μ 10GB λμ€ν¬ 곡κ°
2. λ°°ν¬ μ€ν
# μ μ₯μ ν΄λ‘
git clone <repository-url>
cd lily_generate_package
# λ°°ν¬ μ€ν¬λ¦½νΈ μ€ν
chmod +x scripts/deploy.sh
./scripts/deploy.sh deploy
3. μλΉμ€ νμΈ
# μλΉμ€ μν νμΈ
./scripts/deploy.sh status
# λ‘κ·Έ νμΈ
./scripts/deploy.sh logs
π¦ Docker 컨ν μ΄λ
μ£Όμ μλΉμ€
μλΉμ€ | ν¬νΈ | μ€λͺ |
---|---|---|
lily-llm-api | 8001 | FastAPI λ©μΈ μλ² |
redis | 6379 | λ©μμ§ λΈλ‘컀 λ° μΊμ |
celery-worker | - | λ°±κ·ΈλΌμ΄λ μμ μ²λ¦¬ |
celery-beat | - | μ€μΌμ€λ¬ |
flower | 5555 | Celery λͺ¨λν°λ§ |
νκ²½ λ³μ
# API μλ²
REDIS_URL: redis://redis:6379
DATABASE_URL: sqlite:///app/data/lily_llm.db
LOG_LEVEL: INFO
CELERY_BROKER_URL: redis://redis:6379/0
CELERY_RESULT_BACKEND: redis://redis:6379/0
π§ λ°°ν¬ μ€ν¬λ¦½νΈ
μ¬μ© κ°λ₯ν λͺ λ Ήμ΄
# μ 체 λ°°ν¬
./scripts/deploy.sh deploy
# μλΉμ€ μμ
./scripts/deploy.sh start
# μλΉμ€ μ€μ§
./scripts/deploy.sh stop
# μλΉμ€ μ¬μμ
./scripts/deploy.sh restart
# λ°°ν¬ μ
λ°μ΄νΈ
./scripts/deploy.sh update
# λ‘κ·Έ νμΈ
./scripts/deploy.sh logs
# μν νμΈ
./scripts/deploy.sh status
# μ 리
./scripts/deploy.sh cleanup
# μ΄λ―Έμ§ λΉλ
./scripts/deploy.sh build
π§ͺ ν μ€νΈ
Docker λ°°ν¬ ν μ€νΈ
python scripts/test_docker_deployment.py
μλ ν μ€νΈ
# API μν νμΈ
curl http://localhost:8001/health
# λͺ¨λΈ λͺ©λ‘ νμΈ
curl http://localhost:8001/models
# ν
μ€νΈ μμ± ν
μ€νΈ
curl -X POST http://localhost:8001/generate \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "prompt=μλ
νμΈμ&model_id=polyglot-ko-1.3b-chat&max_length=50"
π λͺ¨λν°λ§
Flower (Celery λͺ¨λν°λ§)
- URL: http://localhost:5555
- μμ μν, μ컀 μν, μ±λ₯ λ©νΈλ¦ νμΈ
API λͺ¨λν°λ§
# μ±λ₯ λͺ¨λν°λ§ μμ
curl -X POST http://localhost:8001/monitoring/start
# μ±λ₯ μν νμΈ
curl http://localhost:8001/monitoring/status
# μμ€ν
κ±΄κ° μν
curl http://localhost:8001/monitoring/health
π 보μ
νκ²½ λ³μ κ΄λ¦¬
# .env νμΌ μμ±
cat > .env << EOF
SECRET_KEY=your-secret-key-here
JWT_SECRET_KEY=your-jwt-secret-key
DATABASE_URL=sqlite:///app/data/lily_llm.db
REDIS_URL=redis://redis:6379
EOF
λ°©νλ²½ μ€μ
# νμν ν¬νΈλ§ μ΄κΈ°
sudo ufw allow 8001 # API μλ²
sudo ufw allow 5555 # Flower λͺ¨λν°λ§
π μ±λ₯ μ΅μ ν
리μμ€ μ ν
# docker-compose.ymlμ μΆκ°
services:
lily-llm-api:
deploy:
resources:
limits:
memory: 4G
cpus: '2.0'
reservations:
memory: 2G
cpus: '1.0'
μΊμ μ€μ
# Redis μΊμ νμ©
import redis
from functools import lru_cache
redis_client = redis.Redis(host='redis', port=6379, db=0)
@lru_cache(maxsize=128)
def cached_model_response(prompt, model_id):
# μΊμλ μλ΅ λ°ν
pass
π¨ λ¬Έμ ν΄κ²°
μΌλ°μ μΈ λ¬Έμ
1. λ©λͺ¨λ¦¬ λΆμ‘±
# λ©λͺ¨λ¦¬ μ¬μ©λ νμΈ
docker stats
# λΆνμν 컨ν
μ΄λ μ 리
docker system prune -f
2. API μλ΅ μμ
# 컨ν
μ΄λ μν νμΈ
docker-compose ps
# λ‘κ·Έ νμΈ
docker-compose logs lily-llm-api
# 컨ν
μ΄λ μ¬μμ
docker-compose restart lily-llm-api
3. Redis μ°κ²° μ€ν¨
# Redis 컨ν
μ΄λ μν νμΈ
docker-compose logs redis
# Redis μ¬μμ
docker-compose restart redis
λ‘κ·Έ λΆμ
# μ€μκ° λ‘κ·Έ νμΈ
docker-compose logs -f
# νΉμ μλΉμ€ λ‘κ·Έ
docker-compose logs -f lily-llm-api
# μ€λ₯ λ‘κ·Έλ§ νμΈ
docker-compose logs | grep ERROR
π μ λ°μ΄νΈ
μ½λ μ λ°μ΄νΈ
# μ΅μ μ½λ κ°μ Έμ€κΈ°
git pull origin main
# λ°°ν¬ μ
λ°μ΄νΈ
./scripts/deploy.sh update
λͺ¨λΈ μ λ°μ΄νΈ
# λͺ¨λΈ νμΌ κ΅μ²΄
cp new_model.safetensors ./models/
# μλΉμ€ μ¬μμ
docker-compose restart lily-llm-api
π μΆκ° λ¬Έμ
π€ μ§μ
λ¬Έμ κ° λ°μνλ©΄ λ€μμ νμΈνμΈμ:
- λ‘κ·Έ νμΌ νμΈ
- μμ€ν 리μμ€ νμΈ
- λ€νΈμν¬ μ°κ²° νμΈ
- νκ²½ λ³μ μ€μ νμΈ
π λ³κ²½ λ‘κ·Έ
v1.0.0 (2025-08-04)
- μ΄κΈ° Docker λ°°ν¬ μ€μ
- CI/CD νμ΄νλΌμΈ ꡬμΆ
- λͺ¨λν°λ§ μμ€ν μΆκ°
- 보μ μ€μ κ°ν