Thursday, 12 November 2026 | التحديث اليومي نظرة ثاقبة للذكاء الاصطناعي، مكتوبة للبناة

واجهة الويب لإنشاء النصوص (Oobabooga): دليل التثبيت والمحملات والاستخدام

  • text-generation-webui (يُشار إليها على نطاق واسع باسم oobabooga تمامًا تيمنًا باسم مؤلفها على موقع GitHub) هي واجهة مفتوحة المصدر مجانية قائمة على المتصفح لتشغيل نماذج اللغة الكبيرة (LLMs) محليًّا على أجهزتك الخاصة.
  • قم بالتثبيت عبر نصوص برمجية بنقرة واحدة — start_windows.bat, start_linux.shأو start_macos.sh — دون الحاجة إلى إعداد يدوي لبيئة بايثون.
  • تدعم عدة واجهات تنفيذ خلفية (backends): llama.cpp للملفات بصيغة GGUF، وExLlamaV2 لملفات EXL2/GPTQ على وحدات معالجة الرسومات من شركة NVIDIA، وTransformers لنماذج Hugging Face.
  • تشمل امتدادًا متوافقًا مع واجهة برمجة تطبيقات OpenAI (--extensions openai) بحيث يمكن لتطبيقات أخرى الاتصال بنموذجك المحلي دون الحاجة إلى إجراء أي تغييرات في الكود.

text-generation-webui هي واجهة ويب مفتوحة المصدر ومُستضافة ذاتيًّا لتشغيل نماذج اللغة الكبيرة محليًّا. وتُدار على موقع GitHub باسم oobabooga/text-generation-webui، وتعمل داخل متصفحك على العنوان http://localhost:7860، وتدعم مجموعة واسعة من صيغ النماذج عبر واجهات تنفيذ خلفية قابلة للتبديل، كما توفر واجهة برمجة تطبيقات REST متوافقة مع OpenAI. وهي أكثر الواجهات الأمامية اكتمالًا من حيث الميزات، لكنها تتطلب جهدًا أكبر في عملية الإعداد مقارنةً بالتطبيقات سطح المكتب مثل نموذج محلي واجهة أمامية LM Studio.

ما هي text-generation-webui (ولماذا يطلق عليها الناس اسم Oobabooga)

اسم المستخدم الخاص بالمشروع على موقع GitHub هو oobabooga، والذي أصبح المصطلح الشائع في المجتمع للإشارة إلى الأداة نفسها. وكلا الاسمين يشيران إلى نفس المشروع الموجود على github.com/oobabooga/text-generation-webui.

وقد بُنيت الواجهة باستخدام إطار Gradio، وتعمل بالكامل على جهازك المحلي — فلا تخرج أي بيانات من نظامك. وبجانب وضع الدردشة الأساسي، فإنها تدعم ما يلي:

  • ثلاثة أوضاع إدخال: الدردشة (التوجيه)، والدردشة (التمثيل الدوراني مع بطاقات الشخصيات)، ودفتر الملاحظات (إكمال نصي خام)
  • تحميل مُعدِّلات LoRA لدمج أوزان التخصيص الدقيق فوق نموذج أساسي
  • نظام امتدادات يضم إضافات من المجتمع لأداء مهام مثل التلخيص، وتحويل النص إلى كلام، وتسمية الصور، وغيرها الكثير
  • نقطة نهاية لواجهة برمجة تطبيقات متوافقة مع OpenAI لربط العملاء التابعين لجهات خارجية وبرامج الأتمتة

قبل اختيار نموذج ما، استخدم حاسبة VRAM لتأكيد إمكانية استيعاب وحدة معالجة الرسومات (GPU) لديك لهذا النموذج — فتتفاوت المتطلبات اختلافًا كبيرًا حسب حجم النموذج ومستوى التكميم (quantization).

تثبيت text-generation-webui

الطريقة الموصى بها للتثبيت على جميع المنصات هي استخدام البرنامج النصي بتثبيت بنقرة واحدة. فهو ينشئ بيئة Conda معزولة ويقوم بتثبيت جميع تبعيات بايثون تلقائيًّا. ولا يُنصح بتثبيته في بيئة بايثون النظام إلا إذا كانت لديك أسباب محددة لذلك.

ويندوز

  1. استنسخ المستودع أو نزّل ملف ZIP لإصدار معين من صفحة المشروع على GitHub:
    git clone https://github.com/oobabooga/text-generation-webui
  2. انقر نقراً مزدوجاً start_windows.bat داخل المجلد الذي تم استنساخه.
  3. ويكتشف البرنامج النصي نوع وحدة معالجة الرسومات الخاصة بك (NVIDIA أو AMD أو CPU فقط) ويقوم بتثبيت التبعيات المناسبة لها — اختر الخيار الملائم عند المطالبة بذلك.
  4. وبعد اكتمال الإعداد، يتم تشغيل الخادم تلقائيًّا. افتح http://localhost:7860 في متصفحك.

وفي التشغيلات اللاحقة، انقر مرتين على start_windows.bat مرة أخرى. تكون بيئة Conda قد أُنشئت مسبقًا؛ وبالتالي لا يستغرق بدء التشغيل سوى بضع ثوانٍ.

Linux

  1. استنسخ المستودع واذهب إلى الدليل:
    git clone https://github.com/oobabooga/text-generation-webui
    cd text-generation-webui
  2. اجعل البرنامج النصي قابلاً للتنفيذ ثم شغّله:
    chmod +x start_linux.sh
    ./start_linux.sh
  3. اختر نوع وحدة معالجة الرسومات عند المطالبة: NVIDIA أو AMD أو CPU فقط أو Apple Silicon (غير متاح على Linux، لكن المطالبة تظهر رغم ذلك).
  4. افتح واجهة المستخدم على العنوان http://localhost:7860 بمجرد أن يبدأ الخادم بالعمل.

macOS

  1. استنسخ المستودع وشغّل البرنامج النصي:
    git clone https://github.com/oobabooga/text-generation-webui
    cd text-generation-webui
    ./start_macos.sh
  2. اختر الخيار D (Apple Silicon / Metal) أو C (CPU فقط) عند المطالبة.
  3. تستخدم واجهة التنفيذ الخلفية llama.cpp تقنية Metal لتحقيق تسريع GPU على رقائق سلسلة M — ولا يتطلب الأمر وجود CUDA.

يقتصر مستخدمو نظام macOS على وحدتي تحميل llama.cpp وTransformers فقط. أما وحدة ExLlamaV2 فهي تتطلب CUDA ولا تعمل على رقائق Apple Silicon.

وحدات تحميل النماذج: أي منها يجب أن تستخدم؟

تُفصِّل text-generation-webui محرك الاستنتاج عن الواجهة. ويمكنك تحديد وحدة تحميل لكل نموذج من علامة التبويب النموذج .

وحدة التحميل الصيغة الأجهزة متى يتم الاستخدام
llama.cpp GGUF NVIDIA و AMD و Apple Silicon و CPU الافتراضي لملفات GGUF؛ الأكثر توافقاً عبر المنصات
ExLlamaV2 EXL2 و GPTQ NVIDIA CUDA فقط أسرع معدل إنتاجية لـ NVIDIA؛ مفضل على AutoGPTQ للنماذج الجديدة
المحولات HuggingFace (fp16 و bf16 و int8 و int4) NVIDIA و CPU نماذج HuggingFace بالتنسيق الأصلي؛ أبطأ لكن بتوافقية أوسع
AutoAWQ AWQ NVIDIA CUDA نماذج مكممة بـ AWQ
AutoGPTQ GPTQ NVIDIA CUDA نماذج GPTQ الأقدم؛ ExLlamaV2 أسرع للتنسيق نفسه

الافتراضي العملي: إذا قمت بتنزيل .gguf ملف (الصيغة الأكثر شيوعاً على صفحات نماذج HuggingFace)، استخدم llama.cpp. إذا كان لديك وحدة معالجة رسومات NVIDIA وتريد أقصى سرعة توليد، ابحث عن متغير EXL2 من النموذج نفسه واستخدم ExLlamaV2.

للحصول على تفصيل حول النماذج التي تناسب وحدات المعالجة الرسومية بشكل واقعي، راجع متطلبات VRAM للنماذج اللغوية الكبرى.

تحميل نموذج بصيغة GGUF خطوة بخطوة

  1. انسخ الملف إلى text-generation-webui/models/. ملفات GGUF أحادية الملف (مثل mistral-7b-instruct.Q4_K_M.gguf) تذهب مباشرة إلى هذا المجلد. يجب وضع الملفات المقسمة متعددة الأجزاء في مجلد فرعي باسم معين.
  2. افتح تبويب النموذج في المكتبة الرسمية إلى http://localhost:7860.
  3. حدد ملفك من قائمة النموذج المنسدلة (انقر على أيقونة التحديث إذا لم تظهر).
  4. اضبط وحدة التحميل إلى llama.cpp.
  5. اضبط n-gpu-layers للتحكم في إزاحة وحدة المعالجة الرسومية. أدخل رقماً كبيراً (مثل 999) لدفع أكبر عدد ممكن من الطبقات إلى VRAM؛ أدخل 0 للاستدلال على المعالج فقط.
  6. انقر على حمّل. ويظهر رسالة تأكيد في مربع الحالة بمجرد أن يصبح النموذج جاهزًا.

انتقل إلى علامة التبويب الدردشة لبدء محادثة، أو إلى علامة التبويب الافتراضي إكمال الموجهات قالب التعليمات الموجودة في علامة التبويب "المعلمات".

امتداد واجهة برمجة التطبيقات المتوافقة مع OpenAI

الامتداد المدمج openai يعرض نقاط نهاية واجهة برمجة التطبيقات (REST) التي تحاكي تنسيق واجهة برمجة تطبيقات OpenAI الخاصة بتوليد الرسائل والنص. ويمكن لأي عميل يدعم تعيين عنوان URL أساسي مخصص — مثل LangChain أو Open WebUI أو Continue.dev أو حتى نص برمجي عادي بلغة curl بايثون

فعّله عبر تمرير علامة عند بدء التشغيل:

# لينكس / ماك أو إس
./start_linux.sh --extensions openai

# أو شغّل server.py مباشرةً داخل بيئة Conda
python server.py --extensions openai

وبال alternatively، يمكنك تفعيله من علامة التبويب الجلسة في واجهة المستخدم، ثم انقر على تطبيق العلامات / إعادة التشغيل.

وبشكل افتراضي، تستمع واجهة برمجة التطبيقات هذه على المنفذ 5000، وهو منفصل عن واجهة Gradio التي تعمل على المنفذ 7860. وجّه عميلك إلى العنوان التالي:

base_url = "http://localhost:5000/v1"
api_key  = "anything"  # مطلوبة من معظم العملاء لكنها غير مُحقَّقة محليًّا

تشمل نقاط النهاية المدعومة /v1/chat/completions, /v1/completions، و /v1/models. ويمكن تغيير المنفذ عبر علامة بدء التشغيل --api-port .

مقارنة بين text-generation-webui وLM Studio وJan

تقوم جميع الأدوات الثلاث بتشغيل النماذج محليًّا دون الاعتماد على الخدمات السحابية. وهي موجَّهة لمجموعات مستخدمين وحالات استخدام مختلفة.

text-generation-webui LM Studio Jan
الواجهة المتصفح (Gradio) سطح المكتب الأصلي سطح المكتب الأصلي
درجة تعقيد الإعداد متوسط (برنامج نصي بنقرة واحدة) منخفض (مُثبِّت واجهة رسومية) منخفض (مُثبِّت واجهة رسومية)
صيغ النماذج GGUF، EXL2، GPTQ، AWQ، HF fp16 GGUF بشكل رئيسي GGUF بشكل رئيسي
مستعرض نماذج مدمج لا نعم نعم
OpenAI-compatible API نعم (امتداد) نعم (مدمج) نعم (مدمج)
نظام الامتدادات/الملحقات نعم محدود محدود
رقاقات أبل Silicon (Metal) نعم (llama.cpp) نعم نعم
الأفضل لـ المستخدمون المتقدّمون، والأتمتة، والبحث العلمي المبتدئون، والاستخدام اليومي للدردشة المستخدمون الذين يركّزون على المصادر المفتوحة

اختر text-generation-webui عندما تحتاج إلى عدة واجهات تحميل للنماذج، أو أداءً متفوقًا لـ EXL2 على بطاقات NVIDIA الرسومية، أو دعم تحميل نماذج LoRA، أو نظام الامتدادات الغني، أو الوصول البرمجي عبر واجهة برمجة التطبيقات (API) لأتمتة سير العمل وتطويره.

اختر LM Studio or Jan عندما ترغب في مُثبِّتٍ جاهزٍ ومُحسَّن، مع خاصية البحث المدمجة عن النماذج وتنزيلها بنقرة واحدة، وبأقل قدر ممكن من التهيئة. راجع دليل LM Studio الكامل للاطّلاع على شرحٍ تفصيليٍّ لهذه الخيارات.

إذا كنت تتساءل عما إذا كانت الاستنتاجات المحلية تستحق التكلفة المادية للأجهزة أم لا، فإن self-hosting vs API break-even calculator يمكن أن يُقيّم بدقة التوازن بين هذه التكلفة وبين دفع رسوم استخدام واجهة برمجة التطبيقات (API) وفقًا لحجم استخدامك.

الأسئلة المتكررة

لماذا يستغرق المُثبِّت بنقرة واحدة وقتًا طويلاً في المرة الأولى؟

لأنه يقوم بتنزيل Miniconda وبناء بيئة بايثون معزولة تحتوي على مكتبة PyTorch وجميع مكتبات تحميل النماذج من الصفر. وعلى اتصال سريع، يستغرق ذلك عادةً ما بين 5 و15 دقيقة. أما التشغيلات اللاحقة فتتجاوز هذه الخطوة وتبدأ خلال بضع ثوانٍ فقط.

هل يمكنني تشغيل text-generation-webui بدون وحدة معالجة رسومية (GPU)؟

نعم. اختر خيار «CPU-only» أثناء التثبيت، ثم عيّن n-gpu-layers إلى 0 عند تحميل نموذج بصيغة GGUF. وقد يولّد نموذج بحجم 7 مليار معلمة (7B) ما بين 2 و5 رموز في الثانية على وحدة معالجة مركزية حديثة لسطح المكتب — وهي سرعة كافية للاختبار، لكنها بطيئة جدًّا للدردشة العادية. كما أن التكمينات الأصغر (مثل Q4 وما دونها) تحسّن الأداء. يمكنك الاطّلاع على أفضل GPUs للنماذج اللغوية المحلية إذا كنت تفكر في ترقية أجهزتك.

كيف أُحدِّث text-generation-webui؟

تشغيل git pull داخل دليل المستودع لاسترجاع أحدث الشيفرة، ثم أعد تشغيل نص بدء التشغيل. ويكتشف النص تلقائيًّا أي تغيّرات في البيئة ويحدّث التبعيات تلقائيًّا. كما يمكنك تنفيذ الأمر تثبيت نقطة تثبيت -r requirements.txt يدويًّا داخل بيئة Conda النشطة إذا فضّلت تحديثًا أكثر تحديدًا.

ما الفرق بين GGUF وEXL2؟

كلا التنسيقين هما تنسيقان مكمّنان يقلّلان من حجم ملف النموذج ومتطلبات الذاكرة الرسومية (VRAM). ويعمل GGUF (عبر llama.cpp) على بطاقات NVIDIA وAMD ورقاقات أبل Silicon، وهو الخيار الأكثر تنقلًا ويتوفر عليه أكبر عدد من النماذج. أما EXL2 (عبر ExLlamaV2) فهو مخصص فقط لبطاقات NVIDIA، لكنه عادةً ما يولّد الرموز أسرع عند جودة مكافئة. فإذا كانت لديك بطاقة رسومية من NVIDIA وكانت السرعة هي أولويتك القصوى، فإن استخدام EXL2 يستحق المحاولة.

أين يتم حفظ سجلات المحادثات؟

يتم تخزين السجلات ضمن المجلد text-generation-webui/logs/. ويُحفظ كل محادثة كملف JSON. كما يمكنك تصدير السجلات مباشرةً من واجهة علامة التبويب «Chat» باستخدام زر التنزيل الموجود أسفل نافذة المحادثة.

هل يمكن لعدة مستخدمين الاتصال بمثبّت واحد؟

الـ --listen يجعل الخادم متاحًا عبر شبكتك المحلية بدلًا من أن يكون محصورًا على localhost فقط. ومع ذلك، لم يُصمَّم text-generation-webui للاستخدام الإنتاجي متعدد المستخدمين — إذ لا يحتوي على آلية مصادقة مدمجة، وواجهة Gradio الخاصة به تعمل ضمن جلسة واحدة فقط. أما امتداد واجهة برمجة تطبيقات OpenAI فيتعامل مع طلبات الواجهة البرمجية المتزامنة بكفاءة أعلى من واجهة الويب في السيناريوهات التي تتضمّن عدة عملاء، لكنك يجب أن تضيف وكيل عكسية (reverse proxy) مزوّدًا بميزة المصادقة أمامه إذا كنت تنوي إتاحته خارج نطاق localhost.

كتبه مصطفى إحسان

مصطفى إحسان هو مؤسس ومحرر Convly.ai. بنى ويحتفظ بقاعدة بيانات نماذج AI المباشرة للموقع، ومؤشر أداء السعر، وآلاته الحاسبة المجانية لمتطلبات VRAM وتكاليف API واقتصاديات الاستضافة الذاتية. يكتب عن تسعير النماذج ونتائج المقاييس والأجهزة المطلوبة لتشغيل نماذج AI محلياً، ويفضل باستمرار الأرقام المقاسة على ادعاءات البائع.

انتقل إلى الأعلى