File size: 2,458 Bytes
e822c6a
 
f8ee827
 
 
 
 
 
 
 
 
e822c6a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f8ee827
e822c6a
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash

# تأكد من تحميل النموذج الخاص بك هنا (إذا لم يكن محملاً مسبقاً في /data)
# huggingface-cli download ...

# تشغيل خادم llama-cpp المتوافق تماماً مع واجهات المحادثة (OpenAI Compatible API)
python3 -m llama_cpp.server \
    --model /data/models/your-model-name.gguf \
    --host 0.0.0.0 \
    --port 7860 \
    --n_ctx 4096 \
# تحديد مسارات المخزن الدائم (في مساحات HF عادة يكون /data)
MODELS_DIR="/data/models"
MODEL_FILE="gemma-4-E2B-it-UD-Q5_K_XL.gguf"
OLLAMA_MODEL_NAME="my-gemma"

# إنشاء المجلدات المطلوبة في المخزن إن لم تكن موجودة
mkdir -p $MODELS_DIR
mkdir -p /data/ollama
mkdir -p /data/webui

# تشغيل خادم Ollama في الخلفية
echo "Starting Ollama server..."
OLLAMA_MODELS=/data/ollama ollama serve &

# الانتظار بضع ثوانٍ للتأكد من أن Ollama يعمل ومستعد لتلقي الطلبات
sleep 4

# التحقق من وجود النموذج في المخزن؛ إذا لم يكن موجوداً، قم بتنزيله
if [ ! -f "$MODELS_DIR/$MODEL_FILE" ]; then
    echo "Model not found in storage. Downloading..."
    # نستخدم local-dir-use-symlinks False لضمان تحميل الملف الفعلي وليس اختصاراً (symlink)
    huggingface-cli download gijl/gemma-4-E2B-it-GGUF $MODEL_FILE \
        --local-dir $MODELS_DIR \
        --local-dir-use-symlinks False
    
    # تنزيل ملف الرؤية (mmproj) إن كنت تحتاجه (انظر الملاحظة أسفل حول توافقه)
    huggingface-cli download gijl/gemma-4-E2B-it-GGUF mmproj-BF16.gguf \
        --local-dir $MODELS_DIR \
        --local-dir-use-symlinks False
else
    echo "Model already exists in storage. Skipping download."
fi

# إنشاء ملف إعدادات النموذج لـ Ollama (Modelfile)
echo "Creating Modelfile..."
cat <<EOF > $MODELS_DIR/Modelfile
FROM $MODELS_DIR/$MODEL_FILE

# إعدادات مشابهة لما طلبته في llama.cpp
PARAMETER num_ctx 8162
PARAMETER num_thread 2
EOF

# تسجيل النموذج داخل Ollama
echo "Registering model with Ollama..."
ollama create $OLLAMA_MODEL_NAME -f $MODELS_DIR/Modelfile

# تشغيل واجهة Open WebUI (الأمر الافتراضي للصورة الأساسية)
echo "Starting Open WebUI..."
cd /app/backend
exec bash start.sh