diff --git a/start-server.sh b/start-server.sh new file mode 100755 index 0000000..c735002 --- /dev/null +++ b/start-server.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# start-server.sh — MiniLlama als API-Server starten (für CrowdCode u.a.) +# Startet llama-server im Hintergrund auf http://127.0.0.1:8080 +# Der Server läuft bis Ctrl+C oder das Terminal geschlossen wird. +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +cd "$SCRIPT_DIR" + +# ------------------------------------------------------------ +# Modelle aus dem models/-Ordner lesen +# ------------------------------------------------------------ +mapfile -t MODELS < <(find models/ -maxdepth 1 -name '*.gguf' -type f -o -type l | sort) +MODEL_COUNT="${#MODELS[@]}" + +if [ "$MODEL_COUNT" -eq 0 ]; then + echo "❌ Keine .gguf-Modelle im models/-Ordner gefunden." + exit 1 +fi + +# ------------------------------------------------------------ +# Modellauswahl +# ------------------------------------------------------------ +echo "" +echo "╔═══════════════════════════════════════╗" +echo "║ 🦙 MiniLlama — API-Server starten ║" +echo "╚═══════════════════════════════════════╝" +echo "" +for i in "${!MODELS[@]}"; do + NAME=$(basename "${MODELS[$i]}") + SIZE=$(numfmt --to=iec --format='%.1f' "$(stat --printf='%s' -L "${MODELS[$i]}" 2>/dev/null)" 2>/dev/null || echo "?") + printf " %2d) %s (%s)\n" $((i + 1)) "$NAME" "$SIZE" +done +echo "" + +SELECTION="" +while [ -z "$SELECTION" ]; do + read -rp "Auswahl [1-$MODEL_COUNT] oder q=beenden: " INPUT + if [ "$INPUT" = "q" ]; then exit 0; fi + if [[ "$INPUT" =~ ^[0-9]+$ ]] && [ "$INPUT" -ge 1 ] && [ "$INPUT" -le "$MODEL_COUNT" ]; then + SELECTION=$((INPUT - 1)) + else + echo "❌ Bitte eine Zahl zwischen 1 und $MODEL_COUNT eingeben." + fi +done + +MODEL_PATH="${MODELS[$SELECTION]}" +MODEL_NAME=$(basename "$MODEL_PATH") + +echo "" +echo "🔵 Starte API-Server mit: $MODEL_NAME" +echo " Endpoint: http://127.0.0.1:8080/v1" +echo " (Ctrl+C zum Beenden)" +echo "" + +# ------------------------------------------------------------ +# llama-server starten (OpenAI-kompatibler API-Server) +# ------------------------------------------------------------ +exec ./bin/linux/llama-server \ + -m "$MODEL_PATH" \ + --host 127.0.0.1 \ + --port 8080 \ + --ctx-size 4096 \ + --n-gpu-layers 0