#!/usr/bin/env python3 """ HuggingFace Spaces Deployment Validation Script Epic 2 Enhanced RAG System This script validates that all necessary files and dependencies are properly configured for HuggingFace Spaces deployment. """ import os import sys from pathlib import Path def check_file_exists(file_path, description): """Check if a file exists and report status.""" if Path(file_path).exists(): print(f"āœ… {description}: {file_path}") return True else: print(f"āŒ {description}: {file_path} - NOT FOUND") return False def check_directory_exists(dir_path, description): """Check if a directory exists and report status.""" if Path(dir_path).is_dir(): print(f"āœ… {description}: {dir_path}") return True else: print(f"āŒ {description}: {dir_path} - NOT FOUND") return False def validate_deployment(): """Run complete deployment validation.""" print("šŸš€ Epic 2 Enhanced RAG - HuggingFace Spaces Deployment Validation") print("=" * 70) validation_passed = True # Check essential application files print("\nšŸ“± Application Files:") validation_passed &= check_file_exists("app.py", "Main entry point") validation_passed &= check_file_exists("streamlit_epic2_demo.py", "Epic 2 demo app") validation_passed &= check_file_exists("requirements.txt", "Dependencies") validation_passed &= check_file_exists("README.md", "Documentation") # Check core system architecture print("\nšŸ—ļø System Architecture:") validation_passed &= check_directory_exists("src", "Core system") validation_passed &= check_directory_exists("src/core", "Platform orchestrator") validation_passed &= check_directory_exists("src/components", "Components") validation_passed &= check_file_exists("src/core/platform_orchestrator.py", "Platform orchestrator") validation_passed &= check_file_exists("src/core/component_factory.py", "Component factory") # Check configuration files print("\nāš™ļø Configuration:") validation_passed &= check_directory_exists("config", "Configuration directory") validation_passed &= check_file_exists("config/default.yaml", "Basic configuration") validation_passed &= check_file_exists("config/epic2_graph_calibrated.yaml", "Epic 2 configuration") # Check sample data print("\nšŸ“„ Sample Data:") validation_passed &= check_directory_exists("data", "Data directory") validation_passed &= check_directory_exists("data/test", "Test documents") # Check validation evidence print("\nšŸ“Š Validation Evidence:") validation_passed &= check_file_exists("SCORE_COMPRESSION_FIX_COMPLETE_VALIDATION.md", "Performance validation") validation_passed &= check_file_exists("DEPLOYMENT_GUIDE.md", "Deployment guide") # Summary print("\n" + "=" * 70) if validation_passed: print("šŸŽ‰ VALIDATION PASSED: All files ready for HuggingFace Spaces deployment!") print("\nšŸ“‹ Next Steps:") print("1. Create new Streamlit Space on HuggingFace") print("2. Upload all files to your space") print("3. Set HF_TOKEN environment variable (optional)") print("4. Monitor build logs and deploy") print("\nšŸš€ Expected Results:") print("- Epic 2 capabilities with 48.7% MRR improvement") print("- Automatic environment detection and configuration") print("- Professional demo showcasing Swiss engineering standards") return True else: print("āŒ VALIDATION FAILED: Missing required files or directories") print("\nšŸ”§ Please ensure all Epic 2 system files are properly copied") return False def check_requirements_compatibility(): """Check if requirements.txt is HF Spaces compatible.""" try: with open("requirements.txt", "r") as f: content = f.read() print("\nšŸ“¦ Requirements Analysis:") lines = [line.strip() for line in content.split('\n') if line.strip() and not line.startswith('#')] print(f"āœ… Dependencies count: {len(lines)}") # Check for HF Spaces optimizations if "streamlit" in content: print("āœ… Streamlit framework included") if "transformers" in content: print("āœ… Transformers library included") if "huggingface-hub" in content: print("āœ… HuggingFace Hub integration included") print("āœ… Requirements file appears HF Spaces compatible") except FileNotFoundError: print("āŒ requirements.txt not found") return False return True if __name__ == "__main__": success = validate_deployment() success &= check_requirements_compatibility() sys.exit(0 if success else 1)