مقدمة إلى swift-huggingface: العميل الشامل لمنصة Hugging Face بلغة Swift
أعلن فريق Hugging Face عن إطلاق حزمة Swift جديدة تُدعى swift-huggingface، وهي عميل كامل للـ Hub يُعدّ تطويرًا جذريًا يركز على الموثوقية وتجربة المطور. تم إطلاق الحزمة كحزمة مستقلة يمكن استخدامها فورًا، وستُدمج قريبًا في مكتبة swift-transformers كاستبدال لواجهة HubApi الحالية. في إصدار swift-transformers 1.0، تلقى الفريق تغذية راجعة قوية من المجتمع حول صعوبات في تحميل النماذج ونقص في دعم المصادقة والاحتفاظ بالكاش المشترك مع البيئة البرمجية لـ Python. استجابةً لذلك، طوّر فريق Hugging Face swift-huggingface بنهج متكامل يحل هذه التحديات. أحد أبرز التحسينات هو نظام المصادقة المرن عبر نمط TokenProvider، الذي يدعم عدة سيناريوهات: التلقائي باستخدام المتغيرات البيئية أو ملفات التوكن (مثل HF_TOKEN أو ~/.cache/huggingface/token)، أو التعيين الثابت للتوكن في بيئة CI/CD، أو القراءة الآمنة من مخزن المفاتيح (Keychain) في التطبيقات الإنتاجية. كما يتوافق هذا النظام مع التقاليد المستخدمة في مكتبة Python huggingface_hub، مما يعني أن أي مستخدم سبق له تسجيل الدخول عبر hf auth login سيتمكن من استخدام التوكن تلقائيًا. بالإضافة إلى ذلك، تقدم الحزمة دعمًا كاملًا لـ OAuth 2.0 للمستخدمين في التطبيقات التي تتطلب تسجيل دخول حسابات Hugging Face. يُمكّن المُديّر (Authentication Manager) من إدارة المصادقة بشكل آمن، مع تخزين التوكنات في Keychain، وتحديثها تلقائيًا، وتمكين المصادقة المزدوجة دون الحاجة إلى التعامل اليدوي مع التوكنات. من ناحية التحميل، أصبحت العمليات أكثر موثوقية وشفافية: تدعم الحزمة تتبع التقدم بدقة، وتمكّن من استئناف التحميل في حال انقطاع الاتصال. تُستخدم ميزة downloadSnapshot لتنزيل مجموعات الملفات كاملة (مثل نماذج النماذج) مع دعم تحميل الملفات المطلوبة فقط حسب التوقيع (مثل *.safetensors)، وتُحدّث التغييرات تلقائيًا في التحميلات اللاحقة. حلّت الحزمة أيضًا مشكلة عدم مشاركة الكاش مع البيئة البرمجية لـ Python، حيث تم تطوير هيكل كاش متوافق مع Python يُخزن الملفات في المسار الافتراضي ~/.cache/huggingface/hub، ويستخدم آلية حجب الملفات (file locking) لمنع التعارضات عند استخدام الكاش من أكثر من عملية. يمكن للمطورين التحقق من وجود ملف مخزن مسبقًا واستخدامه مباشرة دون الحاجة إلى تحميله من جديد. على الصعيد الوظيفي، توفر الحزمة واجهات برمجة تطبيقات شاملة للتفاعل مع Hub: مثل استعراض النماذج الشهيرة، الحصول على تفاصيل النموذج، إدارة المجموعات، وقراءة المناقشات. كما تدعم التكامل مع مزودي التنبؤ (Inference Providers)، مما يتيح للتطبيقات Swift الوصول الفوري إلى مئات النماذج عبر خدمات التنبؤ العالمية، مثل توليد الصور من النصوص باستخدام نموذج FLUX.1. في المستقبل، تعمل الفرق على دمج swift-huggingface في swift-transformers، مع إضافة دعم لمنصة التخزين Xet التي تتيح تحميلًا أسرع عبر تقليل التكرار وتقسيم الملفات. يمكن للمطورين إضافة الحزمة إلى مشاريعهم عبر Package.swift، ونُشجع الجميع على تجربتها وتقديم ملاحظات لتحسينها.
