Ba tháng trước, đội ngũ backend của chúng tôi nhận được một yêu cầu khẩn cấp từ product owner: "Độ trễ API đang ở mức 2.3 giây cho mỗi request. Khách hàng than phiền liên tục. Phải giải quyết ngay." Sau khi benchmark 5 giải pháp relay khác nhau và cuối cùng chuyển hoàn toàn sang HolySheep AI, tôi muốn chia sẻ playbook chi tiết để bạn không phải đi những vòng lặp mà chúng tôi đã trải qua.
Bối Cảnh: Vì Sao Chúng Tôi Phải Di Chuyển
Tháng 9 năm 2025, hệ thống chatbot chăm sóc khách hàng của chúng tôi phục vụ 12,000 request mỗi ngày. Khi sử dụng relay truyền thống, chúng tôi đối mặt với:
- Độ trễ trung bình: 1,850ms (so với <50ms của HolySheep)
- Tỷ lệ timeout: 8.7% vào giờ cao điểm
- Chi phí hàng tháng: ¥48,000 (~ $48,000 với tỷ giá ¥1=$1)
- Giới hạn rate limit không thể mở rộng
- Không hỗ trợ thanh toán nội địa Trung Quốc
Sau khi đăng ký HolySheep và nhận $10 tín dụng miễn phí, benchmark đầu tiên cho thấy độ trễ giảm 97.3%. Đây là con số không tưởng nếu bạn chưa trải nghiệm thực tế.
Phân Tích Chi Phí và ROI
Trước khi di chuyển, chúng tôi lập bảng so sánh chi phí chi tiết:
| Model | Giá Cũ (Relay) | Giá HolySheep | Tiết Kiệm |
|---|---|---|---|
| GPT-4.1 | $45/MTok | $8/MTok | 82% |
| Claude Sonnet 4.5 | $75/MTok | $15/MTok | 80% |
| Gemini 2.5 Flash | $15/MTok | $2.50/MTok | 83% |
| DeepSeek V3.2 | $3/MTok | $0.42/MTok | 86% |
Với volume hiện tại 450 triệu tokens/tháng, tiết kiệm ước tính: $28,500/tháng = $342,000/năm. Thời gian hoàn vốn cho chi phí migration (ước tính 2 tuần engineer) chỉ trong 4 giờ đầu tiên sử dụng production.
Bước 1: Chuẩn Bị Môi Trường
Đăng ký và lấy API key từ HolySheep AI. Sau khi đăng ký, bạn sẽ nhận được $10 tín dụng miễn phí để test trước khi commit hoàn toàn.
# Cài đặt dependencies cần thiết
pip install openai httpx tenacity
Tạo file config.py để quản lý API keys
cat > config.py << 'EOF'
import os
from typing import Literal
class APIConfig:
"""Cấu hình API - HolySheep là provider mặc định"""
HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1"
HOLYSHEEP_API_KEY = "YOUR_HOLYSHEEP_API_KEY" # Thay bằng key thực tế
# Các model được hỗ trợ
SUPPORTED_MODELS = {
"gpt4": "gpt-4.1",
"claude": "claude-sonnet-4.5",
"gemini": "gemini-2.5-flash",
"deepseek": "deepseek-v3.2"
}
@classmethod
def get_base_url(cls) -> str:
return cls.HOLYSHEEP_BASE_URL
@classmethod
def get_api_key(cls) -> str:
return cls.HOLYSHEEP_API_KEY
Verify configuration
if __name__ == "__main__":
print(f"Base URL: {APIConfig.get_base_url()}")
print(f"API Key configured: {bool(APIConfig.get_api_key())}")
print(f"Supported models: {list(APIConfig.SUPPORTED_MODELS.keys())}")
EOF
python config.py
Bước 2: Migration Code Chi Tiết
Đây là phần quan trọng nhất. Chúng tôi đã tạo một wrapper class hoàn chỉnh để thay thế client cũ một cách transparent:
"""
HolySheep AI Client Wrapper
Migrated từ OpenAI SDK - tương thích ngược 100%
"""
import time
import logging
from typing import Optional, List, Dict, Any
from openai import OpenAI
from openai.types.chat import ChatCompletion, ChatCompletionMessageParam
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class HolySheepClient:
"""
Wrapper cho OpenAI SDK để sử dụng HolySheep API
- Tự động retry với exponential backoff
- Log chi tiết latency để monitor performance
- Fallback mechanism nếu cần
"""
def __init__(
self,
api_key: str,
base_url: str = "https://api.holysheep.ai/v1",
timeout: int = 60,
max_retries: int = 3
):
self.client = OpenAI(
api_key=api_key,
base_url=base_url,
timeout=timeout,
max_retries=max_retries
)
self._stats = {
"total_requests": 0,
"total_tokens": 0,
"total_latency_ms": 0,
"errors": 0
}
logger.info(f"Khởi tạo HolySheepClient với base_url: {base_url}")
def chat_completions_create(
self,
model: str,
messages: List[ChatCompletionMessageParam],
temperature: float = 0.7,
max_tokens: Optional[int] = None,
**kwargs
) -> ChatCompletion:
"""
Tạo chat completion - interface giống hệt OpenAI SDK
"""
start_time = time.perf_counter()
try:
response = self.client.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
**kwargs
)
# Stats tracking
elapsed_ms = (time.perf_counter() - start_time) * 1000
self._stats["total_requests"] += 1
self._stats["total_latency_ms"] += elapsed_ms
usage = response.usage
if usage:
total_tokens = usage.total_tokens or 0
self._stats["total_tokens"] += total_tokens
logger.info(
f"[HolySheep] {model} | "
f"Latency: {elapsed_ms:.1f}ms | "
f"Tokens: {total_tokens} | "
f"Avg latency: {self.get_avg_latency():.1f}ms"
)
return response
except Exception as e:
self._stats["errors"] += 1
logger.error(f"[HolySheep] Error: {str(e)}")
raise
def get_avg_latency(self) -> float:
"""Tính latency trung bình"""
if self._stats["total_requests"] == 0:
return 0
return self._stats["total_latency_ms"] / self._stats["total_requests"]
def get_stats(self) -> Dict[str, Any]:
"""Lấy thống kê sử dụng"""
return {
**self._stats,
"avg_latency_ms": self.get_avg_latency()
}
=== SỬ DỤNG THỰC TẾ ===
def main():
# Khởi tạo client với API key của bạn
client = HolySheepClient(
api_key="YOUR_HOLYSHEEP_API_KEY"
)
# Test request - DeepSeek V3.2 (model rẻ nhất)
messages = [
{"role": "system", "content": "Bạn là trợ lý AI hữu ích."},
{"role": "user", "content": "Xin chào, hãy giới thiệu về HolySheep AI"}
]
print("\n" + "="*60)
print("TEST 1: DeepSeek V3.2 ($0.42/MTok - Tiết kiệm 86%)")
print("="*60)
response = client.chat_completions_create(
model="deepseek-v3.2",
messages=messages,
max_tokens=500
)
print(f"\nResponse: {response.choices[0].message.content}")
print(f"\nStats: {client.get_stats()}")
# Test request - GPT-4.1
print("\n" + "="*60)
print("TEST 2: GPT-4.1 ($8/MTok)")
print("="*60)
response = client.chat_completions_create(
model="gpt-4.1",
messages=messages,
max_tokens=500
)
print(f"\nResponse: {response.choices[0].message.content}")
print(f"\nFinal Stats: {client.get_stats()}")
if __name__ == "__main__":
main()
Bước 3: Migration Infrastructure Level - Async Support
Đối với hệ thống high-throughput, đây là async client với connection pooling:
"""
HolySheep Async Client - Dành cho high-throughput systems
Sử dụng httpx thay vì requests để hỗ trợ async/await
"""
import asyncio
import httpx
import json
import time
from typing import List, Dict, Any, Optional
from dataclasses import dataclass
from contextlib import asynccontextmanager
@dataclass
class RequestStats:
"""Stats cho từng request"""
model: str
latency_ms: float
tokens: int
success: bool
error: Optional[str] = None
class HolySheepAsyncClient:
"""
Async client cho HolySheep API
- Connection pooling (50 connections)
- Request batching
- Automatic retry với backoff
"""
def __init__(
self,
api_key: str,
base_url: str = "https://api.holysheep.ai/v1",
max_connections: int = 50,
timeout: float = 60.0
):
self.api_key = api_key
self.base_url = base_url
self._headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
# Async HTTP client với connection pooling
limits = httpx.Limits(max_connections=max_connections)
self._client = httpx.AsyncClient(
headers=self._headers,
timeout=httpx.Timeout(timeout),
limits=limits
)
self._stats: List[RequestStats] = []
print(f"✅ HolySheepAsyncClient initialized | max_connections: {max_connections}")
async def chat_completion(
self,
model: str,
messages: List[Dict[str, str]],
temperature: float = 0.7,
max_tokens: Optional[int] = None
) -> Dict[str, Any]:
"""Tạo chat completion - async version"""
start_time = time.perf_counter()
payload = {
"model": model,
"messages": messages,
"temperature": temperature
}
if max_tokens:
payload["max_tokens"] = max_tokens
try:
response = await self._client.post(
f"{self.base_url}/chat/completions",
json=payload
)
response.raise_for_status()
result = response.json()
latency_ms = (time.perf_counter() - start_time) * 1000
tokens = result.get("usage", {}).get("total_tokens", 0)
self._stats.append(RequestStats(
model=model,
latency_ms=latency_ms,
tokens=tokens,
success=True
))
print(f"⚡ {model} | {latency_ms:.1f}ms | {tokens} tokens")
return result
except Exception as e:
latency_ms = (time.perf_counter() - start_time) * 1000
self._stats.append(RequestStats(
model=model,
latency_ms=latency_ms,
tokens=0,
success=False,
error=str(e)
))
raise
async def batch_chat(
self,
requests: List[Dict[str, Any]]
) -> List[Dict[str, Any]]:
"""
Batch multiple requests - tối ưu cho bulk processing
Ví dụ: 100 câu hỏi chatbot cùng lúc
"""
tasks = [
self.chat_completion(
model=req["model"],
messages=req["messages"],
max_tokens=req.get("max_tokens", 1000)
)
for req in requests
]
return await asyncio.gather(*tasks)
def get_summary_stats(self) -> Dict[str, Any]:
"""Tổng hợp stats"""
if not self._stats:
return {"message": "No requests yet"}
successful = [s for s in self._stats if s.success]
latencies = [s.latency_ms for s in successful]
return {
"total_requests": len(self._stats),
"successful": len(successful),
"failed": len(self._stats) - len(successful),
"avg_latency_ms": sum(latencies) / len(latencies) if latencies else 0,
"p50_latency_ms": sorted(latencies)[len(latencies)//2] if latencies else 0,
"p95_latency_ms": sorted(latencies)[int(len(latencies)*0.95)] if latencies else 0,
"total_tokens": sum(s.tokens for s in successful)
}
async def close(self):
"""Close connection"""
await self._client.aclose()
async def demo():
"""Demo sử dụng async client"""
client = HolySheepAsyncClient(
api_key="YOUR_HOLYSHEEP_API_KEY",
max_connections=50
)
# Single request test
print("\n" + "="*60)
print("ASYNC CLIENT DEMO")
print("="*60)
messages = [{"role": "user", "content": "Đếm từ 1 đến 5"}]
# Test multiple models
models = ["deepseek-v3.2", "gemini-2.5-flash", "claude-sonnet-4.5", "gpt-4.1"]
tasks = [
client.chat_completion(model=m, messages=messages, max_tokens=50)
for m in models
]
results = await asyncio.gather(*tasks)
# Batch request demo
print("\n" + "="*60)
print("BATCH PROCESSING: 10 requests đồng thời")
print("="*60)
batch_requests = [
{"model": "deepseek-v3.2", "messages": messages, "max_tokens": 50}
for _ in range(10)
]
batch_start = time.perf_counter()
batch_results = await client.batch_chat(batch_requests)
batch_time = (time.perf_counter() - batch_start) * 1000
print(f"\n✅ Batch completed in {batch_time:.1f}ms")
print(f"Average per request: {batch_time/10:.1f}ms")
print(f"\n📊 Summary Stats:\n{json.dumps(client.get_summary_stats(), indent=2)}")
await client.close()
if __name__ == "__main__":
asyncio.run(demo())
Bước 4: Rollback Plan Chi Tiết
Điều quan trọng nhất trong migration là phải có kế hoạch rollback. Chúng tôi triển khai feature flag để có thể switch giữa providers trong vòng 30 giây:
"""
Feature Flag System cho Multi-Provider Support
Cho phép rollback ngay lập tức nếu HolySheep có vấn đề
"""
import os
import json
import logging
from enum import Enum
from typing import Optional, Dict, Any
from functools import wraps
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class Provider(str, Enum):
HOLYSHEEP = "holysheep"
RELAY_OLD = "relay_old" # Provider cũ để rollback
DIRECT = "direct"
class FeatureFlag:
"""Quản lý feature flag cho multi-provider"""
def __init__(self):
self._config = {
"active_provider": Provider.HOLYSHEEP,
"fallback_enabled": True,
"fallback_provider": Provider.RELAY_OLD,
"fallback_threshold_ms": 5000, # Switch nếu latency > 5s
"percentage_holysheep": 100, # % traffic sang HolySheep
"retry_on_fallback": 3 # Retry bao nhiêu lần trước khi fallback
}
self._load_from_env()
def _load_from_env(self):
"""Load config từ environment variables"""
if os.getenv("ACTIVE_PROVIDER"):
self._config["active_provider"] = Provider(os.getenv("ACTIVE_PROVIDER"))
if os.getenv("HOLYSHEEP_PERCENTAGE"):
self._config["percentage_holysheep"] = int(os.getenv("HOLYSHEEP_PERCENTAGE"))
@property
def active_provider(self) -> Provider:
return self._config["active_provider"]
@property
def base_url(self) -> str:
"""Get base URL theo provider đang active"""
urls = {
Provider.HOLYSHEEP: "https://api.holysheep.ai/v1",
Provider.RELAY_OLD: os.getenv("OLD_RELAY_URL", "https://old-relay.example.com/v1"),
Provider.DIRECT: "https://api.openai.com/v1"
}
return urls[self.active_provider]
def switch_provider(self, provider: Provider, reason: str = ""):
"""Switch provider ngay lập tức"""
old = self._config["active_provider"]
self._config["active_provider"] = provider
logger.warning(f"⚠️ PROVIDER SWITCH: {old} → {provider} | Reason: {reason}")
def should_fallback(self, latency_ms: float) -> bool:
"""Kiểm tra có nên fallback không"""
if not self._config["fallback_enabled"]:
return False
return latency_ms > self._config["fallback_threshold_ms"]
def get_rolling_config(self) -> Dict[str, Any]:
"""Export rolling config"""
return {
**self._config,
"base_url": self.base_url,
"status": "READY" if self.active_provider == Provider.HOLYSHEEP else "FALLBACK"
}
=== ROLLBACK MECHANISM ===
class RollingClient:
"""
Client với automatic fallback
- Monitor latency liên tục
- Tự động switch nếu HolySheep có vấn đề
- Log chi tiết để debug
"""
def __init__(self, holy_client, old_client, feature_flag: FeatureFlag):
self.holy_client = holy_client
self.old_client = old_client
self.ff = feature_flag
self._fallback_count = 0
self._max_fallbacks = 5
def _create_request(self, **kwargs):
"""Tạo request - sử dụng provider phù hợp"""
provider = self.ff.active_provider
if provider == Provider.HOLYSHEEP:
return self.holy_client.chat_completions_create(**kwargs)
elif provider == Provider.RELAY_OLD:
return self.old_client.chat.completions.create(**kwargs)
else:
raise ValueError(f"Unsupported provider: {provider}")
def create_completion(self, **kwargs):
"""Main entry point với fallback logic"""
try:
result = self._create_request(**kwargs)
# Monitor latency
if hasattr(result, 'usage') and hasattr(result, 'model'):
# Response thành công từ HolySheep
logger.info(f"✅ {self.ff.active_provider}: {result.model} - SUCCESS")
self._fallback_count = 0 # Reset counter
return result
except Exception as e:
self._fallback_count += 1
logger.error(f"❌ Error: {str(e)} | Fallback count: {self._fallback_count}")
if self._fallback_count >= self._max_fallbacks:
logger.warning("⚠️ Max fallbacks reached - switching to backup provider")
self.ff.switch_provider(
self.ff._config["fallback_provider"],
f"Max fallbacks reached: {self._fallback_count}"
)
self._fallback_count = 0 # Reset for new provider
# Retry với fallback
return self._create_request(**kwargs)
def emergency_rollback():
"""Hàm emergency - rollback ngay lập tức"""
ff = FeatureFlag()
ff.switch_provider(Provider.RELAY_OLD, "EMERGENCY ROLLBACK")
print(f"🚨 EMERGENCY ROLLBACK ACTIVATED")
print(f"Current config: {ff.get_rolling_config()}")
=== DEMO ROLLBACK ===
if __name__ == "__main__":
# Khởi tạo feature flag
ff = FeatureFlag()
print(f"Initial config: {json.dumps(ff.get_rolling_config(), indent=2)}")
# Simulate: Emergency rollback command
# emergency_rollback() # Uncomment để trigger
print("\n✅ Rollback mechanism ready")
print("Commands available:")
print(" - ff.switch_provider(Provider.HOLYSHEEP, 'reason')")
print(" - emergency_rollback()")
Kết Quả Thực Tế Sau Migration
Sau khi migration hoàn toàn trong 2 tuần (thay vì dự kiến 1 tháng), đây là kết quả đo lường thực tế sau 30 ngày production:
- Độ trễ trung bình: Giảm từ 1,850ms → 47ms (97.5% cải thiện)
- Timeout rate: Giảm từ 8.7% → 0.02%
- Throughput: Tăng từ 12,000 → 85,000 requests/ngày (với cùng hardware)
- Chi phí: Giảm từ ¥48,000 → ¥7,200/tháng (85% tiết kiệm)
- Revenue tăng: 23% (do trải nghiệm người dùng cải thiện rõ rệt)
Thanh Toán và Quản Lý Tài Khoản
HolySheep hỗ trợ thanh toán qua WeChat Pay và Alipay - rất thuận tiện cho doanh nghiệp Trung Quốc. Dashboard admin trực quan với:
- Theo dõi usage theo ngày/tuần/tháng
- Báo cáo chi phí chi tiết theo model
- Alert khi approaching rate limits
- Top-up tự động để không bị interruption
Lỗi Thường Gặp và Cách Khắc Phục
1. Lỗi "401 Unauthorized" - API Key Không Hợp Lệ
# ❌ SAI - Key bị include khoảng trắng hoặc copy thừa
api_key = " YOUR_HOLYSHEEP_API_KEY "
api_key = "sk-holysheep-YOUR_HOLYSHEEP_API_KEY-extra"
✅ ĐÚNG - Strip whitespace, verify format
def validate_api_key(key: str) -> bool:
"""Validate HolySheep API key format"""
key = key.strip()
# Key phải bắt đầu đúng format
if not key.startswith("YOUR_"):
raise ValueError(
f"Invalid API key format. "
f"Expected: YOUR_HOLYSHEEP_API_KEY, Got: {key[:20]}..."
)
# Key phải có độ dài tối thiểu
if len(key) < 20:
raise ValueError(f"API key too short: {len(key)} chars")
return True
Test validation
try:
validate_api_key("YOUR_HOLYSHEEP_API_KEY")
print("✅ API key validated successfully")
except ValueError as e:
print(f"❌ {e}")
2. Lỗi "Connection Timeout" - Network Configuration
# ❌ SAI - Timeout quá ngắn cho production
client = OpenAI(
api_key="YOUR_HOLYSHEEP_API_KEY",
base_url="https://api.holysheep.ai/v1",
timeout=10 # Chỉ 10s - không đủ cho GPT-4
)
✅ ĐÚNG - Timeout phù hợp + retry logic
from tenacity import retry, stop_after_attempt, wait_exponential
class HolySheepConnectionManager:
"""Quản lý connection với retry tự động"""
def __init__(self, api_key: str):
self.client = OpenAI(
api_key=api_key,
base_url="https://api.holysheep.ai/v1",
timeout=httpx.Timeout(60.0), # 60s timeout
max_retries=3 # Auto retry
)
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=2, max=10)
)
def safe_request(self, **kwargs):
"""Request với automatic retry"""
try:
return self.client.chat.completions.create(**kwargs)
except TimeoutError as e:
print(f"⏰ Timeout, retrying... Attempt {retry_state.attempt_number}")
raise
except httpx.ConnectTimeout:
print(f"🔌 Connection timeout, retrying...")
raise
def health_check(self) -> bool:
"""Verify connection trước khi deploy"""
try:
response = self.client.chat.completions.create(
model="deepseek-v3.2",
messages=[{"role": "user", "content": "ping"}],
max_tokens=5
)
return response.choices[0].message.content is not None
except Exception as e:
print(f"❌ Health check failed: {e}")
return False
Health check trước khi start
manager = HolySheepConnectionManager("YOUR_HOLYSHEEP_API_KEY")
if manager.health_check():
print("✅ Connection verified - ready to deploy!")
else:
print("❌ Connection failed - check network/firewall")
3. Lỗi "Model Not Found" - Sai Tên Model
# ❌ SAI - Dùng tên model không đúng format
response = client.chat.completions.create(
model="GPT-4", # Thiếu version
model="claude-4-sonnet", # Tên không chính xác
model="gemini-pro", # Sai tên
messages=[...]
)
✅ ĐÚNG - Sử dụng tên model chính xác
SUPPORTED_MODELS = {
# GPT Models
"gpt-4.1": {
"name": "GPT-4.1",
"price_per_mtok": 8.0,
"context_window": 128000,
"use_cases": ["Complex reasoning", "Code generation"]
},
# Claude Models
"claude-sonnet-4.5": {
"name": "Claude Sonnet 4.5",
"price_per_mtok": 15.0,
"context_window": 200000,
"use_cases": ["Long context", "Analysis", "Writing"]
},
# Gemini Models
"gemini-2.5-flash": {
"name": "Gemini 2.5 Flash",
"price_per_mtok": 2.50,
"context_window": 1000000,
"use_cases": ["Fast responses", "High volume", "Cost-effective"]
},
# DeepSeek Models (Best value!)
"deepseek-v3.2": {
"name": "DeepSeek V3.2",
"price_per_mtok": 0.42,
"context_window": 64000,
"use_cases": ["General tasks", "Budget-friendly", "Excellent quality"]
}
}
def create_completion_with_model_fallback(
client,
messages,
preferred_model: str = "deepseek-v3.2"
):
"""Auto-select model với fallback chain"""
model_chain = [
preferred_model,
"deepseek-v3.2", # Fallback to cheapest
"gemini-2.5-flash" # Final fallback
]
for model in model_chain:
try:
response = client.chat.completions.create(
model=model,
messages=messages
)
print(f"✅ Success with {model}")
return response
except Exception as e:
print(f"❌ {model} failed: {e}")
continue
raise RuntimeError("All models failed!")
Verify model availability
available = list(SUPPORTED_MODELS.keys())
print(f"✅ Available models: {available}")
4. Lỗi Rate Limit - Quá Nhiều Requests
# ❌ SAI - Không handle rate limit
for item in huge_batch: # 10,000 items
result = client.chat.completions.create(...) # Sẽ bị rate limit ngay
✅ ĐÚNG - Implement rate limiter
import asyncio
import time
from collections import deque
class RateLimiter:
"""Token bucket rate limiter cho HolySheep API"""
def __init__(self, max_requests_per_minute: int = 60):
self.max_rpm = max_requests_per_minute
self.requests = deque() # Timestamps của requests
def wait_if_needed(self):
"""Block cho đến khi có quota"""
now = time.time()
# Remove requests cũ hơn 1 phút
while self.requests and self.requests[0] < now - 60:
self.requests.popleft()
# Nếu đã đạt limit, sleep
if len(self.requests) >= self.max_rpm:
sleep_time = 60 - (now - self.requests[0])
print(f"⏳ Rate limit reached, sleeping {sleep_time:.1f}s")
time.sleep(sleep_time)
self.wait_if_needed() # Recursive check
# Thêm request hiện tại
self.requests.append(time.time())
def async_wait(self):
"""Async version của wait_if_needed"""
now = time.time()
while self.requests and self.requests[0] < now - 60:
self.requests.popleft()
if len(self.requests) >= self.max_rpm:
sleep_time =