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. الفجوة أصغر لتوليد الكود، أكبر للكتابة الإبداعية.
📖 ملخص
- خمس طرق نشر: محلي، Docker، سحابي، بلا خادم، نماذج محلية
- Docker لمشاركة الفريق وCI/CD
- llama.cpp يدعم نماذج GGUF متنوعة مع تسريع GPU
- Ollama أبسط؛ موصى به للمبتدئين
- النماذج المحلية للخصوصية؛ نماذج API للجودة
📝 تمارين
- أساسي (الصعوبة: ⭐): انشر Pi Agent باستخدام Docker، تحقق من إمكانية المحادثة بشكل طبيعي.
- متوسط (الصعوبة: ⭐⭐): ثبّت Ollama، اسحب نموذجاً، أعد Pi Agent للاستدلال المحلي.
- متقدم (الصعوبة: ⭐⭐⭐): ابنِ نشراً هجيناً — أسئلة بسيطة عبر نموذج محلي، معقدة تتبدل تلقائياً إلى API.