| | |
| | """ |
| | 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" |
| | ) |
| |
|