Local AI · WUIC Assistant

Run the WUIC coding model locally

qwen3-coder-wuic:30b-dpo is our DPO fine-tune of qwen3-coder:30b, trained on the WUIC framework's own tool-use transcripts. Download it from Hugging Face, serve it on your own GPU with Ollama, and drive the WUIC backend and the WUIC Assistant VS Code extension entirely offline — no API calls, no data leaving your machine.

Read the story behind it: how we trained it with DPO and the local Ollama + MCP setup.

What you need

GPU · 24 GB VRAMRTX 4090 class. The Q4_K_M weights use ≈ 19 GB VRAM.
~19 GB diskSize of the GGUF (q4_K_M quantization).
~197 tokens/sMoE 30b-a3b (~3B active params) on a 4090.
OllamaLocal model server. ollama.com/download
Smaller GPU? qwen2.5-coder:14b or gpt-oss:20b run with less VRAM, but are weaker on complex tool schemas.

1 Download the model

The GGUF is hosted on Hugging Face at castricolorenzo/qwen3-coder-wuic-30b-dpo. Ollama can pull it directly, then we give it a short local tag so the config below is clean:

# pull the GGUF straight from Hugging Face
ollama pull hf.co/castricolorenzo/qwen3-coder-wuic-30b-dpo:Q4_K_M

# alias it to a short name (used everywhere below)
ollama cp hf.co/castricolorenzo/qwen3-coder-wuic-30b-dpo:Q4_K_M qwen3-coder-wuic:30b-dpo

Verify it's a tool-calling model: ollama show qwen3-coder-wuic:30b-dpo should list tools.

2 Tune Ollama for the GPU

Set these machine-level environment variables, then restart Ollama. They enable flash attention, quantize the KV cache, and fix a context window that stays fully on-GPU on a 24 GB card:

# Windows (PowerShell, run once, then restart the Ollama service)
[Environment]::SetEnvironmentVariable('OLLAMA_FLASH_ATTENTION','1','Machine')
[Environment]::SetEnvironmentVariable('OLLAMA_KV_CACHE_TYPE','q8_0','Machine')
[Environment]::SetEnvironmentVariable('OLLAMA_CONTEXT_LENGTH','49152','Machine')
[Environment]::SetEnvironmentVariable('OLLAMA_KEEP_ALIVE','-1','Machine')

# Linux/macOS equivalent
export OLLAMA_FLASH_ATTENTION=1
export OLLAMA_KV_CACHE_TYPE=q8_0
export OLLAMA_CONTEXT_LENGTH=49152
export OLLAMA_KEEP_ALIVE=-1
Check ollama ps: the PROCESSOR column must read 100% GPU. If it shows a CPU/GPU split, part of the model spilled to CPU (much slower) — lower OLLAMA_CONTEXT_LENGTH (e.g. 32768).

Serving on a separate box? Add OLLAMA_HOST=0.0.0.0:11434 and open TCP 11434 in the firewall.

3 Point the WUIC backend at it

In your app's appsettings.json, under AppSettings, set the RAG/chat model to the local Ollama model. This is what the in-product chatbot and the metadata assistant use:

{
  "AppSettings": {
    "rag-use-dotnet-engine": "true",
    "rag-llm-provider": "ollama",
    "rag-llm-api-key": "ollama",
    "rag-llm-default-chat-model": "qwen3-coder-wuic:30b-dpo",
    "rag-llm-base-url": "http://localhost:11434/v1",
    "rag-auto-compact-threshold": "24"
  }
}

Replace localhost with your Ollama host if it runs elsewhere. Verify with GET /api/Rag/Healthstatus: "ok".

4 Install the WUIC Assistant (VS Code)

The WUIC Assistant is an agentic VS Code extension — a chat panel that scaffolds components, routes and metadata patches on your real project files, grounded on the framework. Install the packaged extension:

# from the folder where you saved it
code --install-extension wuic-assistant.vsix

Then in Settings → WUIC Assistant point it at your local model:

"wuicAssistant.provider": "ollama",
"wuicAssistant.ollamaUrl": "http://localhost:11434",
"wuicAssistant.ollamaModel": "qwen3-coder-wuic:30b-dpo",
"wuicAssistant.ollamaNumCtx": 49152,
"wuicAssistant.backendUrl": "http://localhost:5000"

Open the chat from the WUIC Assistant icon in the activity bar. The extension also speaks to the framework's wuic-rag MCP server for codebase-aware answers. It can run against Anthropic instead of Ollama (provider: "anthropic") if you'd rather use an API key.

Fully local, and yours to keep

Once pulled, everything runs on your hardware — the model, the backend, the editor. No prompts, code or metadata leave the machine. The model is an Apache-2.0 derivative of Qwen3-Coder; use it freely.