如果你正在寻找一个既能本地运行大模型,又能无缝集成到 VS Code 这类 IDE 中,实现智能代码补全和对话的开发环境,那么你很可能已经听说过 Ollama 和 Codex。但面对一堆零散的信息:Ollama 下载慢、模型配置复杂、Codex 安装后模型切换失灵、各种报错…… 到底该怎么把它们串起来,搭建一个稳定可用的本地 AI 编程助手?
这篇文章要解决的,正是这个核心痛点: 如何从零开始,在本地部署 Ollama 管理多个大模型,并成功配置 Codex 插件,使其能稳定、灵活地调用你本地的模型,而不是中途“罢工”或“模型失踪”。 这不是一篇简单的安装命令罗列,而是会深入剖析整个流程中容易踩坑的环节,比如网络问题、模型路径、配置文件的正确写法,以及当 Codex 无法识别 Ollama 模型时,你应该如何一步步排查。
读完本文,你将能清晰地掌握:Ollama 作为本地模型运行引擎的核心价值;如何为它配置国内镜像源加速下载;如何拉取和运行不同规格的模型(如 DeepSeek、Qwen 等);以及最关键的一步——如何正确配置 Codex,让它不仅能找到你的本地模型,还能在不同模型间平滑切换,真正成为你得力的本地编程副驾。
1. 为什么需要本地部署的 AI 编程助手?
在云端 AI 编程助手(如 GitHub Copilot)大行其道的今天,本地部署方案似乎显得有些“复古”。但恰恰是这种“复古”,解决了一批开发者的核心焦虑: 数据隐私、网络延迟、使用成本和模型定制 。
想象一下这些场景:你正在开发涉及敏感业务逻辑或未公开数据的项目,将代码片段发送到云端总让你心有不安;你的网络环境不稳定,每次代码补全都要等待数百毫秒甚至更久,打断了流畅的编程心流;或者,你希望尝试一些最新的、小众的或经过自己微调的开源模型,而云端服务并不提供。这时,一个完全运行在你本地机器上、由你完全控制的 AI 助手就显得至关重要。
Ollama 的出现,极大地降低了本地运行大语言模型的门槛。它就像一个 Docker for LLMs,把模型下载、环境配置、服务启动等复杂过程封装成简单的命令行操作。而 Codex(这里通常指 Claude Code 或类似的开源 VS Code 插件,能够连接本地 Ollama 服务)则扮演了桥梁的角色,将 IDE 与本地模型服务连接起来,让你能在熟悉的编码环境中直接与模型对话、生成代码。
然而,将两者成功集成并稳定运行,远不止运行两条安装命令那么简单。从网络下载的“拦路虎”,到配置文件的一个字符错误,都可能导致整个流程失败。本文的目的,就是为你扫清这些障碍。
2. 核心组件解析:Ollama 与 Codex 是什么?
在开始动手之前,我们需要厘清几个关键概念,避免后续操作中出现混淆。
2.1 Ollama:本地大模型的“发动机”
你可以把 Ollama 理解为一个 本地的大模型运行时和管理工具 。它的核心职责是:
- 模型拉取与管理 :从模型仓库(如 Ollama 官方库)下载模型文件,并管理本地已下载的多个模型版本。
- 模型服务化 :将下载的模型加载到内存中,并启动一个本地 API 服务(默认在
http://localhost:11434)。这个 API 遵循 OpenAI 兼容的格式,使得许多支持 OpenAI API 的客户端都能直接连接它。 - 资源优化 :针对不同硬件(CPU/GPU)进行一些底层的优化,以提升推理速度。
Ollama 本身不“生产”模型,它是模型的“搬运工”和“启动器”。其强大之处在于统一的命令行接口,例如:
-
ollama run llama3.2: 拉取并运行 Meta 的 Llama 3.2 模型。 -
ollama run qwen2.5:7b: 拉取并运行 Qwen 2.5 的 7B 参数版本。 -
ollama list: 查看本地已下载的模型。
2.2 Codex:连接 IDE 与模型的“桥梁”
“Codex”这个名字容易引起混淆,因为它也是 OpenAI 一个早期模型的名称。但在当前语境下,特别是在网络热词中提到的 claude code 、 codex 配置了 deepseek 等, 它通常指的是一个能够连接本地 Ollama 服务的 VS Code 插件 。这类插件的代表有:
- Claude Code :一个开源的 VS Code 扩展,允许配置多个后端(包括本地 Ollama、OpenAI API、Anthropic Claude API 等)。
- Continue :另一个流行的开源 VS Code 扩展,同样支持连接本地 Ollama。
- 其他兼容 OpenAI API 的客户端 :任何可以通过设置
base_url为http://localhost:11434来连接 OpenAI 兼容 API 的工具。
这类插件的核心功能是:在 VS Code 侧边栏或内联提供一个聊天界面,接收你的自然语言指令或代码上下文,将其发送到你配置的后端模型(即本地的 Ollama 服务),并将模型的回复(代码、解释等)展示给你。
2.3 工作流程全景图
理解了组件,我们来看它们如何协作:
[你的 VS Code]
↓ (通过插件发送请求)
[Codex 类插件]
↓ (将请求转换为 API 调用,发送到 localhost:11434)
[Ollama 本地服务]
↓ (加载指定的模型进行推理)
[你下载的本地模型文件 (如 qwen2.5:7b)]
↓ (生成响应)
[Ollama 本地服务] → [Codex 插件] → [VS Code 界面展示给你]
整个数据流完全在本地闭环 ,这是保障隐私和低延迟的关键。
3. 环境准备与前置条件
在开始安装配置前,请确保你的系统满足以下条件。这是避免后续莫名错误的第一步。
3.1 硬件与操作系统要求
- 操作系统 :Windows 10/11, macOS, Linux (包括 WSL2)。本文将以 Windows 和 WSL2/Ubuntu 为主要环境进行说明,原理相通。
- 内存 : 这是最重要的指标 。运行 7B 参数的模型,建议至少 16GB 物理内存。运行 13B 或更大模型,建议 32GB 或更多。内存不足会导致 Ollama 运行失败或被系统终止(这正是热词中
killed错误的常见原因)。 - 存储空间 :每个模型从几GB到几十GB不等,请确保有足够的硬盘空间。
- GPU(可选但推荐) :如果有 NVIDIA GPU,Ollama 会自动利用 CUDA 加速,极大提升推理速度。请确保已安装正确版本的 NVIDIA 驱动和 CUDA Toolkit。
3.2 软件依赖
- 终端 :Windows 用户建议使用 PowerShell (管理员模式) 或 Windows Terminal。Linux/macOS 用户使用系统终端即可。
- VS Code :确保已安装最新稳定版。
- 网络 :由于需要从 GitHub 和模型仓库下载,请准备好稳定的网络连接。我们将介绍配置国内镜像源的方法来解决“下载太慢”的问题。
4. 第一步:安装与配置 Ollama
这是整个体系的基石,务必确保这一步稳固。
4.1 下载与安装 Ollama
访问 Ollama 官网 (https://ollama.com) 下载对应系统的安装包。对于 Windows,直接运行 .exe 安装程序即可。安装完成后,Ollama 会作为后台服务运行。
验证安装 :打开终端,输入以下命令:
ollama --version
如果显示版本号(如 ollama version 0.1.xx ),说明安装成功。
4.2 (关键)配置国内镜像源加速模型下载
直接从官方源拉取模型对于国内用户可能非常缓慢甚至失败。我们需要配置环境变量,使用国内镜像。
对于 Windows :
- 在开始菜单搜索“环境变量”,选择“编辑系统环境变量”。
- 点击“环境变量”按钮。
- 在“系统变量”或“用户变量”部分,点击“新建”。
- 变量名填入:
OLLAMA_HOST - 变量值填入:
0.0.0.0(这使服务监听所有接口,有时对后续连接有帮助,非必须但建议)。 - 再次点击“新建”。
- 变量名填入:
OLLAMA_MODELS - 变量值填入:
D:\ollama\models(这是一个示例路径, 强烈建议不要放在C盘 ,请替换为你希望存储模型的大容量磁盘路径,如E:\AI\Models)。这个变量指定模型下载的存储位置。 - 最关键的一步 :为了使用镜像源,我们需要修改 Ollama 实际使用的镜像地址。这通常通过修改 Ollama 服务配置或使用镜像站提供的脚本实现。一个通用方法是,在拉取模型时使用镜像站地址。但目前更可靠的方法是,在拉取模型前,设置一个指向镜像站的模型仓库地址。例如,一些社区镜像站提供了类似
ollama pull registry.cn-hangzhou.aliyuncs.com/ollama/llama3.2的方式。但请注意,镜像站可能不包含所有模型,且地址可能变化。
一个更实用的方案是使用代理或下载工具 :如果镜像源不稳定,可以考虑使用具备代理功能的命令行工具(如 proxychains on Linux)或在网络条件较好的时段进行下载。
对于 Linux/WSL2 : 在 ~/.bashrc 或 ~/.zshrc 文件末尾添加:
export OLLAMA_HOST="0.0.0.0"
export OLLAMA_MODELS="/mnt/e/AI/Models" # 示例路径,请修改
然后执行 source ~/.bashrc 使配置生效。
4.3 拉取并运行你的第一个模型
让我们从一个中等大小的模型开始,例如 DeepSeek 的 Coder 模型或 Qwen 的 7B 版本,它们对代码生成有较好的支持。
打开终端,执行:
ollama run deepseek-coder:6.7b
或者
ollama run qwen2.5-coder:7b
注意 : deepseek-coder:6.7b 和 qwen2.5-coder:7b 是模型在 Ollama 库中的标签。首次运行 ollama run 命令时,如果本地没有该模型,它会自动从仓库拉取。
这个过程可能会很慢 ,取决于你的网络和镜像源。终端会显示下载进度。下载完成后,模型会自动加载,并进入一个交互式聊天界面。你可以输入 Hello 测试,输入 /bye 退出。
重要提示 :如果下载过程中断或极慢,可以参考网络上的“离线加载模型”方案,即先从其他渠道下载模型文件(Modelfile 和权重文件),然后使用 ollama create 和 ollama run 命令本地创建模型。这需要一些手动操作。
4.4 验证 Ollama 服务 API
模型运行后,Ollama 的 API 服务就在后台启动了。我们可以用 curl 命令测试一下。
打开另一个终端窗口,执行:
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-coder:6.7b",
"prompt": "用Python写一个快速排序函数",
"stream": false
}'
如果返回一串包含代码的 JSON 数据,说明 Ollama 服务运行正常且能成功调用模型。请记下这个 http://localhost:11434 地址,这是后续 Codex 插件需要连接的关键。
5. 第二步:在 VS Code 中安装与配置 Codex 类插件
这里以功能强大且开源的 Continue 插件为例,因为它配置灵活,支持多模型后端,且社区活跃。Claude Code 插件的配置逻辑类似。
5.1 安装 Continue 插件
- 打开 VS Code。
- 进入扩展市场 (Ctrl+Shift+X)。
- 搜索 “Continue”。
- 找到由 “Continue” 发布的扩展,安装并启用。
5.2 配置 Continue 连接本地 Ollama
安装后,VS Code 侧边栏会出现 Continue 的图标。点击它,通常会提示你进行初始配置。或者,你可以手动创建配置文件。
- 在 VS Code 中,按下
Ctrl+Shift+P(Windows/Linux) 或Cmd+Shift+P(macOS) 打开命令面板。 - 输入
Continue: 打开配置文件并执行。
这会在你的项目根目录或全局配置中创建一个 .continuerc.json 文件(具体位置根据提示选择)。我们需要编辑这个文件。
5.3 编写配置文件
以下是一个连接本地 Ollama 的 DeepSeek-Coder 模型的配置示例:
{
"models": [
{
"title": "DeepSeek Coder (本地)",
"provider": "openai",
"model": "deepseek-coder:6.7b",
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama" // Ollama 不需要真实的 API Key,但有些客户端要求非空,填任意值即可
}
],
"customCommands": []
}
配置项详解 :
-
title: 在插件界面中显示的名称,你可以自定义。 -
provider: 必须设为"openai",因为 Ollama 提供了 OpenAI 兼容的 API。 -
model: 必须与你在 Ollama 中拉取和运行的模型名称 完全一致 。例如deepseek-coder:6.7b、qwen2.5-coder:7b、llama3.2等。 -
apiBase: 这是最容易出错的地方 。Ollama 的 API 地址是http://localhost:11434,但 OpenAI 兼容的端点通常挂在/v1路径下。因此完整的地址是http://localhost:11434/v1。如果只写到http://localhost:11434,插件可能会报错。 -
apiKey: Ollama 默认不需要认证,但某些客户端框架要求此字段非空。填写"ollama"或任意字符串即可。
5.4 配置多模型切换
如果你想在多个本地模型间切换(比如一个用于代码,一个用于文档),可以在 models 数组中添加多个配置项:
{
"models": [
{
"title": "DeepSeek Coder 6.7B",
"provider": "openai",
"model": "deepseek-coder:6.7b",
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama"
},
{
"title": "Qwen Coder 7B",
"provider": "openai",
"model": "qwen2.5-coder:7b",
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama"
},
{
"title": "Llama 3.2 3B",
"provider": "openai",
"model": "llama3.2",
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama"
}
]
}
保存配置文件后,在 Continue 插件的界面中,通常可以通过下拉菜单或命令来选择当前使用的模型。
6. 完整工作流示例:从零搭建到代码生成
让我们串联所有步骤,完成一个从安装到实际编码的完整闭环。
6.1 场景设定
假设你是一名 Python 开发者,想在本地使用 AI 助手来帮你编写一个 Flask Web 应用的骨架代码,并希望模型能根据你的要求进行修改。
6.2 分步操作
步骤一:确保 Ollama 服务运行并加载模型
- 打开终端。
- 运行
ollama run deepseek-coder:6.7b。如果已下载,这会启动交互界面。 对于插件调用,我们不需要进入交互界面,只需要服务在后台运行。 - 实际上,更标准的做法是让 Ollama 作为后台服务运行(安装后默认如此),然后我们只需确保模型已下载。可以通过
ollama list查看已有模型。 - 如果模型未下载,使用
ollama pull deepseek-coder:6.7b仅下载而不运行交互界面。
步骤二:配置 VS Code 与 Continue 插件
- 在 VS Code 中安装 Continue 插件。
- 创建或修改
.continuerc.json配置文件,内容如上一节所示,指向deepseek-coder:6.7b。 - 重启 VS Code 或重载窗口以确保配置生效。
步骤三:在 VS Code 中与 AI 协作编码
- 新建一个
app.py文件。 - 打开 Continue 侧边栏(点击活动栏的 Continue 图标)。
- 在 Continue 的输入框中,输入你的需求:“帮我创建一个简单的 Flask 应用,有一个根路由返回 ‘Hello, Local AI!',并有一个
/api/data路由返回 JSON 数据{\"status\": \"ok\"}。” - 按下 Enter。Continue 会将请求发送到本地的 Ollama 服务,DeepSeek-Coder 模型生成代码,并显示在聊天窗口中。
- 你可以直接点击聊天窗口中的代码块,将其插入到
app.py文件中。 - 接着,你可以继续提问:“如何为这个 Flask 应用添加静态文件服务?”模型会根据现有代码上下文给出修改建议。
整个过程中,所有计算和数据处理均发生在你的本地机器上。
7. 常见问题与排查思路 (FAQ)
以下是集成过程中最常见的问题及其解决方法,对照排查可以解决大部分情况。
| 问题现象 | 可能原因 | 排查步骤 | 解决方案 |
|---|---|---|---|
| Ollama 下载模型极慢或失败 | 1. 网络连接问题。 2. 官方源被限速或阻断。 | 1. 尝试 ping raw.githubusercontent.com 。 2. 查看下载进度是否长时间不动。 | 1. 使用可靠的网络连接。 2. 配置国内镜像源 (需寻找当前可用的镜像地址)。 3. 使用 proxychains 等工具(Linux)。 4. 手动下载模型文件进行离线加载。 |
运行模型时提示 [ollama] error: ... killed | 1. 内存不足 ,系统 OOM Killer 终止了进程。 2. 模型文件损坏。 | 1. 检查系统内存使用情况(任务管理器或 htop )。 2. 尝试运行一个更小的模型(如 tinyllama )测试。 | 1. 关闭不必要的程序,释放内存 。 2. 尝试运行参数更小的模型(如 3B、7B)。 3. 增加虚拟内存(Windows)或 Swap 空间(Linux)。 4. 重新拉取模型: ollama rm <模型名> 然后 ollama pull <模型名> 。 |
| Codex/Continue 插件连接失败,提示“无法连接到模型”或超时 | 1. Ollama 服务未启动。 2. apiBase 地址或端口错误。 3. 防火墙/安全软件阻止连接。 | 1. 在终端运行 ollama serve 查看服务状态。 2. 用浏览器或 curl 访问 http://localhost:11434 或 http://localhost:11434/v1/models 。 3. 检查配置文件中的 apiBase 是否为 http://localhost:11434/v1 。 | 1. 确保 Ollama 后台服务正在运行(Windows 检查服务,Linux 检查进程)。 2. 确认 apiBase 包含 /v1 路径 。 3. 暂时禁用防火墙或添加规则允许 11434 端口。 4. 如果使用 WSL2,确保从 Windows 的 VS Code 能访问到 WSL2 的 localhost,有时需要配置 apiBase: "http://<WSL2的IP>:11434/v1" 。 |
| 插件能连接,但提示“模型不存在”或“未找到模型” | 1. 配置文件中的 model 名称与 Ollama 中的名称不匹配。 2. 该模型未下载到本地。 | 1. 在终端运行 ollama list ,核对准确的模型名称和标签。 2. 检查 model 字段是否拼写错误(大小写、冒号、版本号)。 | 1. 将配置文件中的 model 字段修改为 ollama list 显示的确切名称。 2. 如果未下载,使用 ollama pull <准确模型名> 进行下载。 |
| 配置了多个模型,但插件中无法切换或切换无效 | 1. 插件配置未正确读取多模型列表。 2. 插件 UI 需要刷新或重新选择。 | 1. 检查 .continuerc.json 的 JSON 格式是否正确(无语法错误)。 2. 查看插件界面是否有模型选择下拉菜单。 | 1. 使用 JSON 格式化工具校验配置文件。 2. 尝试重启 VS Code。 3. 在 Continue 输入框中使用命令,如 /model deepseek-coder:6.7b 来切换(如果插件支持)。 |
| 模型响应速度非常慢 | 1. 硬件性能不足(CPU 推理)。 2. 未启用 GPU 加速。 3. 同时运行了多个耗资源的应用。 | 1. 观察任务管理器中的 CPU/GPU 和内存占用。 2. 运行 ollama run 时查看是否有 GPU 相关的日志输出。 | 1. 考虑使用参数更小的模型。 2. 确保已安装 GPU 驱动和 CUDA,Ollama 会自动尝试使用 GPU。 3. 关闭其他大型应用。 |
| 在 VS Code 中代码补全不工作 | Continue 等插件主要提供聊天/交互功能, 并非 原生的代码自动补全(IntelliSense)。 | 区分功能:你是需要 GitHub Copilot 那样的行内代码建议,还是侧边栏的聊天助手? | 1. 对于本地代码补全,可以寻找其他专门的开源补全插件(如 Tabby, 也支持连接 Ollama)。 2. Continue 插件更适合通过聊天进行代码生成和重构。 |
8. 最佳实践与进阶配置
为了让你的本地 AI 编程环境更稳定、高效,遵循以下实践会大有裨益。
8.1 模型管理策略
- 按需下载 :不要一次性拉取所有模型,根据你的主要编程语言和任务类型选择 1-2 个主力模型。例如,Python/Web 开发可选
deepseek-coder或qwen2.5-coder,通用任务可选llama3.2或mistral。 - 版本固化 :模型标签(如
:7b)可能指向最新版本。如果你追求稳定性,可以考虑使用带具体版本号的标签(如果仓库提供),避免模型更新导致行为变化。 - 定期清理 :使用
ollama list查看模型,用ollama rm <模型名>删除不再使用的模型以释放磁盘空间。
8.2 性能优化
- 优先使用 GPU :在 Windows 上,确保安装了 NVIDIA 显卡驱动。Ollama 在支持 CUDA 的环境下会自动优先使用 GPU。可以通过任务管理器查看 GPU 是否在推理时被调用。
- 量化模型 :许多模型提供了量化版本(如
q4_0,q8_0),它们在轻微损失精度的情况下大幅减少内存占用和提升速度。例如ollama run llama3.2:7b-q4_0。在模型库中寻找带有q4、q8等后缀的版本。 - 调整上下文长度 :在运行模型时,可以通过参数限制上下文长度(如
--num-ctx 4096),更短的上下文消耗更少资源。但这需要修改 Modelfile 或使用高级运行参数。
8.3 配置维护
- 备份配置文件 :将你调试成功的
.continuerc.json等配置文件备份到云端或版本控制中,方便重装系统或更换机器时快速恢复。 - 使用环境变量 :对于 API Base URL 等可能因环境(家里、公司)变化的配置,可以考虑在配置文件中使用环境变量占位符,但需要插件支持此功能。否则,维护多个配置文件副本也是一个办法。
- 日志排查 :当遇到复杂问题时,打开 Ollama 和 VS Code 插件的详细日志。Ollama 可以通过
ollama serve > ollama.log 2>&1运行并输出日志。VS Code 的输出面板(Output)中选择对应插件的日志,能提供详细的错误信息。
8.4 安全与隐私提醒
- 本地即是安全 :最大的优势是数据不出本地。但请确保你的电脑本身没有恶意软件。
- 模型来源 :从官方或可信的渠道获取模型。Ollama 官方库是相对安全的来源。
- 网络监听 :将
OLLAMA_HOST设置为0.0.0.0会使服务监听所有网络接口,在公共网络环境下可能存在风险。在安全的内网环境中可以这样做以便其他设备访问;如果仅本机使用,保持默认的127.0.0.1即可。
9. 总结:从工具使用者到环境构建者
通过本文的步骤,你应该已经成功搭建起一个由 Ollama 驱动、通过 Codex 类插件(如 Continue)接入 VS Code 的本地 AI 编程环境。这个过程的意义远不止于安装了几个软件。
它代表着你将 AI 编程的能力从“云服务调用者”转变为“本地环境构建者”。你获得了对模型、数据流和计算资源的完全控制权。你可以尝试最新的开源模型,可以在断网环境下工作,可以处理敏感代码而无需顾虑。
回顾关键点: 解决网络问题是起点,正确配置 Ollama 的环境变量和存储路径是基础,确保 Ollama 服务正常运行并通过 API 测试是关键,最后在 VS Code 插件中精确配置 apiBase 和 model 名称是完成集成的临门一脚。
接下来,你可以探索更多:
- 尝试不同的代码专用模型,比较它们在 Python、JavaScript、Go 等语言上的表现。
- 研究 Ollama 的 Modelfile,学习如何自定义和创建自己的模型变体。
- 将本地模型服务集成到其他支持 OpenAI API 的应用中,如笔记软件、自动化脚本等。
本地 AI 开发的生态正在快速成熟,虽然目前在一些易用性和性能上可能与顶级云端产品有差距,但其在隐私、成本和可控性上的优势是独一无二的。现在,你已经拥有了这片自主领地的钥匙。

967

被折叠的 条评论
为什么被折叠?



