|
|
|
|
|
""" |
|
|
اختبار سريع للتأكد من أن التطبيق يعمل قبل النشر |
|
|
""" |
|
|
|
|
|
import sys |
|
|
import os |
|
|
|
|
|
def test_imports(): |
|
|
"""اختبار الاستيراد""" |
|
|
try: |
|
|
import torch |
|
|
import gradio as gr |
|
|
import spaces |
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
|
print("✅ جميع الاستيرادات نجحت") |
|
|
return True |
|
|
except ImportError as e: |
|
|
print(f"❌ خطأ في الاستيراد: {e}") |
|
|
return False |
|
|
|
|
|
def test_model_loading(): |
|
|
"""اختبار تحميل المودل""" |
|
|
try: |
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
|
import torch |
|
|
|
|
|
model_path = "anaspro/iraqi-7b" |
|
|
hf_token = os.getenv("HF_TOKEN") |
|
|
|
|
|
print("🔄 جاري تحميل المودل للاختبار...") |
|
|
|
|
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained( |
|
|
model_path, |
|
|
token=hf_token, |
|
|
trust_remote_code=True |
|
|
) |
|
|
|
|
|
|
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
model_path, |
|
|
device_map="cpu", |
|
|
trust_remote_code=True, |
|
|
token=hf_token, |
|
|
torch_dtype=torch.float32, |
|
|
low_cpu_mem_usage=True |
|
|
) |
|
|
|
|
|
print("✅ تحميل المودل نجح") |
|
|
return True |
|
|
|
|
|
except Exception as e: |
|
|
print(f"❌ خطأ في تحميل المودل: {e}") |
|
|
return False |
|
|
|
|
|
def main(): |
|
|
print("🚀 اختبار النشر على Hugging Face ZeroGPU") |
|
|
print("=" * 50) |
|
|
|
|
|
|
|
|
if not test_imports(): |
|
|
sys.exit(1) |
|
|
|
|
|
|
|
|
if not test_model_loading(): |
|
|
sys.exit(1) |
|
|
|
|
|
print("\n🎉 جميع الاختبارات نجحت! التطبيق جاهز للنشر") |
|
|
print("\n📋 الملفات المطلوبة للنشر:") |
|
|
print("- app.py") |
|
|
print("- requirements.txt") |
|
|
print("- README.md") |
|
|
print("- system_prompt.txt") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |
|
|
|