在 VS Code 中集成 Ollama 本地大模型:打造私有化 AI 编程助手

## 背景介绍

大语言模型这两年火得不行,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 编程环境!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇