Configuration, personnalisation, paramètres de plateforme et références API pour Pi.

llama.cpp

Pi prend en charge le serveur de routeur llama.cpp. Le routeur découvre plusieurs modèles GGUF et les charge ou les décharge à la demande.

Utilisez une version llama.cpp actuelle avec prise en charge du routeur. Suivez le build instructions ou installez un prebuilt release pour votre plateforme.

Démarrez le routeur

Commencez llama-server sans --model ou -m. La transmission d'un modèle démarre le mode modèle unique au lieu du mode routeur.

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

Options importantes:

  • --models-dir ~/models découvre les fichiers GGUF locaux.
  • --no-models-autoload continue de se charger de manière explicite jusqu'à /llama.
  • --jinja active les modèles de discussion et les appels d'outils compatibles.
  • -ngl 999 décharge autant de couches que possible sur le GPU.
  • -c 32768 définit la fenêtre contextuelle pour chaque modèle chargé. Omettez-le pour utiliser le contexte natif du modèle, ce qui peut nécessiter beaucoup plus de mémoire.

Un modèle à fichier unique peut se trouver directement dans le répertoire du modèle. Placez les modèles multimodaux et multi-fragments dans des sous-répertoires distincts:

~/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

Redémarrez le routeur après avoir ajouté manuellement des fichiers. Pour les tailles de contexte par modèle et d'autres options, utilisez llama.cpp model presets.

Configurer Pi

Démarrez Pi et configurez le fournisseur:

/login llama.cpp

Entrez l'URL du routeur et API key facultatif. L'URL par défaut est http://127.0.0.1:8080.

Les variables d'environnement peuvent configurer les mêmes valeurs sans /login:

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

Si le serveur utilise un API key, commencez llama-server avec la valeur --api-key correspondante. Conservez --host 127.0.0.1 pour un accès local uniquement.

Gérer les modèles

Courir:

/llama
  • Sélectionnez un modèle déchargé pour le charger.
  • Sélectionnez un modèle chargé pour le décharger.
  • Sélectionnez Télécharger le modèle…, recherchez Hugging Face, puis choisissez un référentiel et une quantification. Les valeurs exactes owner/repository[:quant] fonctionnent également.
  • Appuyez sur Échap pendant un chargement ou un téléchargement pour confirmer l'annulation.

La recherche Hugging Face utilise HF_TOKEN lorsqu'elle est définie, puis vérifie $HF_TOKEN_PATH, $HF_HOME/token, $XDG_CACHE_HOME/huggingface/token et ~/.cache/huggingface/token. La recherche fonctionne également sans authentification, sous réserve de limites de débit inférieures. Pi avertit avant de télécharger des référentiels sécurisés et des liens vers leur page d'accès. Le serveur llama.cpp effectue le téléchargement, son processus doit donc également avoir HF_TOKEN lorsque le référentiel sélectionné nécessite un accès.

Si d'autres modèles sont chargés, Pi demande s'il faut les décharger en premier ou les garder chargés. Pi ne décharge pas silencieusement les modèles et ne supprime jamais les fichiers de modèle. Le routeur peut être partagé avec d'autres clients, donc /llama affiche toujours l'état actuel du routeur.

Seuls les modèles chargés apparaissent dans /model. Après avoir chargé un modèle, exécutez /model pour le sélectionner pour la session Pi en cours.

Si le routeur se déconnecte, /llama affiche Réessayer et Fermer. Réessayez de vous reconnecter et d'actualiser l'état du modèle sans rejouer l'opération interrompue.

Dépannage

Vérifiez que le routeur est accessible:

curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/models
  • Aucun modèle dans /llama: Vérifiez --models-dir, la disposition du répertoire et redémarrez le routeur.
  • Modèle manquant dans /model: Chargez-le d'abord avec /llama.
  • Le chargement échoue ou utilise trop de mémoire: Réduisez -c ou déchargez un autre modèle.
  • Le serveur n'est pas en mode routeur: Démarrez-le sans --model, -m ou -hf.