llamacppctl/docs/How_to_use.md
dschlueter 600c128fed docs: bring docs/ and build_archive.py up to date
Die docs/ waren gegenüber den neuen Features veraltet.

- SECURITY_AND_OPERATIONS.md: Netzwerk-Exposition (Loopback-Default,
  --expose/--api-key inkl. 401-Verhalten der Endpunkte), DNS-Pinning,
  --start/--change unter Lock + --force, --change validate-before-remove,
  Chat-Parameter (max_tokens/chat_temperature/--stream), ${ENV}-Expansion,
  --check-Exit-Codes, smoke.sh, ChatReply; Fehler-Tabelle erweitert
  (401, Trunkierung, Docker-health vs. HTTP-OK).
- How_to_use.md: Abschnitt zu den neuen Optionen.
- Archiv-Report: Testzahl (130) und Dateiliste aktualisiert.
- build_archive.py: scripts/ in INCLUDE_DIRS (sonst fehlt smoke.sh im Archiv),
  test_actions.py/How_to_use.md/smoke.sh in REQUIRED_FILES aufgenommen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 17:32:46 +02:00

2.7 KiB

Ist das start- stop- change-Skript etc auch dabei ?

Ja — aber als ein einziges vereinheitlichtes CLI-Tool statt separater Shell-Skripte. Das war ja genau der Punkt der Neuentwicklung: llamacppctl ersetzt die einzelnen Skripte (start-llm-server.sh, status-llm-server.sh, switch-llm.sh, …) durch eine Python-Anwendung mit Unterbefehlen (Actions).

Alle Funktionen sind im Archiv enthalten, als Actions von llamacppctl:

Alte Skript-Idee Neuer Aufruf
start-llm-server.sh llamacppctl --start --config llama.cpp.config --profile <name>
status-llm-server.sh llamacppctl --check --config llama.cpp.config --profile <name>
Stop-Skript llamacppctl --stop --config llama.cpp.config --profile <name>
switch-llm.sh (Modellwechsel) llamacppctl --change --config llama.cpp.config --profile <name>
(neu) direkter Chat-Test llamacppctl --chat --config llama.cpp.config --profile <name> -p "..."

Die Logik dahinter liegt in src/llamacppctl/actions.py (do_start, do_check, do_stop, do_change, do_chat) und src/llamacppctl/docker_ops.py (baut den docker run-Befehl, startet/stoppt/entfernt Container, liest Logs).

Besonderheiten gegenüber den ursprünglichen Shell-Skripten:

  • --change nutzt eine exklusive Dateisperre (/tmp/llamacppctl.<container_name>.lock), damit zwei gleichzeitige Modellwechsel für denselben Container sich nicht in die Quere kommen.
  • Die Start-Bereitschaftsprüfung (--start/--change) wartet auf eine echte Chat-Completion-Antwort, nicht nur auf einen offenen Port — das ist zuverlässiger als ein reiner Port-Check.
  • --dry-run zeigt dir den vollständigen docker run-Befehl an, ohne ihn auszuführen (reine Vorschau: kein Lock, kein Container-Abriss).
  • --change validiert den Modellpfad vor dem Entfernen des laufenden Containers und läuft — wie --start — unter Lock; --force umgeht einen hängenden Lock.

Neuere Optionen (Details in Manpage/README):

  • Antwortsteuerung: --max-tokens (Reasoning-Modelle brauchen viel Budget, sonst leere Antwort), --chat-temp, und --stream für token-weise Live-Ausgabe bei --chat.
  • Netzwerk/Auth: Port wird per Default nur auf 127.0.0.1 veröffentlicht; --expose bindet auf alle Interfaces, --api-key schützt die Chat-API (Bearer-Token).
  • Scriptbar: --check liefert Exit-Code 0 (läuft/erreichbar) bzw. 5 — geeignet für Monitoring/Cron.
  • hf_home darf Env-Variablen enthalten, z. B. hf_home = ${HF_HOME}.
  • End-to-End-Test: scripts/smoke.sh (opt-in) gegen einen echten Server.

Die vollständige Referenz zu allen Optionen steht in der Manpage (man/llamacppctl.1) und in README.md/docs/SECURITY_AND_OPERATIONS.md.