Spaces:
Sleeping
Sleeping
| """ | |
| OmniFile AI Processor v4.2.0 - Entry Point | |
| ============================================ | |
| نقطة الدخول الرئيسية للتشغيل المحلي/CLI. | |
| الاستخدام: | |
| python main.py # تشغيل Streamlit UI | |
| python main.py --gradio # تشغيل Gradio UI (متقدم) | |
| python main.py --cli # وضع سطر الأوامر | |
| python main.py --colab # إعداد بيئة Colab | |
| """ | |
| import argparse | |
| import os | |
| import sys | |
| from pathlib import Path | |
| # إضافة المشروع للمسار | |
| PROJECT_ROOT = Path(__file__).parent.resolve() | |
| if str(PROJECT_ROOT) not in sys.path: | |
| sys.path.insert(0, str(PROJECT_ROOT)) | |
| def check_dependencies() -> list[str]: | |
| """فحص الحزم الأساسية المطلوبة.""" | |
| required = [ | |
| "streamlit", | |
| "PIL", | |
| "numpy", | |
| "pandas", | |
| ] | |
| missing = [] | |
| for pkg in required: | |
| try: | |
| __import__(pkg) | |
| except ImportError: | |
| missing.append(pkg) | |
| return missing | |
| def run_streamlit(): | |
| """تشغيل واجهة Streamlit.""" | |
| import subprocess | |
| app_path = PROJECT_ROOT / "app.py" | |
| subprocess.run([ | |
| sys.executable, "-m", "streamlit", "run", | |
| str(app_path), | |
| "--server.port", "8501", | |
| "--browser.gatherUsageStats", "false", | |
| ]) | |
| def run_gradio(): | |
| """تشغيل واجهة Gradio المتقدمة من src/.""" | |
| try: | |
| from src.gradio_ui import build_gradio_app, launch_gradio | |
| app = build_gradio_app() | |
| launch_gradio(app) | |
| except ImportError: | |
| print("❌ فشل استيراد Gradio UI. تأكد من وجود مجلد src/gradio_ui.py") | |
| print(" يمكنك تشغيل Streamlit بدلاً من ذلك: python main.py") | |
| sys.exit(1) | |
| def run_colab_setup(): | |
| """إعداد بيئة Google Colab.""" | |
| print("🔄 جارٍ إعداد بيئة Google Colab...") | |
| print() | |
| # ربط Google Drive | |
| print("📁 ربط Google Drive...") | |
| try: | |
| from google.colab import drive | |
| drive.mount("/content/drive") | |
| print("✅ تم ربط Google Drive") | |
| except ImportError: | |
| print("⚠️ لا يبدو أنك في بيئة Colab") | |
| print() | |
| print("📦 تثبيت الحزم...") | |
| req_file = PROJECT_ROOT / "requirements.txt" | |
| if req_file.exists(): | |
| os.system(f"pip install -q -r {req_file}") | |
| else: | |
| os.system("pip install -q streamlit pandas numpy Pillow opencv-python-headless easyocr PyMuPDF transformers torch") | |
| print() | |
| print("✅ اكتمل الإعداد!") | |
| print("🚀 قم بتشغيل: streamlit run app.py --server.port 7860") | |
| def main(): | |
| parser = argparse.ArgumentParser( | |
| description="OmniFile AI Processor v4.2.0", | |
| ) | |
| parser.add_argument( | |
| "--gradio", action="store_true", | |
| help="تشغيل واجهة Gradio المتقدمة", | |
| ) | |
| parser.add_argument( | |
| "--cli", action="store_true", | |
| help="وضع سطر الأوامر", | |
| ) | |
| parser.add_argument( | |
| "--colab", action="store_true", | |
| help="إعداد بيئة Google Colab", | |
| ) | |
| parser.add_argument( | |
| "--version", action="store_true", | |
| help="عرض رقم الإصدار", | |
| ) | |
| args = parser.parse_args() | |
| if args.version: | |
| from __init__ import __version__ | |
| print(f"OmniFile AI Processor v{__version__}") | |
| return | |
| if args.colab: | |
| run_colab_setup() | |
| return | |
| # فحص الحزم | |
| missing = check_dependencies() | |
| if missing: | |
| print(f"⚠️ حزم مفقودة: {', '.join(missing)}") | |
| print(" قم بتثبيتها: pip install -r requirements.txt") | |
| return | |
| if args.gradio: | |
| run_gradio() | |
| elif args.cli: | |
| print("وضع CLI - قريباً") | |
| print("استخدم: python main.py # Streamlit") | |
| print("أو: python main.py --gradio # Gradio") | |
| else: | |
| run_streamlit() | |
| if __name__ == "__main__": | |
| main() | |