150 lines
3.6 KiB
Markdown
150 lines
3.6 KiB
Markdown
# Local AI Coding Setup — Windows 11 (Aider + Ollama)
|
||
|
||
## Hardware
|
||
- GPU: RTX 5070 Ti, 12GB VRAM
|
||
- RAM: 32GB
|
||
- OS: Windows 11
|
||
|
||
---
|
||
|
||
## Prerequisites
|
||
|
||
### 1. Install Ollama
|
||
Download from https://ollama.com and install.
|
||
|
||
### 2. Pull a model
|
||
```powershell
|
||
ollama pull qwen3-coder:30b # 18GB, strong coding model (MoE, VRAM+RAM split)
|
||
ollama pull gemma4:12b # 12GB, responds in English more reliably
|
||
```
|
||
|
||
Confirm models are available:
|
||
```powershell
|
||
ollama list
|
||
```
|
||
|
||
Confirm Ollama is serving:
|
||
```powershell
|
||
curl http://localhost:11434/api/tags
|
||
```
|
||
|
||
---
|
||
|
||
## Install Aider
|
||
|
||
```powershell
|
||
pip install aider-chat
|
||
aider --version # should print version number
|
||
```
|
||
|
||
---
|
||
|
||
## Project Config
|
||
|
||
Create `.aider.conf.yml` in your project root:
|
||
|
||
```yaml
|
||
model: ollama/gemma4:12b
|
||
openai-api-base: http://localhost:11434/v1
|
||
openai-api-key: ollama
|
||
edit-format: whole
|
||
map-tokens: 2048
|
||
no-auto-commits: true
|
||
system-prompt: "Always respond in English only. Never use Chinese or any other language."
|
||
```
|
||
|
||
**Config notes:**
|
||
- `edit-format: whole` — more reliable file writes for local models (avoids code showing in chat only)
|
||
- `map-tokens: 2048` — limits repo map size, important for smaller context windows
|
||
- `no-auto-commits: true` — review changes before they hit git
|
||
- `system-prompt` — forces English responses (important for Qwen3 which defaults to Chinese)
|
||
|
||
Switch models without editing the file:
|
||
```
|
||
/model ollama/qwen3-coder:30b
|
||
```
|
||
|
||
---
|
||
|
||
## Optional: Performance Tuning (if inference is slow)
|
||
|
||
Create a `Modelfile` in the project root:
|
||
|
||
```
|
||
FROM qwen3-coder:30b
|
||
PARAMETER num_ctx 8192
|
||
PARAMETER num_gpu 99
|
||
```
|
||
|
||
Register it:
|
||
```powershell
|
||
ollama create qwen3-coder-tuned -f Modelfile
|
||
```
|
||
|
||
Update `.aider.conf.yml`:
|
||
```yaml
|
||
model: ollama/qwen3-coder-tuned
|
||
```
|
||
|
||
**Why:** `num_gpu 99` maximizes VRAM usage. `num_ctx 8192` prevents the KV cache from
|
||
spilling too much into RAM. Recommended context range: 4096–16384.
|
||
|
||
---
|
||
|
||
## Daily Aider Workflow
|
||
|
||
Start Aider (reads config automatically):
|
||
```powershell
|
||
aider
|
||
```
|
||
|
||
| Command | What it does |
|
||
|---------|-------------|
|
||
| `/add src/foo.py` | Add file to context |
|
||
| `/drop src/foo.py` | Remove file from context |
|
||
| `/diff` | See pending changes |
|
||
| `/undo` | Revert last change |
|
||
| `/run pytest` | Run command, share output with model |
|
||
| `/run git rm --cached file.py` | Run git commands from inside Aider |
|
||
| `/clear` | Clear chat history (keep files) |
|
||
| `/settings` | Show loaded config (verify auto_commits, system_prompt) |
|
||
| `/model ollama/gemma4:12b` | Switch model on the fly |
|
||
| `/exit` | Quit |
|
||
|
||
---
|
||
|
||
## Known Issues & Fixes
|
||
|
||
### Model responds in Chinese
|
||
Cause: Qwen3 is a Chinese model and defaults to Chinese.
|
||
Fix: `system-prompt` in `.aider.conf.yml` (already included above). Restart Aider after config change.
|
||
|
||
### Aider shows code in chat but doesn't write files
|
||
Cause: Model didn't follow Aider's edit format.
|
||
Fix 1: `/add target_file.py` before asking — hints the target file to the model.
|
||
Fix 2: `edit-format: whole` in config (already included above).
|
||
|
||
### "File not found" / repo-map warnings for deleted files
|
||
Cause: File deleted from disk but still tracked in git index.
|
||
Fix:
|
||
```powershell
|
||
git rm --cached filename.py
|
||
```
|
||
Or from inside Aider:
|
||
```
|
||
/run git rm --cached filename.py
|
||
```
|
||
|
||
### Config changes not taking effect
|
||
Fix: Exit Aider (`/exit`) and restart. Config is only read at startup.
|
||
|
||
---
|
||
|
||
## Verify Everything Works
|
||
|
||
1. `ollama list` — model appears
|
||
2. `aider --version` — prints version
|
||
3. Start Aider, run `/settings` — confirm `auto_commits: False` and `system_prompt` present
|
||
4. Ask Aider to create a simple file — it should write to disk, not just chat
|
||
5. Response is in English
|