Konfiguration, Anpassung, Plattform-Einrichtung und API-Referenzen für Pi.

llama.cpp

Pi unterstützt den llama.cpp Router-Server. Der Router erkennt mehrere GGUF-Modelle und lädt oder entlädt sie bei Bedarf.

Verwenden Sie einen aktuellen llama.cpp-Build mit Router-Unterstützung. Folgen Sie der build instructions oder installieren Sie eine prebuilt release für Ihre Plattform.

Starten Sie den Router

Beginnen Sie llama-server ohne --model oder -m. Durch die Übergabe eines Modells wird der Einzelmodellmodus anstelle des Routermodus gestartet.

llama-server \
  --models-dir ~/models \
  --no-models-autoload \
  --jinja \
  --host 127.0.0.1 \
  --port 8080 \
  -ngl 999 \
  -c 32768

Wichtige Optionen:

  • --models-dir ~/models erkennt lokale GGUF-Dateien.
  • --no-models-autoload lädt weiterhin explizit bis /llama.
  • --jinja ermöglicht kompatible Chat-Vorlagen und Tool-Anrufe.
  • -ngl 999 lädt so viele Schichten wie möglich auf die GPU.
  • -c 32768 legt das Kontextfenster für jedes geladene Modell fest. Lassen Sie es weg, um den nativen Kontext des Modells zu verwenden, was möglicherweise wesentlich mehr Speicher erfordert.

Ein Einzeldateimodell kann direkt im Modellverzeichnis liegen. Platzieren Sie multimodale und Multi-Shard-Modelle in separaten Unterverzeichnissen:

~/models/
├── llama-3.2-1b-Q4_K_M.gguf
├── gemma-3-4b-it-Q4_K_M/
│   ├── gemma-3-4b-it-Q4_K_M.gguf
│   └── mmproj-F16.gguf
└── large-model-Q4_K_M/
    ├── large-model-Q4_K_M-00001-of-00003.gguf
    ├── large-model-Q4_K_M-00002-of-00003.gguf
    └── large-model-Q4_K_M-00003-of-00003.gguf

Starten Sie den Router neu, nachdem Sie Dateien manuell hinzugefügt haben. Für modellspezifische Kontextgrößen und andere Optionen verwenden Sie llama.cpp model presets.

Konfigurieren Sie Pi

Starten Sie Pi und konfigurieren Sie den Anbieter:

/login llama.cpp

Geben Sie die Router-URL und optional API key ein. Die Standard-URL ist http://127.0.0.1:8080.

Umgebungsvariablen können dieselben Werte ohne /login konfigurieren:

export LLAMA_BASE_URL=http://127.0.0.1:8080
export LLAMA_API_KEY=optional-secret
pi

Wenn der Server einen API key verwendet, beginnen Sie llama-server mit dem passenden --api-key-Wert. Behalten Sie --host 127.0.0.1 für nur lokalen Zugriff bei.

Modelle verwalten

Laufen:

/llama
  • Wählen Sie ein entladenes Modell aus, um es zu laden.
  • Wählen Sie ein geladenes Modell aus, um es zu entladen.
  • Wählen Sie Modell herunterladen…, suchen Sie nach Hugging Face und wählen Sie dann ein Repository und eine Quantisierung aus. Genaue owner/repository[:quant]-Werte funktionieren auch.
  • Drücken Sie während eines Ladevorgangs oder Downloads die Escape-Taste, um den Abbruch zu bestätigen.

Die Hugging Face-Suche verwendet HF_TOKEN, wenn sie festgelegt ist, und prüft dann $HF_TOKEN_PATH, $HF_HOME/token, $XDG_CACHE_HOME/huggingface/token und ~/.cache/huggingface/token. Die Suche funktioniert auch ohne Authentifizierung, vorbehaltlich niedrigerer Ratengrenzen. Pi warnt vor dem Herunterladen von geschlossenen Repositories und Links zu deren Zugriffsseite. Der llama.cpp-Server führt den Download durch, daher muss sein Prozess auch HF_TOKEN haben, wenn das ausgewählte Repository Zugriff erfordert.

Wenn andere Modelle geladen sind, fragt Pi, ob diese zuerst entladen oder geladen bleiben sollen. Pi entlädt Modelle nicht stillschweigend und löscht niemals Modelldateien. Der Router kann mit anderen Clients geteilt werden, daher zeigt /llama immer den aktuellen Status des Routers an.

In /model werden nur geladene Modelle angezeigt. Nachdem Sie ein Modell geladen haben, führen Sie /model aus, um es für die aktuelle Pi Sitzung auszuwählen.

Wenn der Router die Verbindung trennt, zeigt /llama Wiederholen und Schließen an. Bei einem erneuten Versuch wird die Verbindung wiederhergestellt und der Modellstatus aktualisiert, ohne dass der unterbrochene Vorgang erneut abgespielt wird.

Fehlerbehebung

Überprüfen Sie, ob der Router erreichbar ist:

curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/models
  • Keine Modelle in /llama: Überprüfen Sie --models-dir, das Verzeichnislayout, und starten Sie den Router neu.
  • Modell fehlt in /model: Laden Sie es zuerst mit /llama.
  • Laden schlägt fehl oder verbraucht zu viel Speicher: Senken Sie -c oder entladen Sie ein anderes Modell.
  • Server ist nicht im Router-Modus: Starten Sie ihn ohne --model, -m oder -hf.