用本地大模型跑 AI 编程:Ollama + 各工具接入教程
本地模型 AI 编程,是指把代码大模型直接跑在自己的电脑或公司服务器上,让 Cursor、Cline 这类编程工具不再把代码发往云端,而是调用本地的 OpenAI 兼容接口完成补全、问答和重构。 它最大的价值是隐私与合规——代码不出内网;代价是效果和速度要看你的显存和模型大小。本文带你用 Ollama 把这条链路从拉模型到接工具一次跑通。
适合谁看:对代码外发有顾虑的企业开发者、想离线写代码的个人、以及单纯想折腾本地推理省 API 费用的人。
为什么要在本地跑:隐私、合规、离线
云端 AI 编程很爽,但有三类场景绕不开本地:
- 代码不能外发:金融、政企、军工等行业有明确的源码出境/出网限制,云端工具直接不合规。
- 离线或弱网环境:内网开发机、保密机房,根本连不上公网 API。
- 长期成本敏感:高频补全把 token 烧得很快,本地推理一次性投入显卡后边际成本接近零。
但要先说清取舍:本地模型在复杂推理、长上下文、多文件重构上,目前和云端旗舰(如 Claude、GPT 系列)仍有明显差距。本地适合补全、写小函数、解释代码、跑单测这类”短链路”任务;真要啃复杂架构,云端仍是更优解。想做两者混用,可以看 Cursor 自定义模型配置(规划中)。
原理:Ollama 是怎么把本地模型变成”云 API”的
机制不变,记住这一层就能以不变应万变:
- Ollama 是本地推理服务。它负责下载模型权重、管理显存、做量化加载,然后在本机起一个常驻服务。
- 它默认暴露一个 HTTP 端口(通常是
11434),并提供一套 OpenAI 兼容接口(形如/v1/chat/completions)。 - 编程工具并不知道模型在哪。它们只认”一个 OpenAI 风格的 Base URL + 模型名”。把这个 URL 指向
http://localhost:11434/v1,工具就以为自己在调云端,实际请求落到了本地。
所以接入的本质永远是同一件事:把工具的 API Base URL 改成本地端口,模型名填成你 Ollama 里拉下来的那个。这套思路和 让 Claude Code 接入国产模型 是一样的——都是改 Base URL 转发。
通用配置 4 步
第一步:装 Ollama 并拉一个代码模型
装好 Ollama 后,拉一个偏代码的模型。常见的代码向开源模型有 Qwen Coder 系列、DeepSeek Coder 系列、Code Llama 等:
# 拉一个代码模型(具体可用 tag 以官方模型库为准)
ollama pull qwen2.5-coder
# 直接跑起来测一下能否对话
ollama run qwen2.5-coder
模型选型口诀:显存小就选小参数 + 量化版,显存大才上大参数。 具体每个模型的参数档位和显存占用以官方模型库为准。
第二步:确认服务和端口在跑
Ollama 装好后一般会自动常驻。验证一下接口通不通:
# 列出本地已有模型
ollama list
# 测 OpenAI 兼容端口(端口以官方文档为准,默认通常是 11434)
curl http://localhost:11434/v1/models
能返回模型列表,就说明 OpenAI 兼容端口已就绪,可以接工具了。
第三步:在编程工具里改 Base URL
这是核心一步。无论哪个工具,都是填三样东西:
| 字段 | 填什么 |
|---|---|
| API Base URL | http://localhost:11434/v1 |
| API Key | 随便填一个非空字符串(本地不校验,但很多工具要求必填) |
| 模型名 | 你 ollama list 里的那个名字,如 qwen2.5-coder |
第四步:发一条消息验证
在工具里随便问一句”用 Python 写个冒泡排序”,能正常出结果即接入成功。
分工具接入说明
下面这几个工具都支持自定义 OpenAI 兼容端点,配置位置略有不同(菜单名称以各工具当前版本为准)。
接入 Cursor
Cursor 在设置里有 Models / OpenAI API 区域,可以填 Override Base URL。把它指向 http://localhost:11434/v1,再添加你的本地模型名即可。注意 Cursor 的部分高级能力(如 Tab 多行预测)走的是它自家服务,本地模型主要替换的是对话与 Agent 那部分。
接入 Cline / Continue
Cline 和 Continue 是 VS Code 里的开源编程插件,对本地模型支持最干净。
- Cline:在 API Provider 里直接有 “Ollama” 选项,填好 Base URL 和模型名即可,几乎零配置。
- Continue:编辑它的配置文件,在模型列表里加一项
provider: ollama,写上模型名。它还能给”自动补全”和”对话”分别指定不同本地模型。
这两个工具因为开源、配置透明,是验证本地链路是否跑通的最佳试金石——先在这里跑通,再去配 Cursor 这类闭源工具会少踩很多坑。
接入 Claude Code
Claude Code 默认走 Anthropic 接口,但可以通过环境变量改写请求地址,把它转发到本地的 OpenAI 兼容端口(通常需要一层格式转换代理)。具体做法和接国产模型一致,详见 Claude Code 接入国产模型教程,把目标地址换成 localhost:11434 即可。
显存与速度:买不买得起这张”入场券”
这是决定本地模型体验的硬指标,给几条判断:
- 显存决定你能跑多大的模型。模型放不进显存就会溢出到内存/CPU,速度断崖式下降。量化(如 4-bit)能显著压低显存占用,是消费级显卡跑大模型的关键手段。
- 速度看每秒输出 token 数。补全要”跟手”,太慢的本地模型体验还不如不用。小模型 + 够用的显卡,才能拿到接近云端的响应手感。
- CPU 也能跑但很慢,仅适合偶尔问答,不适合高频补全。
各模型在各显卡上的具体 token/s 和显存占用差异很大,以你实测为准,别迷信单一数字。
怎么验证接入成功
按这个顺序逐层排查,能精准定位是哪一环断了:
ollama list有模型 → 模型拉成功。curl .../v1/models返回列表 → 端口和兼容接口正常。ollama run能对话 → 推理本身没问题。- 工具里能出结果 → 接入打通。
哪一步断在哪,问题就在那一层,不用瞎猜。
常见坑与排查
| 现象 | 原因 | 解法 |
|---|---|---|
| 工具报连接被拒 | 服务没起 / 端口没监听 | 先 ollama list 确认服务在跑,再查端口(默认通常 11434,以官方为准) |
| 工具提示 API Key 无效 | Key 字段留空 | 随便填个非空字符串,本地不校验真实性 |
| 返回乱码或答非所问 | 拉的不是 chat 版模型 | 换成对话/指令微调版(Instruct/Chat)的代码模型 |
| 生成极慢、机器卡死 | 模型超出显存 | 换更小参数或量化版,让模型装进显存 |
| 模型名填错找不到 | 名称与 ollama list 不一致 | 严格复制 ollama list 里的全名(含 tag) |
| 远程机器连不上 | 只监听了本地回环 | 让 Ollama 监听 0.0.0.0(配置方式以官方文档为准),注意内网安全 |
常见问题
本地模型能完全替代 Cursor、Claude Code 的云端效果吗? 不能。本地模型适合补全、写小函数、解释代码这类短任务;复杂多文件重构、长上下文推理上和云端旗舰仍有明显差距。务实做法是本地处理日常高频小活、云端处理硬骨头。
没有独立显卡,只有核显或纯 CPU 能跑吗? 能跑但很慢,只适合偶尔问答,不建议拿来做实时补全。想要接近云端的手感,独立显卡 + 够用的显存几乎是门槛。
用本地模型,代码真的不会外发吗? 只要工具的 Base URL 指向本地、且没开任何云端联动功能,请求就只在本机或内网流转。但要注意:有些工具的”索引""遥测""补全增强”是独立走云的,接入前确认这些功能已关闭。
该选哪个代码模型? 按显存倒推:显存有限就选小参数 + 量化版的代码模型;显存充足再上大参数版换效果。具体型号和档位以官方模型库为准,别只看名字大小,实测响应速度和代码质量更靠谱。
国产闭源模型也能这样本地接吗? 本地跑的是开源权重模型。如果你想用 DeepSeek 这类厂商模型,多数情况是调它们的云端 API(见 DeepSeek API 怎么接入(规划中)),而非本地权重——两者是不同路线,别混淆。
👉 看看我们的 AI 编程实战体系课,或逛 AI 编程教程大全 把基本功打扎实。