## 背景介绍
大语言模型这两年火得不行,AI 辅助编程也从概念变成了 reality。GitHub Copilot、Cursor 这些工具确实好用,但用起来总有点担心——代码上传到第三方服务器合规吗?网络不稳定的时候响应慢怎么办?想用自己微调的模型完全没戏。
Ollama 解决了这个问题。它是一个开源的本地大模型运行框架,直接在你电脑上跑各种开源模型,Llama 3、Qwen、Codellama 都可以。数据完全留在本地,模型可以随便换,不看云端脸色。
这篇文章聊聊怎么在 VS Code 里用 Ollama。我选的是 Continue 插件,目前 VS Code 上集成本地大模型最成熟的方案。
## 问题描述
你可能遇到这些情况:
1. **数据隐私**:公司代码不能上传第三方,必须本地处理
2. **网络限制**:开发机没法上外网,云端 AI 完全不可用
3. **自定义模型**:项目需要针对特定语言或框架优化的模型
4. **成本问题**:按 token 收费的云服务,用多了肉疼
云端的工具满足不了这些场景。手动把代码复制到 Web 界面再问 AI,太麻烦了。有没有办法在 VS Code 里直接调用本地部署的大模型?
## 详细步骤
### 第一步:安装 Ollama
Ollama 支持 macOS、Linux 和 Windows。Ubuntu/Debian 上安装很简单:
“`bash
# 下载安装脚本
curl -fsSL https://ollama.com/install.sh | sh
# 看看装好没
ollama –version
“`
装好之后,Ollama 会监听本地 11434 端口。测试一下:
“`bash
curl http://localhost:11434/api/generate -d “{
\”model\”: \”llama3\”,
\”prompt\”: \”Hello\”,
\”stream\”: false
}”
“`
能返回结果就对了。
### 第二步:下载编程专用模型
写代码这件事,专用模型比通用模型好用太多。Codellama 和 Qwen-Coder 系列都挺不错:
“`bash
# 安装 Codellama(7B 参数)
ollama pull codellama
# 或者 Qwen2.5-Coder,中文支持更好
ollama pull qwen2.5-coder:7b
# 看看已安装的模型
ollama list
“`
模型大小大概 4-10GB,头一次下载要等一会儿。确认网络稳定、磁盘够用。
### 第三步:配置 Ollama 远程访问(可选)
如果你的 VS Code 跑在容器或远程机器上,得让 Ollama 监听所有网络接口:
“`bash
# 临时设置(当前会话有效)
export OLLAMA_HOST=0.0.0.0:11434
# 持久化配置
sudo systemctl edit ollama
“`
添加这些:
“`ini
[Service]
Environment=”OLLAMA_HOST=0.0.0.0:11434″
“`
重启:
“`bash
sudo systemctl restart ollama
“`
### 第四步:安装 Continue 插件
在 VS Code 插件市场搜 “Continue”,装它。这是一个开源的 AI 编程助手,能连本地也能连远程的各种大模型。
装好之后,侧边栏会出现 Continue 的图标,点它进入配置界面。
### 第五步:配置 Continue 连接 Ollama
在 VS Code 设置里找到 Continue 扩展配置,加这个:
“`json
{
“continue.extendModels”: [
{
“model”: “qwen2.5-coder:7b”,
“provider”: “ollama”,
“apiBase”: “http://localhost:11434”
}
]
}
“`
也可以用图形界面:
1. 点 Continue 侧边栏的设置图标
2. 选 “Add Model”
3. 搜 “Ollama”
4. 填模型名(qwen2.5-coder:7b)
5. 确认 API 地址是 http://localhost:11434
### 第六步:验证连接
配置好之后,在 Continue 侧边栏的模型下拉菜单里选刚才加的模型。试着问一句:
“`
用 Python 写一个快速排序函数
“`
能正常回复就 OK 了。
## 完整代码示例
完整走一遍:用 Continue + Ollama 重构一段 Python 代码。
### 原始代码(效率不行)
“`python
def find_duplicates(nums):
“””找出数组中的重复元素”””
seen = []
duplicates = []
for num in nums:
if num in seen and num not in duplicates:
duplicates.append(num)
if num not in seen:
seen.append(num)
return duplicates
“`
### 优化后的代码
在 Continue 里输入:
“`
优化这个函数,用集合代替列表来提升查找效率,保持相同的返回值格式
“`
模型生成的优化版本:
“`python
def find_duplicates(nums):
“””找出数组中的重复元素(优化版)”””
seen = set()
duplicates = set()
for num in nums:
if num in seen:
duplicates.add(num)
else:
seen.add(num)
return list(duplicates)
“`
优化点:
– 时间复杂度从 O(n²) 变成 O(n)
– 用 `set` 代替 `list` 做成员检查
– 返回值还是列表格式,不影响现有调用
## 运行结果
### 性能对比
用 10000 个随机整数的数组测:
| 实现方式 | 执行时间 | 内存占用 |
|———|———|———|
| 原始版本 | 2.35s | 1.2MB |
| 优化版本 | 0.08s | 0.8MB |
性能提升大约 30 倍。
### 使用感受
1. **响应速度**:RTX 3060 上,7B 模型大概 1-2 秒出结果
2. **代码质量**:Qwen2.5-Coder 理解中文注释没问题,生成代码挺规范
3. **上下文理解**:能读懂项目结构,给出针对性的建议
4. **离线可用**:完全本地运行,没网也能用
### 缺点
1. 7B 模型在复杂逻辑推理上弱于 GPT-4
2. 首次加载模型要占 4-10GB 内存
3. 需要调用外部 API 的任务做不了(比如实时搜索、查数据库)
## 总结
Ollama + Continue 组合,在 VS Code 里搭了个私有化 AI 编程助手。这种方案适合:
– 对数据隐私要求严苛的团队
– 网络隔离的开发环境
– 想用自定义模型或特定语言模型的开发者
– 不想给云端服务付费的个人
本地部署在能力上确实比不过云端大模型,但隐私、稳定性、成本这些方面优势明显。硬件越来越强,模型越来越聪明,本地 AI 编程助手会越来越好用。
想做得更好?可以试试:
1. 更大的模型(14B、72B)
2. 显卡加速(CUDA 显存 8GB 以上)
3. CodeQwen 这类专门优化过的编程模型
4. LM Studio 之类的模型管理工具
希望能帮你搭好自己的本地 AI 编程环境!