انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

تثبيت LocalAI: واجهة API للذكاء الاصطناعي مستضافة ذاتياً ومتوافقة مع OpenAI

تثبيت LocalAI عبر Docker، خدمة AI مستضافة ذاتياً متوافقة مع OpenAI API، إنتاج النصوص، إنشاء الصور، تركيب الكلام، التضمينات وإدارة النماذج.

وقت القراءة: 14 دقيقة الذكاء الاصطناعي على خادمك
localaiopenaiapiذكاء اصطناعيself-hostingdockerembedding

جدول المحتويات

تثبيت 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
RAM8 جيجابايت+16 جيجابايت+
القرص20 جيجابايت50 جيجابايت+
GPUغير مطلوبNVIDIA 8 جيجابايت+ VRAM
نظام التشغيلLinux/macOSLinux (CUDA)
Docker24.0+24.0+ + nvidia-container-toolkit

التثبيت عبر Docker

وضع CPU

hljs bash
docker run -d \
  --name localai \
  -p 8080:8080 \
  -v localai_models:/build/models \
  localai/localai:latest-cpu

وضع GPU (NVIDIA CUDA)

hljs bash
docker run -d \
  --name localai \
  --gpus all \
  -p 8080:8080 \
  -v localai_models:/build/models \
  localai/localai:latest-gpu-nvidia-cuda-12

Docker Compose

hljs yaml
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:

تثبيت النماذج

التحميل من المعرض

hljs bash
# قائمة النماذج المتاحة
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

إضافة نموذج يدوياً

hljs bash
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"

إنشاء ملف تكوين النموذج:

hljs yaml
# 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

إكمال المحادثة

hljs bash
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
  }'

إنشاء التضمينات

hljs bash
curl http://localhost:8080/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-ada-002",
    "input": "أفضل ممارسات أمان الخوادم"
  }'

إنتاج الصور

hljs bash
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

hljs 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)}")

تكوين نماذج متعددة

hljs yaml
# 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

تحسين الأداء

hljs bash
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 الخاصة بنا.