انتقل إلى المحتوى الرئيسي

كيفية استخدام الإضافة

يغطي هذا الدليل واجهة برمجة التطبيقات الكاملة في وقت التشغيل: إنشاء مثيل نموذج اللغة الكبير، تحميل النماذج، إرسال الرسائل، تنزيل النماذج أثناء وقت التشغيل، إدارة الحالة، ووظائف الأدوات المساعدة.

إنشاء مثيل نموذج اللغة الكبير

ابدأ بإنشاء كائن Runtime Local LLM. احتفظ بمرجع له (على سبيل المثال، كمتغير في Blueprints أو UPROPERTY في C++) لمنع جمع القمامة المبكر.

Create Runtime Local LLM

تحميل نموذج

يجب تحميل نموذج قبل إرسال الرسائل. يوفر المكون الإضافي عدة طرق تحميل حسب سير العمل الخاص بك.

تحميل النموذج بالاسم

إذا كنت تدير النماذج من خلال لوحة إعدادات المحرر، استخدم Load Model (By Name).

في UE 5.4 والإصدارات الأحدث، تعرض Load Model (By Name) قائمة منسدلة بجميع النماذج الموجودة على القرص - ما عليك سوى تحديد النموذج الذي تريد تحميله.

تحميل النموذج بالاسم UE 5.4+

تحميل من مسار الملف

تحميل نموذج مباشرةً من مسار ملف مطلق إلى ملف .gguf:

تحميل النموذج من ملف

التحميل من URL (تنزيل وتحميل)

تنزيل نموذج من عنوان URL (إذا لم يكن موجودًا بالفعل على القرص) وتحميله تلقائيًا. إذا كان الملف موجودًا بالفعل محليًا، يتم تخطي التنزيل.

أبسط متغير يأخذ رابط URL فقط - يتم اشتقاق البيانات الوصفية من اسم الملف:

تحميل نموذج من URL بسيط

يمكنك أيضًا استخدام Load Model From URL مع بيانات تعريف النموذج الكاملة للحصول على معلومات نموذج أكثر ثراءً:

Load Model From URL

تحميل غير متزامن (Blueprint)

للتعامل مع إكمال التحميل والأخطاء عبر دبابيس الإخراج بدلاً من ربط المندوبين يدويًا، يتوفر عقدتين غير متزامنتين.

Load Model By Name (Async) يعكس نفس وظيفة Load Model (By Name) - في UE 5.4+ يعرض قائمة منسدلة بكل النماذج الموجودة على القرص:

Load Model By Name Async UE 5.4+

Load Model From File (Async) يأخذ مسار ملف مطلق بدلاً من ذلك:

Load Model From File Async

ربط الأحداث

اربط بمندوبي نسخة LLM لتلقي ردود النداء. جميع ردود النداء تنفذ على خيط اللعبة.

Bind Events

المندوبين المتاحين:

  • On Token Generated: ينطلق مع كل رمز إخراج
  • On Generation Complete: ينطلق عندما تكون الاستجابة الكاملة جاهزة، مع المدة وعدد الرموز والرموز في الثانية
  • On Prompt Processed: ينطلق بعد معالجة الموجه المدخل، قبل بدء التوليد
  • On Error: ينطلق إذا حدث خطأ أثناء أي عملية
  • On Model Loaded: ينطلق عند انتهاء تحميل النموذج
  • On Model Unloaded: ينطلق عند إلغاء تحميل النموذج
  • On Download Progress: ينطلق بشكل دوري أثناء تنزيل النموذج (كسر التقدم، البايتات المستلمة، إجمالي البايتات)
  • On Model Downloaded: ينطلق عند اكتمال عملية التنزيل فقط

إرسال الرسائل

بمجرد تحميل النموذج، أرسل رسالة مستخدم لتوليد استجابة:

Send Message

لتجاوز موجه النظام لرسالة محددة، استخدم Send Message With System Prompt:

Send Message With System Prompt

تمر الرموز عبر OnTokenGenerated أثناء إنتاجها. عند اكتمال التوليد، يتم استدعاء OnGenerationComplete مع الاستجابة الكاملة والمدة وعدد الرموز والرموز في الثانية.

إرسال رسالة غير متزامن (Blueprint)

توفر عقدة Send LLM Message (Async) منافذ إخراج مخصصة للرموز والاكتمال والأخطاء:

إرسال رسالة غير متزامن

تنزيل النماذج في وقت التشغيل

إلى جانب تدفق التنزيل والتحميل الموصوف أعلاه، يمكنك تنزيل نموذج إلى القرص دون تحميله. هذا مفيد للتخزين المؤقت للنماذج في شاشة التحميل أو قائمة الإعدادات.

تنزيل النموذج

يتوفر أيضًا إصدار بعنوان URL فقط:

تنزيل النموذج من عنوان URL

توفر عقدة Download LLM Model (Async) و Download LLM Model From URL (Async) منافذ إخراج للتقدم والاكتمال والأخطاء:

تنزيل النموذج غير المتزامن

يقوم المفوّض OnDownloadProgress بالإبلاغ عن التقدم أثناء التنزيل. يتم تنشيط OnModelDownloaded عند حفظ الملف على القرص.

لإلغاء تنزيل جارٍ:

إلغاء التنزيل

يمنع المكون الإضافي التنزيلات المكررة تلقائيًا - إذا كان التنزيل قيد التقدم بالفعل لنفس النموذج، فسيتم تجاهل الاستدعاءات اللاحقة.

إيقاف التوليد

لمقاطعة عملية التوليد الجارية:

إيقاف التوليد

إعادة تعيين سياق المحادثة

امسح سجل المحادثة لبدء محادثة جديدة:

إعادة تعيين السياق

إلغاء تحميل نموذج

تحرير الموارد عندما لا يعد النموذج مطلوبًا:

إلغاء تحميل نموذج

حالة الاستعلام

تحقق من الحالة الحالية لمثيل LLM:

حالة الاستعلام

  • Is Model Loaded: صحيح إذا كان النموذج جاهزًا للاستدلال
  • Is Generating: صحيح إذا كان التوليد قيد التقدم
  • Is Busy: صحيح إذا كانت أي عملية (تحميل، توليد، تنزيل) نشطة
  • Is Downloading: صحيح إذا كان تنزيل النموذج قيد التقدم
  • Get Loaded Model Metadata: يعيد البيانات الوصفية للنموذج الحالي
  • Get Applied Inference Params: يعيد المعلمات المطبقة عند التحميل

وظائف مكتبة النماذج

يتم توفير مجموعة من وظائف الأدوات الثابتة لإدارة ملفات النماذج على القرص. هذه الوظائف مفيدة لبناء واجهة مستخدم اختيار النموذج أو التحقق من توفر النموذج في وقت التشغيل.

الحصول على أسماء النماذج التي تم تنزيلها / البيانات الوصفية

Get Downloaded Model Names

Get All Downloaded Model Metadata

التحقق من وجود نموذج على القرص

التحقق من وجود النموذج على القرص

الحصول على مسار ملف النموذج

الحصول على مسار ملف النموذج

حذف ملفات النموذج

حذف ملفات النموذج

احصل على النماذج المحددة مسبقًا والمتاحة

احصل على النماذج المحددة مسبقًا

احصل على جميع النماذج المتاحة

إنشاء بيانات وصفية من رابط

إنشاء بيانات وصفية لنموذج من رابط خام (يتم اشتقاق الحقول من اسم الملف):

Make Metadata From URL

دوال مساعدة

يتم توفير مجموعة من الدوال المساعدة للتنسيق وعرض الأخطاء.

تحويل البايتات إلى سلسلة قابلة للقراءة

يحول عدد البايتات إلى سلسلة نصية قابلة للقراءة (مثل "4.07 GB"). مفيد لعرض أحجام النماذج في واجهة المستخدم.

تحويل البايتات إلى سلسلة قابلة للقراءة

تنسيق تقدم التحميل

تنسيق سلسلة تقدم التحميل مثل "1.23 GB / 4.07 GB (30.2%)". إذا كان الحجم الإجمالي غير معروف، يتم إرجاع الكمية المستلمة فقط.

تنسيق تقدم التحميل

الحصول على وصف الخطأ / سلسلة رمز الخطأ

تعيد Get LLM Error Description وصفًا نصيًا قابلاً للقراءة لرمز الخطأ. تعيد Get LLM Error Code String اسم قيمة التعداد كسلسلة نصية (مفيدة للتسجيل).

الحصول على وصف الخطأ

مرجع رموز الأخطاء

الكودالقيمةالوصف
Unknown0خطأ غير محدد
ModelLoadFailed10فشل تحميل ملف GGUF (ملف تالف، تنسيق غير متوافق، إلخ)
ContextCreateFailed11فشل إنشاء سياق الاستدلال
ModelNotLoaded20تمت محاولة الاستدلال دون تحميل نموذج
ChatTemplateFailed21فشل تطبيق قالب الدردشة الخاص بالنموذج
TokenizationFailed22تعذر تجزئة النص المُدخل إلى رموز
ContextOverflow23تجاوز الموجه + السياق حجم السياق المكون
PromptDecodeFailed24فشلت الرموز الموجهة في فك التشفير
ContextTooFullToGenerate25لا توجد مساحة سياق كافية متبقية لإنتاج الناتج
GenerationDecodeFailed30فشل رمز في فك التشفير أثناء التوليد
GenerationTruncated31توقف التوليد بسبب بلوغ الحد الأقصى للرموز
LLMInstanceNull40مثيل LLM فارغ أو غير صالح
ModelNotFoundOnDisk41ملف النموذج غير موجود في المسار المتوقع
ModelURLEmpty42تم طلب تحميل بعنوان URL فارغ
ModelDownloadCancelled43تم إلغاء التحميل
ModelDownloadEmptyData44اكتمل التحميل لكن جسم الاستجابة كان فارغًا
ModelDownloadSaveFailed45اكتمل التحميل لكن تعذر حفظ الملف على القرص