# استخدام GGUF مع llama.cpp

> [!TIP]
> يمكنك الآن نشر أي نموذج GGUF متوافق مع llama.cpp على Hugging Face Endpoints، اقرأ المزيد حول ذلك [هنا](https://huggingface.co/docs/inference-endpoints/en/others/llamacpp_container)

يتيح لك Llama.cpp تنزيل نموذج GGUF وتشغيل الاستدلال عليه ببساطة من خلال توفير مسار مستودع Hugging Face واسم الملف. يقوم llama.cpp بتنزيل نقطة التفتيش الخاصة بالنموذج وتخزينها مؤقتًا تلقائيًا. يتم تحديد موقع التخزين المؤقت بواسطة متغير البيئة `LLAMA_CACHE`؛ اقرأ المزيد حول ذلك [هنا](https://github.com/ggerganov/llama.cpp/pull/7826).

يمكنك تثبيت llama.cpp باستخدام المثبّت على macOS وLinux، أو عبر WinGet على Windows، أو بناءه من المصدر. راجع [التوثيق الرسمي](https://github.com/ggml-org/llama.cpp#quick-start) لمعرفة خيارات التثبيت الأخرى، بما في ذلك Docker.

### الخيار 1: تثبيت llama.cpp

على macOS و Linux:

```bash
curl -LsSf https://llama.app/install.sh | sh
```

أو، ثبّت باستخدام Homebrew:

```bash
brew install llama.cpp
```

على نظام ويندوز، استخدم WinGet:

```powershell
winget install llama.cpp
```

### الخيار 2: البناء من المصدر

الخطوة 1: انسخ llama.cpp من GitHub.

```
git clone https://github.com/ggml-org/llama.cpp.git
```

الخطوة 2: انتقل إلى مجلد llama.cpp وابنِ المشروع. يمكنك أيضًا إضافة أعلام خاصة بالمعدات (على سبيل المثال: `-DGGML_CUDA=1` لبطاقات Nvidia الرسومية).

```
cd llama.cpp
cmake -B build   # optionally, add -DGGML_CUDA=ON to activate CUDA
cmake --build build --config Release -j --target llama-app
```

ملاحظة: لدعم أجهزة أخرى (مثل AMD ROCm وIntel SYCL)، يُرجى الرجوع إلى [دليل بناء llama.cpp](https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md)

إذا قمت بالبناء من المصدر، فاستخدم `./build/bin/llama` بدلاً من `llama` في الأوامر أدناه.

بعد التثبيت، يمكنك استخدام `llama cli` أو `llama serve` على النحو التالي:

```bash
llama cli -hf bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
```

ملاحظة: في وضع الإكمال الخام (غير وضع الدردشة)، استخدم `llama completion` مع `-no-cnv` بدلاً من `llama cli`.

بالإضافة إلى ذلك، يمكنك استدعاء نقطة نهاية مكتملات الدردشة الخاصة بمواصفات OpenAI مباشرةً باستخدام خادم llama.cpp:

```bash
llama serve -hf bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0 --port 8080
```

بعد تشغيل الخادم يمكنك ببساطة استخدام نقطة النهاية كما هو موضح أدناه:

```bash
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer no-key" \
-d '{
"messages": [
    {
        "role": "system",
        "content": "You are an AI assistant. Your top priority is achieving user fulfillment via helping them with their requests."
    },
    {
        "role": "user",
        "content": "Write a limerick about Python exceptions"
    }
  ]
}'
```

استبدل `-hf` بأي اسم مستودع صالح على Hugging Face hub - ابدأ الآن! 🦙

