تثبيت LocalAI: واجهة API للذكاء الاصطناعي مستضافة ذاتياً ومتوافقة مع OpenAI
تثبيت LocalAI عبر Docker، خدمة AI مستضافة ذاتياً متوافقة مع OpenAI API، إنتاج النصوص، إنشاء الصور، تركيب الكلام، التضمينات وإدارة النماذج.
جدول المحتويات
تثبيت LocalAI: واجهة API للذكاء الاصطناعي مستضافة ذاتياً ومتوافقة مع OpenAI
LocalAI هو خادم API للذكاء الاصطناعي مفتوح المصدر ومستضاف ذاتياً، متوافق بالكامل مع OpenAI API. يجمع جميع قدرات الذكاء الاصطناعي بما في ذلك إنتاج النصوص وإنشاء الصور وتركيب الكلام والتعرف على الكلام والتضمينات في خدمة واحدة. قدرته على العمل في وضع CPU بدون GPU هي أحد أكبر مزاياه.
ما هو LocalAI؟
LocalAI هو بديل مباشر يحاكي تنسيق OpenAI API بالضبط. يمكنك إعادة توجيه تطبيقاتك الحالية التي تستخدم OpenAI SDK إلى LocalAI بمجرد تغيير عنوان URL الأساسي. الميزات الرئيسية:
- توافق OpenAI API: /v1/chat/completions، /v1/images/generations، /v1/audio/transcriptions
- دعم نماذج متعددة: LLaMA، Mistral، Phi، Gemma، Whisper، Stable Diffusion
- CPU و GPU: يعمل بدون GPU، دعم NVIDIA/AMD GPU
- التضمينات: إنتاج تضمينات نصية (لتطبيقات RAG)
- TTS/STT: تحويل النص إلى كلام والكلام إلى نص
- إنتاج الصور: تكامل Stable Diffusion
- استدعاء الوظائف: دعم OpenAI function calling
متطلبات النظام
| المكون | وضع CPU | وضع GPU |
|---|---|---|
| RAM | 8 جيجابايت+ | 16 جيجابايت+ |
| القرص | 20 جيجابايت | 50 جيجابايت+ |
| GPU | غير مطلوب | NVIDIA 8 جيجابايت+ VRAM |
| نظام التشغيل | Linux/macOS | Linux (CUDA) |
| Docker | 24.0+ | 24.0+ + nvidia-container-toolkit |
التثبيت عبر Docker
وضع CPU
docker run -d \
--name localai \
-p 8080:8080 \
-v localai_models:/build/models \
localai/localai:latest-cpu
وضع GPU (NVIDIA CUDA)
docker run -d \
--name localai \
--gpus all \
-p 8080:8080 \
-v localai_models:/build/models \
localai/localai:latest-gpu-nvidia-cuda-12
Docker Compose
version: '3.8'
services:
localai:
image: localai/localai:latest-gpu-nvidia-cuda-12
container_name: localai
ports:
- "8080:8080"
volumes:
- localai_models:/build/models
- ./config:/build/config
environment:
- THREADS=4
- CONTEXT_SIZE=4096
- GALLERIES=[{"name":"model-gallery","url":"github:mudler/LocalAI/gallery/index.yaml@master"}]
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"]
interval: 30s
timeout: 10s
retries: 3
volumes:
localai_models:
تثبيت النماذج
التحميل من المعرض
# قائمة النماذج المتاحة
curl http://localhost:8080/models/available
# تحميل نموذج
curl http://localhost:8080/models/apply -d '{
"id": "huggingface://TheBloke/Llama-2-7B-Chat-GGUF/llama-2-7b-chat.Q4_K_M.gguf",
"name": "llama-3"
}'
# قائمة النماذج المحملة
curl http://localhost:8080/v1/models
إضافة نموذج يدوياً
wget -O models/mistral-7b-instruct.gguf \
"https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf"
إنشاء ملف تكوين النموذج:
# config/mistral.yaml
name: mistral
backend: llama-cpp
parameters:
model: mistral-7b-instruct.gguf
temperature: 0.7
top_p: 0.9
top_k: 40
context_size: 4096
threads: 4
gpu_layers: 35
استخدام API
إكمال المحادثة
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3",
"messages": [
{"role": "system", "content": "أنت مساعد مفيد."},
{"role": "user", "content": "ما هو Docker Compose؟"}
],
"temperature": 0.7,
"max_tokens": 512
}'
إنشاء التضمينات
curl http://localhost:8080/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-ada-002",
"input": "أفضل ممارسات أمان الخوادم"
}'
إنتاج الصور
curl http://localhost:8080/v1/images/generations \
-H "Content-Type: application/json" \
-d '{
"model": "stablediffusion",
"prompt": "a futuristic server room, neon lights",
"size": "512x512"
}'
الاستخدام مع Python
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="llama-3",
messages=[
{"role": "system", "content": "أنت خبير في Linux."},
{"role": "user", "content": "كيف يتم تثبيت Nginx؟"}
],
max_tokens=1024
)
print(response.choices[0].message.content)
embedding = client.embeddings.create(
model="text-embedding-ada-002",
input="إدارة حاويات Docker"
)
print(f"بُعد التضمين: {len(embedding.data[0].embedding)}")
تكوين نماذج متعددة
# config/models.yaml
- name: llama-3
backend: llama-cpp
parameters:
model: llama-3-8b.gguf
context_size: 4096
gpu_layers: 35
- name: mistral
backend: llama-cpp
parameters:
model: mistral-7b-instruct.gguf
context_size: 4096
gpu_layers: 35
- name: embedding
backend: llama-cpp
embeddings: true
parameters:
model: all-MiniLM-L6-v2.gguf
تحسين الأداء
export THREADS=8
export CONTEXT_SIZE=4096
export GPU_LAYERS=35
export PARALLEL_REQUESTS=true
docker run -d \
--name localai \
--gpus all \
-p 8080:8080 \
-e THREADS=8 \
-e CONTEXT_SIZE=4096 \
-v localai_models:/build/models \
localai/localai:latest-gpu-nvidia-cuda-12
شغّل واجهة API الخاصة بك المتوافقة مع OpenAI باستخدام LocalAI على خوادم REXE. احصل على استدلال عالي الأداء مع خوادم GPU الخاصة بنا.
مقالات ذات صلة
تثبيت Ollama: دليل تشغيل نماذج اللغة الكبيرة محلياً
تثبيت Ollama، تشغيل نماذج LLM المحلية (Llama 3، Mistral، Gemma)، استخدام API، إدارة النماذج، تسريع GPU والنشر عبر Docker.
تثبيت Open WebUI: ذكاء اصطناعي محلي بواجهة شبيهة بـ ChatGPT
تثبيت Open WebUI عبر Docker، التكامل مع Ollama، إدارة المستخدمين، RAG (استعلام المستندات)، إدارة النماذج ودعم المستخدمين المتعددين.
نشر نماذج الذكاء الاصطناعي على خادم GPU: دليل NVIDIA CUDA
تثبيت تعريفات NVIDIA، مجموعة أدوات CUDA، nvidia-container-toolkit، خدمة النماذج مع vLLM، مراقبة GPU ونشر نماذج AI مع Docker.