From 0023ccbd79b522fe315aa5907e36a3185dcbae3a Mon Sep 17 00:00:00 2001 From: xray Date: Thu, 9 Jul 2026 11:43:45 +0200 Subject: [PATCH] update: README, neue Modelle (Gemma 3 4B, Phi-4-mini), Symlinks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Modelle: Gemma 3 4B IT (2.4 GB), Phi-4-mini (2.5 GB), MiniCPM5-1B (688 MB) — als Symlinks auf Stick - README: Vollständig überarbeitet mit allen Features - Startup-Zeiten und IFEval-Scores dokumentiert - CrowdCode CLI Features dokumentiert - Shell-Kommando-Erkennung im CLI --- README.md | 122 ++++++++++++++++--------- models/MiniCPM5-1B-Q4_K_M.gguf | 1 + models/Phi-4-mini-instruct-Q4_K_M.gguf | 1 + models/gemma-3-4b-it-Q4_K_M.gguf | 1 + 4 files changed, 83 insertions(+), 42 deletions(-) create mode 120000 models/MiniCPM5-1B-Q4_K_M.gguf create mode 120000 models/Phi-4-mini-instruct-Q4_K_M.gguf create mode 120000 models/gemma-3-4b-it-Q4_K_M.gguf diff --git a/README.md b/README.md index 6c00171..ad1b764 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,102 @@ -# 🦙 MiniLlama — Portable LLM Chat +# 🦙 MiniLlama — Portable LLM Chat & API-Server -**MiniLlama** ist ein portabler LLM-Chat, der direkt vom USB-Stick läuft — ohne Installation, auf **Windows und Linux**. +**MiniLlama** ist ein portabler LLM-Stack, der direkt vom USB-Stick läuft — ohne Installation, auf **Windows und Linux**. + +Enthält: Chat, API-Server (OpenAI-kompatibel), CrowdCode CLI für Dateioperationen + Wiki-Modus. ## Schnellstart -| OS | Befehl | -|----|--------| -| 🐧 Linux | `./start.sh` | -| 🪟 Windows | `start.bat` | +### 💬 Chat (direkt) +```bash +./start.sh # Linux +start.bat # Windows +``` +Modell aus dem Menü wählen — loschatten. -Das Skript zeigt alle Modelle aus dem `models/`-Ordner als nummeriertes Menü an. Einfach die Ziffer wählen und loschatten. +### 🔌 API-Server (für CrowdCode, andere Tools) +```bash +./start-server.sh # → http://127.0.0.1:8080/v1 +``` + +### 🤖 CrowdCode CLI (Dateioperationen + Chat) +```bash +./crowdcode.sh # Linux +crowdcode.bat # Windows +``` +Startet Server automatisch bei Bedarf. Shell-Kommandos (`pwd`, `ls`, `git`) werden direkt ausgeführt. ## Projektstruktur ``` MiniLlama/ -├── start.sh ← Starter für Linux (Bash) -├── start.bat ← Starter für Windows (Batch) +├── start.sh ← Chat (Linux) +├── start.bat ← Chat (Windows) +├── start-server.sh ← API-Server +├── crowdcode.sh ← CrowdCode CLI (Linux) +├── crowdcode.bat ← CrowdCode CLI (Windows) +├── deploy.sh ← Auf USB-Stick exportieren +├── cli/ +│ └── crowdcode.js ← CrowdCode Node.js CLI (480 Zeilen) ├── bin/ -│ ├── linux/ ← llama.cpp (b9936) für Linux x86_64 -│ └── win/ ← llama.cpp für Windows x86_64 -├── models/ ← Hier kommen die .gguf-Modelle rein +│ ├── linux/ ← llama.cpp (b9936) für Linux x86_64 +│ └── win/ ← llama.cpp für Windows x86_64 +├── models/ ← GGUF-Modelle (Symlinks auf Stick) └── README.md ``` -## Modelle +## Verfügbare Modelle -GGUF-Modelle (`*.gguf`) im `models/`-Ordner ablegen. -Die Start-Skripte erkennen automatisch alle vorhandenen Modelle und zeigen sie zur Auswahl an. +| Modell | Größe | Typ | IFEval | Lädt | FILE:-Pattern | +|--------|-------|-----|--------|------|---------------| +| **LFM2.5-8B-A1B** ⭐ | ~5,4 GB | MoE 1,5B aktiv | **91,84** | ? | ✅ Tool-Calling | +| **Gemma 3 4B IT** ⭐ | 2,4 GB | Dicht | **90,2** | ~3s | ✅ Getestet | +| **Phi-4-mini** ⭐ | 2,5 GB | Dicht | ~88 | ~3s | ✅ Getestet | +| **LFM2-8B-A1B** | 4,5 GB | MoE 1,5B aktiv | 79,44 | ? | ✅ (erwartet) | +| **Qwen3.5-4B** | 3,0 GB | Dicht | ~85 | ~47s | ✅ Getestet | +| **Gemma-4-E2B** | 2,9 GB | Dicht | ~80 | ~30s | ? | +| **Qwen2.5-1.5B** (klein) | 1,0 GB | Dicht | ~70 | ~2s | ❌ Zu schwach | -> **Von Quantisierungsstufen** reichen Q4_K_M und Q5_K_M für gute Qualität bei moderater Dateigröße. +⭐ = Neu empfohlen (Juli 2026) -## Deployment auf einen USB-Stick +## CrowdCode CLI Features -1. **Modelle kopieren** (nötig für Portabilität, da Symlinks auf einem anderen Rechner brechen): - ```bash - cp -r /pfad/zu/models/*.gguf /pfad/zum/stick/MiniLlama/models/ - ``` +| Funktion | Beschreibung | +|----------|-------------| +| `@datei.py` | Dateiinhalt lesen | +| `@verz/` | Verzeichnis auflisten | +| `@verz/**` | Rekursiver Dateibaum | +| `@?begriff` | Grep-Suche | +| `FILE: pfad` + Codeblock | Datei schreiben (vom LLM) | +| `DIR: pfad` | Verzeichnis erstellen (vom LLM) | +| `EDIT: pfad` + `---OLD`/`---NEW` | Gezielte Änderung (vom LLM) | +| `` bash `` | Shell ausführen (mit Bestätigung) | +| `:m` | Multiline-Eingabe | +| `:h` | Hilfe | +| `:q` | Beenden | -2. **Ganzen Ordner auf den Stick kopieren:** - ```bash - # Linux → Stick - cp -r MiniLlama /media/USER/STICKNAME/ - - # Windows → Stick - # Einfach MiniLlama-Ordner per Explorer auf den Stick ziehen - ``` +Shell-Kommandos (`pwd`, `ls`, `git`, `pip`, `curl`...) werden direkt ausgeführt, nicht ans LLM geschickt. -3. Auf dem Zielrechner vom Stick starten: - ```bash - # Linux: Terminal im Stick-Ordner öffnen - ./start.sh - - # Windows: Explorer öffnen, Doppelklick auf start.bat - ``` +## Deployment auf USB-Stick -## Technische Details +```bash +./deploy.sh /pfad/zum/stick/MiniLlama +``` +Kopiert alles inklusive Modelle, löst Symlinks auf. -- **Engine:** [llama.cpp](https://github.com/ggml-org/llama.cpp) b9936 -- **Plattformen:** - - Linux: x86_64 (Ubuntu-kompatibel), baut auf glibc 2.35+ - - Windows: x86_64 (CPU-only, keine GPU-Treiber nötig) -- **Dateisystem:** exFAT empfohlen (Dateien > 4 GB, Windows + Linux) +## Modelle auf dem Stick + +Die Modelle liegen physikalisch auf dem Stick unter: +``` +/media/xray/llama/llama/models/*.gguf +``` +Im MiniLlama-Verzeichnis sind es Symlinks. Für Deployment auf anderen Stick `deploy.sh` nutzen. + +## Wartung + +### Binaries aktualisieren +Neues Release von https://github.com/ggml-org/llama.cpp/releases: +- Linux: `llama-bXXXX-bin-ubuntu-x64.tar.gz` → `bin/linux/` +- Windows: `llama-bXXXX-bin-win-cpu-x64.zip` → `bin/win/` + +### Modell hinzufügen +GGUF-Datei in `models/` ablegen — wird automatisch erkannt. diff --git a/models/MiniCPM5-1B-Q4_K_M.gguf b/models/MiniCPM5-1B-Q4_K_M.gguf new file mode 120000 index 0000000..30db6bf --- /dev/null +++ b/models/MiniCPM5-1B-Q4_K_M.gguf @@ -0,0 +1 @@ +/media/xray/llama/llama/models/MiniCPM5-1B-Q4_K_M.gguf \ No newline at end of file diff --git a/models/Phi-4-mini-instruct-Q4_K_M.gguf b/models/Phi-4-mini-instruct-Q4_K_M.gguf new file mode 120000 index 0000000..b3d0d9f --- /dev/null +++ b/models/Phi-4-mini-instruct-Q4_K_M.gguf @@ -0,0 +1 @@ +/media/xray/llama/llama/models/Phi-4-mini-instruct-Q4_K_M.gguf \ No newline at end of file diff --git a/models/gemma-3-4b-it-Q4_K_M.gguf b/models/gemma-3-4b-it-Q4_K_M.gguf new file mode 120000 index 0000000..ba828c5 --- /dev/null +++ b/models/gemma-3-4b-it-Q4_K_M.gguf @@ -0,0 +1 @@ +/media/xray/llama/llama/models/gemma-3-4b-it-Q4_K_M.gguf \ No newline at end of file