MON3EMPASHA's picture
Update Space analyze service
92a5c40
Raw
History Blame Contribute Delete
2.82 kB
#!/usr/bin/env python3
"""
Quick Start Script for AI Service
Validates environment and starts the service
"""
import os
import sys
import subprocess
def configure_console_encoding():
"""Use UTF-8 stdout/stderr when available, especially on Windows."""
for stream_name in ("stdout", "stderr"):
stream = getattr(sys, stream_name, None)
if hasattr(stream, "reconfigure"):
try:
stream.reconfigure(encoding="utf-8")
except Exception:
pass
def check_python_version():
"""Ensure Python 3.9+"""
if sys.version_info < (3, 9):
print("❌ Python 3.9+ required")
print(f" Current: {sys.version}")
return False
print(f"βœ“ Python {sys.version_info.major}.{sys.version_info.minor}")
return True
def check_dependencies():
"""Check if required packages are installed"""
required = [
"fastapi",
"uvicorn",
"torch",
"transformers",
"librosa",
"soundfile"
]
missing = []
for package in required:
try:
__import__(package)
print(f"βœ“ {package}")
except ImportError:
print(f"βœ— {package} (missing)")
missing.append(package)
if missing:
print("\n❌ Missing dependencies. Install with:")
print(" pip install -r requirements.txt")
return False
return True
def check_cuda():
"""Check CUDA availability"""
try:
import torch
if torch.cuda.is_available():
print(f"βœ“ CUDA available: {torch.cuda.get_device_name(0)}")
else:
print("⚠ CUDA not available (using CPU - slower)")
except Exception as e:
print(f"⚠ Could not check CUDA: {e}")
def start_service():
"""Start uvicorn server"""
print("\nπŸš€ Starting AI Service...")
print(" Press Ctrl+C to stop\n")
app_dir = os.path.dirname(os.path.abspath(__file__))
reload_enabled = os.getenv("AI_SERVICE_RELOAD", "").lower() == "true"
command = [
sys.executable, "-m", "uvicorn",
"main:app",
"--host", "0.0.0.0",
"--port", "8000",
"--app-dir", app_dir,
]
if reload_enabled:
command.append("--reload")
try:
subprocess.run(command)
except KeyboardInterrupt:
print("\nβœ“ Service stopped")
def main():
configure_console_encoding()
print("=" * 50)
print("πŸ§ͺ AI Service Pre-flight Check")
print("=" * 50 + "\n")
if not check_python_version():
sys.exit(1)
if not check_dependencies():
sys.exit(1)
check_cuda()
print("\nβœ“ All checks passed!")
print("=" * 50 + "\n")
start_service()
if __name__ == "__main__":
main()