Pi Agent: Multi-Platform Deployment & llama.cpp

آخر تحديث: 2026-08-31

--- title: "النشر متعدد المنصات وllama.cpp" description: "أتقن نشر Pi Agent عبر المنصات وتكوين llama.cpp لتشغيل النماذج المحلية." order: 18 lang: ar

واجهات برمجة التطبيقات السحابية مريحة لكن مكلفة؛ النماذج المحلية مجانية لكنها تحتاج إعداداً — هذا الدرس يغطي كليهما.


1. نظرة عامة على النشر متعدد المنصات

المنصة الطريقة الأنسب لـ
التطوير المحلي تشغيل مباشر التطوير والتصحيح
Docker حاويات CI/CD، مشاركة الفريق
خادم سحابي systemd/supervisor الإنتاج
بلا خادم دوال سحابية استدعاءات منخفضة التردد
نماذج محلية llama.cpp/Ollama الخصوصية، بدون اتصال

2. نشر التطوير المحلي

(1) بيئة افتراضية

BASH
python -m venv .venv
source .venv/bin/activate  # macOS/Linux
# .venv\Scripts\activate   # Windows

pip install pi-agent

(2) تكامل المشروع

PYTHON
from pi_agent import Agent

agent = Agent(name="app_agent", config_file=".pi-agent.yaml")

def process_request(user_input: str) -> str:
    return agent.chat(user_input)

3. نشر Docker

(1) Dockerfile

DOCKERFILE
FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

ENV PI_DEEPSEEK_API_KEY=""
ENV PI_DEFAULT_PROVIDER=deepseek

CMD ["python", "agent_service.py"]

(2) docker-compose.yaml

YAML
version: "3.8"
services:
  pi-agent:
    build: .
    ports:
      - "8000:8000"
    environment:
      - PI_DEEPSEEK_API_KEY=${PI_DEEPSEEK_API_KEY}
    volumes:
      - ./sessions:/app/sessions
    restart: unless-stopped

4. نشر الخادم السحابي

INI
# /etc/systemd/system/pi-agent.service
[Unit]
Description=Pi Agent Service
After=network.target

[Service]
Type=simple
User=piagent
WorkingDirectory=/opt/pi-agent
Environment=PI_DEEPSEEK_API_KEY=sk-xxxxxxxx
ExecStart=/opt/pi-agent/.venv/bin/python agent_service.py
Restart=always

[Install]
WantedBy=multi-user.target

5. نماذج llama.cpp المحلية

(1) التثبيت

BASH
# macOS
brew install llama.cpp

# Linux
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make

(2) تحميل النموذج

BASH
# تحميل نماذج بصيغة GGUF من Hugging Face
wget https://huggingface.co/Qwen/Qwen2.5-7B-Instruct-GGUF/resolve/main/qwen2.5-7b-instruct-q4_k_m.gguf

(3) تكوين Pi Agent

YAML
providers:
  local:
    type: llama_cpp
    model_path: "./models/qwen2.5-7b-instruct-q4_k_m.gguf"
    n_gpu_layers: -1
    n_ctx: 4096
    temperature: 0.7

default_provider: local

6. تكامل Ollama

(1) التثبيت

BASH
curl -fsSL https://ollama.com/install.sh | sh

(2) سحب النماذج

BASH
ollama pull qwen2.5:7b
ollama pull llama3:8b

(3) تكوين Pi Agent

YAML
providers:
  ollama:
    type: ollama
    base_url: "http://localhost:11434"
    model: "qwen2.5:7b"

مثال: مقارنة النماذج المحلية (الصعوبة: ⭐⭐)

PYTHON
from pi_agent import Agent

models = {
    "qwen2.5-7b": Agent(provider="ollama", model="qwen2.5:7b"),
    "llama3-8b": Agent(provider="ollama", model="llama3:8b"),
}

question = "Implement quicksort in Python"

for name, agent in models.items():
    print(f"=== {name} ===")
    result = agent.chat(question)
    print(result[:200])

❓ أسئلة شائعة

س متطلبات الأجهزة للنماذج المحلية؟
ج نماذج 7B تحتاج ~8GB ذاكرة/VRAM، 13B تحتاج ~16GB، 70B تحتاج ~40GB+. رقائق Apple M-series تعمل بشكل جيد.
س llama.cpp أم Ollama؟
ج Ollama أبسط (أمر واحد للتشغيل). llama.cpp أكثر مرونة (ضبط معلمات دقيق). المبتدئون يجب أن يستخدموا Ollama.
س فجوة الجودة بين النماذج المحلية وAPI؟
ج نماذج 7B المحلية تبلغ ~70-80% من قدرة نموذج API. الفجوة أصغر لتوليد الكود، أكبر للكتابة الإبداعية.

📖 ملخص


📝 تمارين

  1. أساسي (الصعوبة: ⭐): انشر Pi Agent باستخدام Docker، تحقق من إمكانية المحادثة بشكل طبيعي.
  2. متوسط (الصعوبة: ⭐⭐): ثبّت Ollama، اسحب نموذجاً، أعد Pi Agent للاستدلال المحلي.
  3. متقدم (الصعوبة: ⭐⭐⭐): ابنِ نشراً هجيناً — أسئلة بسيطة عبر نموذج محلي، معقدة تتبدل تلقائياً إلى API.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%