|
|
|
|
|
""" |
|
|
Startup script for Aliah-Plus |
|
|
Handles module imports and starts the FastAPI server |
|
|
""" |
|
|
|
|
|
import sys |
|
|
import os |
|
|
from pathlib import Path |
|
|
|
|
|
|
|
|
current_dir = Path(__file__).parent.absolute() |
|
|
sys.path.insert(0, str(current_dir)) |
|
|
sys.path.insert(0, str(current_dir / "src")) |
|
|
|
|
|
|
|
|
print("=" * 60) |
|
|
print("Aliah-Plus Startup") |
|
|
print("=" * 60) |
|
|
|
|
|
print("\n[1/4] Checking Python path...") |
|
|
print(f"Current directory: {current_dir}") |
|
|
print(f"Python path includes: {current_dir in [Path(p) for p in sys.path]}") |
|
|
|
|
|
print("\n[2/4] Checking source files...") |
|
|
required_files = [ |
|
|
"app.py", |
|
|
"src/__init__.py", |
|
|
"src/face_processor.py", |
|
|
"src/embedding_engine.py", |
|
|
"src/comparator.py", |
|
|
"src/ocr_extractor.py", |
|
|
"src/cross_referencer.py", |
|
|
"src/vector_db.py", |
|
|
"src/scrapers/__init__.py", |
|
|
"src/scrapers/stealth_engine.py", |
|
|
] |
|
|
|
|
|
missing_files = [] |
|
|
for file in required_files: |
|
|
file_path = current_dir / file |
|
|
if file_path.exists(): |
|
|
print(f" ✓ {file}") |
|
|
else: |
|
|
print(f" ✗ {file} (MISSING)") |
|
|
missing_files.append(file) |
|
|
|
|
|
if missing_files: |
|
|
print(f"\n❌ Error: Missing {len(missing_files)} required files") |
|
|
sys.exit(1) |
|
|
|
|
|
print("\n[3/4] Testing imports...") |
|
|
try: |
|
|
from src.face_processor import FaceProcessor |
|
|
print(" ✓ FaceProcessor") |
|
|
except ImportError as e: |
|
|
print(f" ✗ FaceProcessor: {e}") |
|
|
|
|
|
try: |
|
|
from src.embedding_engine import EmbeddingEngine |
|
|
print(" ✓ EmbeddingEngine") |
|
|
except ImportError as e: |
|
|
print(f" ✗ EmbeddingEngine: {e}") |
|
|
|
|
|
try: |
|
|
from src.comparator import FaceComparator |
|
|
print(" ✓ FaceComparator") |
|
|
except ImportError as e: |
|
|
print(f" ✗ FaceComparator: {e}") |
|
|
|
|
|
try: |
|
|
from src.ocr_extractor import OCRExtractor |
|
|
print(" ✓ OCRExtractor") |
|
|
except ImportError as e: |
|
|
print(f" ✗ OCRExtractor: {e}") |
|
|
|
|
|
try: |
|
|
from src.cross_referencer import CrossReferencer |
|
|
print(" ✓ CrossReferencer") |
|
|
except ImportError as e: |
|
|
print(f" ✗ CrossReferencer: {e}") |
|
|
|
|
|
try: |
|
|
from src.vector_db import VectorDatabase |
|
|
print(" ✓ VectorDatabase") |
|
|
except ImportError as e: |
|
|
print(f" ✗ VectorDatabase: {e}") |
|
|
|
|
|
try: |
|
|
from src.scrapers.stealth_engine import StealthSearch |
|
|
print(" ✓ StealthSearch") |
|
|
except ImportError as e: |
|
|
print(f" ✗ StealthSearch: {e}") |
|
|
|
|
|
print("\n[4/4] Starting FastAPI server...") |
|
|
print("=" * 60) |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
import uvicorn |
|
|
from app import app |
|
|
|
|
|
uvicorn.run( |
|
|
app, |
|
|
host="0.0.0.0", |
|
|
port=int(os.environ.get("PORT", 7860)), |
|
|
log_level="info" |
|
|
) |
|
|
|