Dr. Abdulmalek
deploy: OmniFile AI Processor v4.3.0
900df0b
"""
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()