Pi Agent: Multi-Platform Deployment & llama.cpp

最終更新:2026-08-31

--- title: "マルチプラットフォームデプロイとllama.cpp" description: "Pi Agentのマルチプラットフォームデプロイとllama.cppによるローカルモデル実行をマスターします。" order: 18 lang: ja

クラウドAPIは便利だが高コスト、ローカルモデルは無料だが設定が必要——このレッスンでは両方をカバーする。


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
# Hugging FaceからGGUF形式モデルをダウンロード
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])

❓ よくある質問

Q ローカルモデルのハードウェア要件は?
A 7Bモデルは約8GB RAM/VRAM、13Bは約16GB、70Bは約40GB以上が必要です。Apple Mシリーズチップは好調です。
Q llama.cppとOllama、どちらがよい?
A Ollamaの方がシンプル(1コマンドで実行)。llama.cppはより柔軟(きめ細かいパラメータ調整)。初心者にはOllamaを推奨。
Q ローカルモデルとAPIモデルの品質差は?
A 7BローカルモデルはAPIモデルの約70〜80%の能力です。コード生成の差は小さく、創作的な文章では差が大きくなります。

📖 まとめ


📝 練習問題

  1. 基礎(難易度:⭐): DockerでPi Agentをデプロイし、正常にチャットできることを確認してください。
  2. 中級(難易度:⭐⭐): Ollamaをインストールし、モデルを取得し、Pi Agentでローカル推論を設定してください。
  3. 上級(難易度:⭐⭐⭐): ハイブリッドデプロイを構築してください——簡単な質問はローカルモデル、複雑なものは自動的にAPIに切り替え。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%