Compare commits

...
Author SHA1 Message Date
hermes d6b6323ea7 fix: think=false en Open WebUI (el SYSTEM /no_think no basta)
El SYSTEM /no_think del Modelfile no frena a Qwen3 en tareas complejas
(la pregunta de code generaba 700+ tokens de razonamiento a pesar del
SYSTEM y del soft-switch en el prompt).

Via oficial: la API de Ollama 0.9+ acepta 'think': false en /api/chat,
y Open WebUI 0.11.3 mapea el param del modelo directamente al payload
(payload.py: 'think': lambda x: x).

DEFAULT_MODEL_PARAMS ahora: {"function_calling":"legacy","think":false}

Medido via API con think:false: 208 tokens, sin campo thinking, contenido
limpio (vs 689-725 con thinking).
2026-09-12 23:06:22 +02:00
hermes c68fe80484 fix: desactivar el thinking de Qwen3 (SYSTEM /no_think) (#23)
Co-authored-by: Hermes Agent <hermes@d0a1.es>
2026-09-12 22:38:19 +02:00
6 changed files with 14 additions and 10 deletions

No files matched your search

+3 -2
View File
@@ -147,6 +147,7 @@ if ($env:HTTPS_PROXY) { $ProxyEnv = @('-e', "HTTPS_PROXY=$env:HTTPS_PROXY", '-e'
$ModelList = docker exec d0a1-hermes-ollama ollama list 2>$null
if ("$ModelList" -match 'qwen3:4b') {
Info 'Modelo qwen3:4b ya descargado (volumen intacto). Omitiendo descarga.'
cmd /c docker exec d0a1-hermes-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf' '>' NUL '2>&1'
} else {
# --- Modelo: HF primero (CDN propio, rapido) y registry de Ollama como ultimo recurso ---
@@ -165,7 +166,7 @@ foreach ($Url in $HfUrls) {
if ((Test-Path $Gguf) -and (Get-Item $Gguf).Length -gt 2400000000) {
Info 'Importando modelo en Ollama...'
docker cp "$Gguf" d0a1-hermes-ollama:/root/.ollama/import.gguf
docker exec d0a1-hermes-ollama sh -c 'printf "FROM /root/.ollama/import.gguf\\nPARAMETER num_ctx 16384\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
docker exec d0a1-hermes-ollama sh -c 'printf "FROM /root/.ollama/import.gguf\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
$CreateOk = ($LASTEXITCODE -eq 0)
docker exec d0a1-hermes-ollama rm -f /root/.ollama/import.gguf | Out-Null
Remove-Item "$Gguf" -Force -ErrorAction SilentlyContinue
@@ -178,7 +179,7 @@ if ((Test-Path $Gguf) -and (Get-Item $Gguf).Length -gt 2400000000) {
if ($LASTEXITCODE -eq 0) {
$PullOk = $true
# Contexto ampliado (el default 4096 da 400 en Open WebUI con prompts largos)
docker exec d0a1-hermes-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
docker exec d0a1-hermes-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
}
}
if (-not $PullOk) {
+3 -2
View File
@@ -147,6 +147,7 @@ if ($env:HTTPS_PROXY) { $ProxyEnv = @('-e', "HTTPS_PROXY=$env:HTTPS_PROXY", '-e'
$ModelList = docker exec d0a1-openclaw-ollama ollama list 2>$null
if ("$ModelList" -match 'qwen3:4b') {
Info 'Modelo qwen3:4b ya descargado (volumen intacto). Omitiendo descarga.'
cmd /c docker exec d0a1-openclaw-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf' '>' NUL '2>&1'
} else {
# --- Modelo: HF primero (CDN propio, rapido) y registry de Ollama como ultimo recurso ---
@@ -165,7 +166,7 @@ foreach ($Url in $HfUrls) {
if ((Test-Path $Gguf) -and (Get-Item $Gguf).Length -gt 2400000000) {
Info 'Importando modelo en Ollama...'
docker cp "$Gguf" d0a1-openclaw-ollama:/root/.ollama/import.gguf
docker exec d0a1-openclaw-ollama sh -c 'printf "FROM /root/.ollama/import.gguf\\nPARAMETER num_ctx 16384\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
docker exec d0a1-openclaw-ollama sh -c 'printf "FROM /root/.ollama/import.gguf\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
$CreateOk = ($LASTEXITCODE -eq 0)
docker exec d0a1-openclaw-ollama rm -f /root/.ollama/import.gguf | Out-Null
Remove-Item "$Gguf" -Force -ErrorAction SilentlyContinue
@@ -178,7 +179,7 @@ if ((Test-Path $Gguf) -and (Get-Item $Gguf).Length -gt 2400000000) {
if ($LASTEXITCODE -eq 0) {
$PullOk = $true
# Contexto ampliado (el default 4096 da 400 en Open WebUI con prompts largos)
docker exec d0a1-openclaw-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
docker exec d0a1-openclaw-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
}
}
if (-not $PullOk) {
+3 -2
View File
@@ -168,6 +168,7 @@ if ($env:HTTPS_PROXY) { $ProxyEnv = @('-e', "HTTPS_PROXY=$env:HTTPS_PROXY", '-e'
$ModelList = docker exec d0a1-ollama ollama list 2>$null
if ("$ModelList" -match 'qwen3:4b') {
Info 'Modelo qwen3:4b ya descargado (volumen intacto). Omitiendo descarga.'
cmd /c docker exec d0a1-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf' '>' NUL '2>&1'
} else {
# --- Modelo: HF primero (CDN propio, rapido) y registry de Ollama como ultimo recurso ---
@@ -186,7 +187,7 @@ foreach ($Url in $HfUrls) {
if ((Test-Path $Gguf) -and (Get-Item $Gguf).Length -gt 2400000000) {
Info 'Importando modelo en Ollama...'
docker cp "$Gguf" d0a1-ollama:/root/.ollama/import.gguf
docker exec d0a1-ollama sh -c 'printf "FROM /root/.ollama/import.gguf\\nPARAMETER num_ctx 16384\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
docker exec d0a1-ollama sh -c 'printf "FROM /root/.ollama/import.gguf\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
$CreateOk = ($LASTEXITCODE -eq 0)
docker exec d0a1-ollama rm -f /root/.ollama/import.gguf | Out-Null
Remove-Item "$Gguf" -Force -ErrorAction SilentlyContinue
@@ -199,7 +200,7 @@ if ((Test-Path $Gguf) -and (Get-Item $Gguf).Length -gt 2400000000) {
if ($LASTEXITCODE -eq 0) {
$PullOk = $true
# Contexto ampliado (el default 4096 da 400 en Open WebUI con prompts largos)
docker exec d0a1-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
docker exec d0a1-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
}
}
if (-not $PullOk) {
+1 -1
View File
@@ -48,7 +48,7 @@ services:
ENABLE_WEB_SEARCH: "false"
ENABLE_DIRECT_CONNECTIONS: "false"
CHAT_RESPONSE_MAX_TOOL_CALL_ITERATIONS: "1"
DEFAULT_MODEL_PARAMS: '{"function_calling": "legacy"}'
DEFAULT_MODEL_PARAMS: '{"function_calling": "legacy", "think": false}'
depends_on:
ollama:
condition: service_healthy
+3 -2
View File
@@ -205,6 +205,7 @@ if ($env:HTTPS_PROXY) { $ProxyEnv = @('-e', "HTTPS_PROXY=$env:HTTPS_PROXY", '-e'
$ModelList = docker exec d0a1-wp-ollama ollama list 2>$null
if ("$ModelList" -match 'qwen3:4b') {
Info 'Modelo qwen3:4b ya descargado (volumen intacto). Omitiendo descarga.'
cmd /c docker exec d0a1-wp-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf' '>' NUL '2>&1'
} else {
# --- Modelo: HF primero (CDN propio, rapido) y registry de Ollama como ultimo recurso ---
@@ -223,7 +224,7 @@ foreach ($Url in $HfUrls) {
if ((Test-Path $Gguf) -and (Get-Item $Gguf).Length -gt 2400000000) {
Info 'Importando modelo en Ollama...'
docker cp "$Gguf" d0a1-wp-ollama:/root/.ollama/import.gguf
docker exec d0a1-wp-ollama sh -c 'printf "FROM /root/.ollama/import.gguf\\nPARAMETER num_ctx 16384\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
docker exec d0a1-wp-ollama sh -c 'printf "FROM /root/.ollama/import.gguf\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
$CreateOk = ($LASTEXITCODE -eq 0)
docker exec d0a1-wp-ollama rm -f /root/.ollama/import.gguf | Out-Null
Remove-Item "$Gguf" -Force -ErrorAction SilentlyContinue
@@ -236,7 +237,7 @@ if ((Test-Path $Gguf) -and (Get-Item $Gguf).Length -gt 2400000000) {
if ($LASTEXITCODE -eq 0) {
$PullOk = $true
# Contexto ampliado (el default 4096 da 400 en Open WebUI con prompts largos)
docker exec d0a1-wp-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
docker exec d0a1-wp-ollama sh -c 'printf "FROM qwen3:4b\\nPARAMETER num_ctx 16384\\nSYSTEM /no_think\\n" > /tmp/mf && ollama create qwen3:4b -f /tmp/mf'
}
}
if (-not $PullOk) {
+1 -1
View File
@@ -78,7 +78,7 @@ services:
WEBUI_AUTH: "false"
DEFAULT_LOCALE: "es"
CHAT_RESPONSE_MAX_TOOL_CALL_ITERATIONS: "1"
DEFAULT_MODEL_PARAMS: '{"function_calling": "legacy"}'
DEFAULT_MODEL_PARAMS: '{"function_calling": "legacy", "think": false}'
depends_on:
ollama:
condition: service_healthy