Skip to content

Ollama 本地 AI 编程助手

本章节定制一个编码专用的本地模型 runoob-coder,并把它接进 VS Code 和 Claude Code,打造一套完全离线、不花 token 费用的编程助手。

核心工作是三件事:选对代码模型、写好编码 Modelfile、接进顺手的工具。


第一步:选代码模型,显存说了算

代码模型的能力差距比对话模型更明显,但门槛也更高,按显存对号入座:

你的硬件推荐模型预期表现
24GB 以上显存qwen3-coder专用代码模型,跨文件理解最强;30B 级参数对显存要求高,长上下文还需更多余量
16GB 内存无独显qwen3.5:9b 定制版日常补全、解释代码、写单测足够
8GB 内存老机器qwen3.5:4b / 0.8b 定制版轻量问答,复杂任务交给云端

显存不够跑 qwen3-coder 也不用遗憾:用 :cloud 标签直接调用云端版本,代码敏感的团队记得先过一遍合规。

按硬件选择拉取:

bash
ollama pull qwen3-coder        # 24GB+ 显存
ollama pull qwen3.5:9b         # 16GB 内存

第二步:写编码场景的 Modelfile

裸模型写代码能用但不"专业"——不注释、爱跑题、格式随意。用 Modelfile 把编码规范固化下来:

实例

bash

# 文件路径:Modelfile

# 显存 24GB+ 把基座换成 qwen3-coder

FROM qwen3.5:9b

SYSTEM """

你是 RUNOOB 团队的编程助手,遵守以下规范:

1. 优先给出完整、可直接运行的代码,而不是片段

2. 每个关键步骤写中文注释,解释"为什么"

3. 遵循 PEP 8(Python)或语言官方风格

4. 涉及不熟悉的 API 时提醒查官方文档,不臆造接口

5. 回答结构:思路一句话 - 代码 - 注意事项

"""

# 代码场景要稳定,压低随机性

PARAMETER temperature 0.2

# Agent/编辑器场景代码上下文很大,给足窗口

PARAMETER num_ctx 65536

构建专属编码模型:

bash
ollama create runoob-coder -f Modelfile

验收它是否"调教到位",用三个标准任务测试:让一个函数直接可用(看完整性)、解释一段带坑的旧代码(看理解力)、要求写单测(看规范遵循)。三个都合格再接入编辑器。

num_ctx 65536 是给编辑器与 Agent 场景准备的:它们会把整个文件甚至多个文件塞进上下文。显存吃紧时降到 32768,并用 ollama ps 观察 PROCESSOR 是否仍为 100% GPU。


第三步:接进你的编辑器

定制模型与裸模型在工具眼里没有区别,接入方式与第 11 篇完全一致。

coder-layers.svg

VS Code Chat 接入

安装 Ollama 官方扩展后,在 Chat 的模型选择器里选中 runoob-coder 即可,无需其他配置。

Claude Code 接入

实例

bash

# 一键方式

ollama launch claude --model runoob-coder

# 手动方式:环境变量指向本地,模型名用定制模型

export ANTHROPIC_AUTH_TOKEN=ollama

export ANTHROPIC_BASE_URL=http://localhost:11434

claude --model runoob-coder

接入后,Claude Code 的文件编辑、命令执行、多轮重构能力全部由本地模型驱动,跑长任务前记得确认上下文窗口已按上文设置。


效果对比与模型切换策略

不同任务该用不同量级的模型,把选择策略固化下来避免每次纠结:

任务类型推荐模型原因
函数补全、解释代码、写单测runoob-coder(本地)快、免费、隐私
跨文件重构、复杂调试qwen3-coder 或云端旗舰需要更强的长上下文理解
批量生成、脚本化处理本地小模型 + API零成本跑量

切换成本要足够低才可能真的切换:

实例

bash

# 终端对话中不退出直接换模型

/load qwen3-coder

# VS Code 在模型选择器中点选即可

# Claude Code 启动时用 --model 指定

一个实用的组合策略:日常 90% 的请求交给本地小模型,遇到真正的硬骨头再切大模型或云模型。Ollama 的多标签共存让这种"梯队"策略没有任何切换成本。

AI 思考中...

Ollama RAG:本地私人知识库问答

Ollama 搭建类似 ChatGPT 网页应用

基于 VitePress 构建,部署于 GitHub Pages