Add final Qwen3.8 runtime and uncensored profile
This commit is contained in:
1 parent
1a9d94d22f
commit
2ef894160a
57 files changed
+10089
-54
No files matched your search
@@ -19,8 +19,15 @@ else
|
||||
fi
|
||||
|
||||
if command -v nvidia-smi >/dev/null 2>&1; then
|
||||
GPU="$(nvidia-smi --query-gpu=name,memory.total --format=csv,noheader 2>/dev/null | head -1)"
|
||||
[[ -n "$GPU" ]] && pass "GPU erkannt: $GPU" || fail "nvidia-smi liefert keine GPU"
|
||||
GPU_LIST="$(nvidia-smi --query-gpu=name,memory.total --format=csv,noheader 2>/dev/null)"
|
||||
GPU_COUNT="$(printf '%s\n' "$GPU_LIST" | sed '/^[[:space:]]*$/d' | wc -l)"
|
||||
if [[ "$GPU_COUNT" -ge 2 ]]; then
|
||||
pass "beide GPUs erkannt: $(printf '%s' "$GPU_LIST" | paste -sd ' | ' -)"
|
||||
elif [[ "$GPU_COUNT" -eq 1 ]]; then
|
||||
fail "nur eine von zwei erwarteten GPUs erkannt: $GPU_LIST"
|
||||
else
|
||||
fail "nvidia-smi liefert keine GPU"
|
||||
fi
|
||||
else
|
||||
fail "nvidia-smi fehlt"
|
||||
fi
|
||||
@@ -40,7 +47,7 @@ for container in mike-ai-profile-controller mike-ai-router mike-ai-piper mike-ai
|
||||
fi
|
||||
done
|
||||
|
||||
ACTIVE_LLAMA="$(docker ps --format '{{.Names}}' | grep -Ec '^mike-ai-llama-(fast|medium|large|ultra|experimental)$' || true)"
|
||||
ACTIVE_LLAMA="$(docker ps --format '{{.Names}}' | grep -Ec '^mike-ai-llama-(fast|medium|large|ultra|uncensored|experimental)$' || true)"
|
||||
if [[ $ACTIVE_LLAMA -eq 1 ]]; then
|
||||
pass "exakt ein llama.cpp-Profil aktiv"
|
||||
else
|
||||
|
||||
@@ -21,7 +21,7 @@ PORT = int(os.environ.get("CONTROLLER_PORT", "8090"))
|
||||
SOCKET_PATH = os.environ.get("DOCKER_SOCKET", "/var/run/docker.sock")
|
||||
TOKEN_FILE = os.environ.get("CONTROLLER_TOKEN_FILE", "/run/secrets/controller-token")
|
||||
ALLOWED = tuple(x.strip() for x in os.environ.get(
|
||||
"ALLOWED_PROFILES", "fast,medium,large,ultra,experimental").split(",") if x.strip())
|
||||
"ALLOWED_PROFILES", "fast,medium,large,ultra,uncensored,experimental").split(",") if x.strip())
|
||||
LABEL_KEY = "com.mike-ai.llama-profile"
|
||||
IMAGE_LABEL_KEY = "com.mike-ai.image-worker"
|
||||
IMAGE_WORKER = os.environ.get("IMAGE_WORKER", "flux")
|
||||
|
||||
@@ -1 +1 @@
|
||||
4df29be4f4c3673f428170fda944a5b19f743bb8
|
||||
3f545beccee69d9975f466ec7e45fd9aacd8ba90
|
||||
@@ -14,9 +14,18 @@ nach Standardbenchmark, Tool-Calling-Test und Kontexttest übernommen.
|
||||
|
||||
## Produktive Modelle
|
||||
|
||||
- Fast und Long: Qwen3.8-27B IQ4-MIX mit MTP2
|
||||
- Medium: Qwen3.8-27B IQ4_XS Pure ohne MTP
|
||||
- Alle Profile: integrierte Vision mit demselben BF16-mmproj im System-RAM
|
||||
- Fast: Qwen3.8-27B IQ4-MIX mit MTP2
|
||||
- Medium und Large: Qwen3.8-27B IQ4_XS Pure mit MTP3
|
||||
- Ultra: Qwen3.8-27B IQ4_XS Pure mit MTP2 und maximalem Textkontext
|
||||
- Uncensored: Blackfrost Qwen3.8-27B Abliterated Q4_K_M mit MTP2
|
||||
- Fast, Medium, Large und Uncensored: integrierte Vision; der jeweilige
|
||||
Projektor liegt vollständig auf der RTX 3060
|
||||
|
||||
Die produktive Runtime ist auf Commit
|
||||
`3f545beccee69d9975f466ec7e45fd9aacd8ba90` festgeschrieben. Gegen den
|
||||
vorherigen Commit waren Antworten und Geschwindigkeit praktisch identisch;
|
||||
übernommen wurde er wegen der Qwen-/MTP-/Multimodal-Korrekturen und des
|
||||
expliziten `--mmproj-device`.
|
||||
|
||||
Die Dateien selbst sind nicht Bestandteil des Repositories. Pfade und Hashes
|
||||
werden im lokalen Modellmanifest verwaltet.
|
||||
|
||||
@@ -31,13 +31,13 @@ Container-Neustart vollständig verworfen.
|
||||
TinySearch und SearXNG sind interne Abhängigkeiten des Web-MCPs und werden
|
||||
nicht direkt als allgemeine Werkzeuge angeboten.
|
||||
|
||||
Die vier Open-WebUI-Profile Fast, Medium, Large und Ultra binden den Server als
|
||||
Die fünf Open-WebUI-Profile Fast, Medium, Large, Ultra und Uncensored binden den Server als
|
||||
`server:mcp:web-local` standardmäßig ein. Damit steht die begrenzte lokale
|
||||
Websuche in jedem neuen Chat zur Verfügung, ohne zusätzlich Open WebUIs
|
||||
separate eingebaute Websuche zu aktivieren. Das Modell entscheidet weiterhin,
|
||||
ob eine aktuelle Frage tatsächlich einen Werkzeugaufruf benötigt.
|
||||
|
||||
Ein gemeinsamer Systemhinweis der vier Profile verlangt Webprüfung bei
|
||||
Ein gemeinsamer Systemhinweis der fünf Profile verlangt Webprüfung bei
|
||||
aktuellen, veränderlichen oder wesentlich unsicheren Tatsachen. Stabiles
|
||||
Allgemeinwissen soll ohne unnötige Suche beantwortet werden. Die Anweisung
|
||||
fordert gezielte statt wiederholter Synonymsuchen, Quellenlinks, transparente
|
||||
|
||||
@@ -19,6 +19,7 @@ class Filter:
|
||||
medium_context_tokens: int = 160000
|
||||
large_context_tokens: int = 192000
|
||||
ultra_context_tokens: int = 262144
|
||||
uncensored_context_tokens: int = 80000
|
||||
default_context_tokens: int = 160000
|
||||
soft_context_ratio: float = 0.70
|
||||
hard_context_ratio: float = 0.84
|
||||
@@ -110,6 +111,8 @@ class Filter:
|
||||
model = (model or "").lower()
|
||||
if "ultra" in model:
|
||||
return self.valves.ultra_context_tokens
|
||||
if "uncensored" in model:
|
||||
return self.valves.uncensored_context_tokens
|
||||
if "large" in model:
|
||||
return self.valves.large_context_tokens
|
||||
if "medium" in model:
|
||||
|
||||
@@ -59,7 +59,7 @@ owner = requested_owner
|
||||
if not owner:
|
||||
row = con.execute(
|
||||
"select user_id from model where id in "
|
||||
"('mikeai-fast','mikeai-medium','mikeai-large','mikeai-ultra',"
|
||||
"('mikeai-fast','mikeai-medium','mikeai-large','mikeai-ultra','mikeai-uncensored',"
|
||||
"'mikeai---fast-72k') order by updated_at desc limit 1"
|
||||
).fetchone()
|
||||
if row:
|
||||
@@ -160,6 +160,18 @@ profiles = [
|
||||
"vision": False,
|
||||
"tags": ["MikeAI", "Maximaler Kontext", "Nur Text"],
|
||||
},
|
||||
{
|
||||
"id": "mikeai-uncensored",
|
||||
"base": "qwen-uncensored",
|
||||
"name": "MikeAI · Uncensored · 80K",
|
||||
"description": (
|
||||
"Weniger verweigerungsfreudiges Spezialprofil: Qwen3.8-27B "
|
||||
"Abliterated Q4_K_M, 80.000 Token, RTX 5080 + RTX 3060 (90:10), MTP2 und "
|
||||
"Bildanalyse. Werkzeugrechte und Bestätigungsregeln bleiben unverändert."
|
||||
),
|
||||
"vision": True,
|
||||
"tags": ["MikeAI", "Uncensored", "Vision"],
|
||||
},
|
||||
]
|
||||
|
||||
params = {
|
||||
@@ -262,7 +274,7 @@ with con:
|
||||
|
||||
# Hide the raw router aliases while keeping them resolvable as bases for
|
||||
# the user-facing workspace presets.
|
||||
for raw_id in ("qwen-fast", "qwen-medium", "qwen-large", "qwen-ultra"):
|
||||
for raw_id in ("qwen-fast", "qwen-medium", "qwen-large", "qwen-ultra", "qwen-uncensored"):
|
||||
upsert(
|
||||
raw_id, None, raw_id, {},
|
||||
{
|
||||
@@ -306,7 +318,7 @@ with con:
|
||||
("ui.default_models", json.dumps("mikeai-medium"), now),
|
||||
)
|
||||
|
||||
print("OpenWebUI-Modelle installiert: Fast, Medium (Standard), Large, Ultra")
|
||||
print("OpenWebUI-Modelle installiert: Fast, Medium (Standard), Large, Ultra, Uncensored")
|
||||
PY
|
||||
|
||||
printf 'Datenbanksicherung: %s\n' "$backup"
|
||||
@@ -7,9 +7,9 @@ SERVICE="${LLAMA_SERVICE:-mike-ai-llama-ui.service}"
|
||||
PROFILE="${1:-}"
|
||||
|
||||
case "$PROFILE" in
|
||||
fast|medium|large|ultra) ;;
|
||||
fast|medium|large|ultra|uncensored) ;;
|
||||
*)
|
||||
echo "Usage: llama-profile {fast|medium|large|ultra}" >&2
|
||||
echo "Usage: llama-profile {fast|medium|large|ultra|uncensored}" >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in new issue
Block a user