كلاود
ذكاء اصطناعي

LocalAI: كيف تستبدل OpenAI API بنسخة خاصة على سيرفرك

كلاود|٨ أكتوبر ٢٠٢٥|5 دقائق قراءة|٤٥٢ مشاهدة
LocalAI: كيف تستبدل OpenAI API بنسخة خاصة على سيرفرك

عندك تطبيق يستخدم OpenAI API؟ غيّر endpoint واحد بس. LocalAI يشغّل نماذج مفتوحة المصدر بنفس الـ API.

ما هو LocalAI؟

LocalAI هو بديل مفتوح المصدر لـ OpenAI API يعمل بالكامل على سيرفرك المحلي. يوفر نفس واجهة API التي يستخدمها OpenAI — يعني أي تطبيق يعمل مع OpenAI يعمل مع LocalAI بتغيير سطر واحد فقط: عنوان الـ API.

الفكرة الأساسية: بدلاً من إرسال بياناتك لسيرفرات OpenAI في أمريكا، تشغّل النماذج محلياً وتستخدم نفس الـ API. التطبيق لا يعرف الفرق.

لماذا LocalAI وليس Ollama؟

المعيار LocalAI Ollama
توافق OpenAI API كامل 100% جزئي
النماذج المدعومة LLM + صور + صوت + Embeddings LLM + Embeddings فقط
توليد صور نعم (Stable Diffusion) لا
تحويل نص لصوت نعم (TTS) لا
تحويل صوت لنص نعم (Whisper) لا
Function Calling نعم جزئي
Embedding API نعم نعم
سهولة التثبيت متوسطة سهلة جداً
استهلاك الموارد أعلى أقل

الخلاصة: Ollama أسهل إذا تحتاج نماذج نصية فقط. LocalAI أشمل إذا تحتاج API كامل متوافق مع OpenAI يشمل صور وصوت.

ماذا يمكن تشغيله على LocalAI؟

نماذج اللغة (Chat/Completion)

النموذج الحجم (Q4) الاستخدام
Llama 3.1 8B 4.7 GB محادثات عامة
Mistral 7B 4.1 GB تحليل وتصنيف
Qwen 2.5 7B 4.4 GB محتوى عربي
Phi-3 Mini 2.2 GB مهام خفيفة
CodeLlama 7B 4.0 GB برمجة

نماذج أخرى

الوظيفة النموذج الحجم
توليد صور Stable Diffusion 4-7 GB
تحويل صوت لنص Whisper 1.5 GB
تحويل نص لصوت Piper TTS 100 MB
Embeddings all-MiniLM-L6 80 MB
توليد رمز StarCoder 3-7 GB

متطلبات السيرفر

بدون GPU (نماذج نصية فقط)

المكون الحد الأدنى المفضّل
المعالج 4 vCPU 8 vCPU
الذاكرة 8 GB RAM 16 GB RAM
التخزين 40 GB SSD 80 GB SSD
النظام Ubuntu 22.04 Ubuntu 24.04

مع GPU (كل الوظائف)

المكون الحد الأدنى المفضّل
GPU 8 GB VRAM 16-24 GB VRAM
المعالج 4 vCPU 8 vCPU
الذاكرة 16 GB RAM 32 GB RAM
التخزين 100 GB SSD 200 GB SSD

التثبيت خطوة بخطوة

الخطوة 1: تجهيز Docker

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo usermod -aG docker $USER
newgrp docker

الخطوة 2: إنشاء ملف Docker Compose

mkdir -p /opt/localai && cd /opt/localai

cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
 localai:
 image: localai/localai:latest-cpu
 # أو للـ GPU:
 # image: localai/localai:latest-gpu-nvidia-cuda-12
 restart: always
 ports:
 - "8080:8080"
 environment:
 - MODELS_PATH=/models
 - THREADS=4
 - CONTEXT_SIZE=2048
 - DEBUG=false
 volumes:
 - ./models:/models
 - ./config:/config
 # إذا عندك GPU:
 # deploy:
 # resources:
 # reservations:
 # devices:
 # - driver: nvidia
 # count: all
 # capabilities: [gpu]

volumes:
 localai_models:
EOF

docker compose up -d

الخطوة 3: تحميل النماذج

# تحميل Llama 3.1 8B
curl http://localhost:8080/models/apply -H "Content-Type: application/json" \
 -d '{"id": "huggingface://TheBloke/Llama-3.1-8B-GGUF/llama-3.1-8b.Q4_K_M.gguf"}'

# أو تحميل نموذج جاهز من معرض LocalAI
curl http://localhost:8080/models/apply -H "Content-Type: application/json" \
 -d '{"id": "llama3.1-8b-instruct"}'

الخطوة 4: التحقق من التشغيل

# قائمة النماذج المتاحة
curl http://localhost:8080/v1/models

# اختبار محادثة
curl http://localhost:8080/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{
 "model": "llama3.1-8b-instruct",
 "messages": [
 {"role": "user", "content": "مرحباً، ما هو LocalAI؟"}
 ]
 }'

إعداد ملفات التكوين

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

cat > /opt/localai/config/llama3.yaml << 'EOF'
name: llama3.1-8b-instruct
parameters:
 model: llama-3.1-8b.Q4_K_M.gguf
 temperature: 0.7
 top_p: 0.9
 top_k: 40
 max_tokens: 2048
context_size: 4096
threads: 4
template:
 chat_message: |
 <|start_header_id|>{{.RoleName}}<|end_header_id|>

 {{.Content}}<|eot_id|>
 chat: |
 <|begin_of_text|>{{.Input}}<|start_header_id|>assistant<|end_header_id|>
EOF

ملف تكوين Embeddings

cat > /opt/localai/config/embeddings.yaml << 'EOF'
name: text-embedding-ada-002
parameters:
 model: all-MiniLM-L6-v2-q4_0.bin
backend: sentencetransformers
embeddings: true
EOF

استبدال OpenAI في تطبيقك

Python

from openai import OpenAI

# بدلاً من:
# client = OpenAI(api_key="sk-xxx")

# استخدم:
client = OpenAI(
 base_url="http://localhost:8080/v1",
 api_key="not-needed" # LocalAI لا يحتاج مفتاح
)

response = client.chat.completions.create(
 model="llama3.1-8b-instruct",
 messages=[
 {"role": "system", "content": "أنت مساعد مفيد."},
 {"role": "user", "content": "اكتب خطة مشروع قصيرة."}
 ]
)

print(response.choices[0].message.content)

JavaScript/Node.js

const OpenAI = require('openai');

const client = new OpenAI({
 baseURL: 'http://localhost:8080/v1',
 apiKey: 'not-needed',
});

const response = await client.chat.completions.create({
 model: 'llama3.1-8b-instruct',
 messages: [
 { role: 'user', content: 'ما هي أفضل ممارسات أمن المعلومات؟' }
 ],
});

console.log(response.choices[0].message.content);

cURL (أي لغة)

curl http://localhost:8080/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{
 "model": "llama3.1-8b-instruct",
 "messages": [{"role": "user", "content": "مرحباً"}],
 "temperature": 0.7
 }'

Embeddings API

curl http://localhost:8080/v1/embeddings \
 -H "Content-Type: application/json" \
 -d '{
 "model": "text-embedding-ada-002",
 "input": "نص للتحويل إلى متجه"
 }'

النتيجة: متجه بنفس تنسيق OpenAI — يعمل مباشرة مع pgvector أو أي قاعدة متجهات.

تحويل النص إلى صوت (TTS)

# تحميل نموذج TTS
curl http://localhost:8080/models/apply -H "Content-Type: application/json" \
 -d '{"id": "voice-en-us-amy-low"}'

# تحويل نص لصوت
curl http://localhost:8080/v1/audio/speech \
 -H "Content-Type: application/json" \
 -d '{
 "model": "voice-en-us-amy-low",
 "input": "Welcome to our service.",
 "voice": "amy"
 }' --output speech.wav

التطبيقات المتوافقة

أي تطبيق يستخدم OpenAI API يعمل مع LocalAI مباشرة:

التطبيق نوعه تغيير مطلوب
Open WebUI واجهة محادثة تغيير Base URL فقط
n8n أتمتة تغيير Credentials
Langflow بناء تطبيقات AI تغيير Base URL
Flowise بناء شات بوت تغيير Base URL
LangChain مكتبة Python تغيير base_url
أي تطبيق مخصص متنوع تغيير API endpoint

المراقبة والصيانة

مراقبة الأداء

# حالة الخدمة
curl http://localhost:8080/readyz

# استخدام الموارد
docker stats localai

النسخ الاحتياطي

# نسخ النماذج والتكوين
tar -czf localai-backup-$(date +%Y%m%d).tar.gz /opt/localai/

مقارنة التكلفة: LocalAI مقابل OpenAI API

المقارنة OpenAI API LocalAI على كلاود
GPT-4o Mini (1M tokens) 0.60 USD 0 (ثابت)
Embeddings (1M tokens) 0.10 USD 0 (ثابت)
TTS (1M characters) 15 USD 0 (ثابت)
Whisper (دقيقة) 0.006 USD 0 (ثابت)
تكلفة السيرفر الشهرية 0 ~بأسعار تنافسية
نقطة التعادل ~2,000 طلب/يوم —

للاستخدام المكثف (أكثر من 2,000 طلب يومياً)، LocalAI يوفر أكثر من 70% من التكلفة.

الخلاصة

LocalAI يحول سيرفرك إلى بديل كامل لـ OpenAI — نفس الـ API، نفس التنسيق، لكن البيانات تبقى عندك. مع خادم سحابي من كلاود (cloud.net.sa) في الرياض، تحصل على زمن استجابة زمن استجابة منخفض جداً وامتثال كامل لأنظمة حماية البيانات السعودية. باقة مؤسسة (8 vCPU، 16 GB) تشغّل LocalAI مع نماذج 7B بكفاءة. القالب جاهز بنقرة واحدة — غيّر سطر واحد في كودك وانتقل من OpenAI لسيرفرك الخاص.


ابدأ الآن

جاهز تشغّل الذكاء الاصطناعي على سيرفرك؟ اكتشف حلول استضافة AI أو صمم سيرفرك بالمواصفات المطلوبة.

مشاركة