文章目录
- Cline 是一个 VS Code 插件,它把 AI 大模型"装进"你的编辑器。 你可以把它理解成: 像 GitHub Copilot 一样做代码补全 像 Cursor 一样深度理解项目上下文 像 ChatGPT 一样对话式编程 核心能力: 功能 说明 代码补全 实时预测你下一行要写什么(比 Copilot 更懂你) 选中即对话 选中一段代码,直接问"这段代码干嘛的" 自动重构 “帮我把这个函数拆成三个小函数”——AI 直接改你的文件 生成单测 选中一个函数,“帮我写单元测试”——自动生成测试文件 项目级理解 自动读取项目结构,AI 知道你整个项目在干嘛
- 对比项 Cline(本教程方案) Cursor(商业版) GitHub Copilot 费用 🟢 完全免费 🔴 $20/月 🟡 $10/月 模型选择 🟢 任意 OpenAI 格式模型 🟡 只能用 Cursor 提供的 🟡 只能用 Copilot 的 隐私 🟢 可完全本地运行 🔴 代码上传云端 🔴 代码上传云端 项目理解 🟢 自动读取全项目 🟢 自动读取全项目 🟡 只理解当前文件 代码修改 🟢 直接改文件 🟢 直接改文件 🟡 只给建议 结论: Cline = Cursor 的能力 + 免费 + 隐私安全。
- ┌─────────────────────────────────────────────────┐ │ 你的 VS Code │ │ ┌──────────┐ │ │ │ Cline 插件 │ │ │ │ – 读取项目文件 │ │ │ │ – 调用 AI 模型 │ │ │ │ – 把 AI 的回答写回文件 │ │ │ └──────────┘ │ │ ↓ │ │ ┌─────────────────────────────┐ │ │ │ 模型后端(三选一) │ │ │ │ ① DeepSeek API(推荐) │ │ │ │ ② Ollama 本地模型(隐私优先)│ │ │ │ ③ OpenAI API(有钱可选) │ │ │ └─────────────────────────────┘ │ └─────────────────────────────────────────────────┘
- 已经有 VS Code 的可以跳过。 下载地址:https://code.visualstudio.com/ 安装完成后,打开 VS Code,确认可以正常运行。
- 打开 VS Code 点击左侧扩展图标(或按 Ctrl+Shift+X) 搜索 Cline 找到 Cline (作者:Cline Team),点击「安装」 安装完成后,左侧会出现一个 Cline 图标(紫色小机器人)。
- # 创建工作目录 mkdir -p ai-coding-workspace cd ai-coding-workspace # 创建测试项目 mkdir -p hello-project/src mkdir -p hello-project/test # 创建一个示例文件 touch hello-project/src/main.py touch hello-project/test/test_main.py touch hello-project/README.md 用 VS Code 打开 ai-coding-workspace 文件夹。
- Cline 支持三种模型后端,你需要选一个: 方案 优点 缺点 推荐人群 ① DeepSeek API 便宜(约 Cursor 1/50)、模型能力强 需要联网 大多数人 ② Ollama 本地模型 完全离线、隐私最好 需要好显卡、速度慢一点 隐私敏感者 ③ OpenAI API 模型能力最强 贵 不差钱的人 💡 推荐:大多数人选 方案①(DeepSeek API),性价比最高。如果你 code 涉及商业机密,选 方案②(Ollama 本地)。
- 打开 https://platform.deepseek.com/ 注册 / 登录 点击「API Keys」→「Create new API key」 复制生成的 Key(格式类似 sk-xxxxxxxxxxxx) 💡 费用说明:DeepSeek-V3 输入 $0.14 / 1M tokens,输出 $0.28 / 1M tokens。正常编程使用,一个月大概 ¥5-20,比 Cursor 便宜太多。
- 点击 VS Code 左侧的 Cline 图标 在弹出的侧边栏中,找到「Select AI Model」下拉框 选择 「DeepSeek」 在「API Key」输入框中,粘贴你的 DeepSeek API Key 模型选择:**deepseek-chat(日常编程)或 deepseek-coder(专攻代码) 配置完成后,底部状态栏会显示 「Cline: Ready」。
- 在 Cline 侧边栏的输入框中,输入: 你好,介绍一下你自己,以及你擅长什么? AI 会回复类似: 你好!我是 DeepSeek,一个擅长编程的 AI 助手。我可以帮你写代码、解释代码、重构代码、生成单元测试…… 再测试代码能力,输入: 用 Python 写一个快速排序,要求: 1. 使用一行代码完成分区 2. 添加详细注释 3. 包含单元测试 如果你看到了代码输出,说明配置成功!✅
- 如果你之前看过我的《Ollama 本地大模型教程》,这步已经完成了。 否则,快速安装: Windows:打开 https://ollama.com/download,下载安装包,一路下一步。 验证安装: ollama –version
- Cline 对代码理解最好的本地模型是 DeepSeek-Coder: # 推荐:DeepSeek-Coder 1.3B(轻量,4GB 内存可跑) ollama pull deepseek-coder:1.3b # 或者:DeepSeek-Coder 6.7B(更强,需要 8GB 内存) ollama pull deepseek-coder:6.7b # 或者:Qwen2.5-Coder 7B(阿里出品,也很强) ollama pull qwen2.5-coder:7b
- 点击 VS Code 左侧的 Cline 图标 「Select AI Model」→ 选择 「Ollama」 「Ollama Model」→ 选择你刚下载的模型(如 deepseek-coder:1.3b) 确保 Ollama 服务在运行(终端执行 ollama serve) 配置完成后,状态栏显示 「Cline: Ready (Ollama)」。
- 在 ai-coding-workspace/hello-project/src/main.py 中,放入一段"待重构"的代码: # src/main.py import os import json def read_config(path): f = open(path, ‘r’) data = json.load(f) f.close() return data def write_config(path, data): f = open(path, ‘w’) json.dump(data, f) f.close() def get_value(config, key): if key in config: return config[key] return None def set_value(config, key, value): config[key] = value return config def print_config(config): for k in config: print(f”{k} = {config[k]}”) # 主函数 def main(): config = read_config(‘config.json’) print_config(config) set_value(config, ‘version’, 2) write_config(‘config.json’, config) if __name__ == ‘__main__’: main()
- 在 VS Code 中,用鼠标选中 read_config 函数 按 Ctrl+Shift+P(打开命令面板) 输入 Cline: Explain Selected Code,回车 AI 会回答: read_config 函数的作用是: 打开指定路径的 JSON 文件 读取并解析 JSON 内容 返回解析后的字典对象 ⚠️ 问题:这个函数没有错误处理,如果文件不存在会崩溃。
- 继续选中 read_config 和 write_config 两个函数,在 Cline 侧边栏输入: 帮我重构这两个函数: 1. 添加错误处理(文件不存在、JSON 格式错误) 2. 使用 with 语句自动关闭文件 3. 添加类型注解 Cline 会做什么: 分析你的代码 生成重构后的版本 直接在你的文件中替换旧代码 重构后的代码: def read_config(path: str) -> dict: “””读取配置文件,返回字典对象””” try: with open(path, ‘r’, encoding=’utf-8′) as f: return json.load(f) except FileNotFoundError: print(f”错误:配置文件 {path} 不存在”) return {} except json.JSONDecodeError: print(f”错误:配置文件 {path} 格式不正确”) return {} def write_config(path: str, data: dict) -> None: “””将字典对象写入配置文件””” try: with open(path, ‘w’, encoding=’utf-8′) as f: json.dump(data, f, ensure_ascii=False, indent=2) except IOError as e: print(f”错误:无法写入配置文件:{e}”) 🎉 这就是 Cline 比 Copilot 强的地方——Copilot 只给建议,Cline 直接改你的文件。
- 选中 read_config 函数,在 Cline 中输入: 为这个函数生成完整的单元测试,使用 pytest 框架。 要求覆盖: 1. 正常读取场景 2. 文件不存在场景 3. JSON 格式错误场景 Cline 会自动在 test/ 目录下创建 test_main.py: # test/test_main.py import pytest import json import tempfile import os from src.main import read_config def test_read_config_normal(): “””测试正常读取配置文件””” with tempfile.NamedTemporaryFile(mode=’w’, delete=False, suffix=’.json’) as f: json.dump({“name”: “test”, “version”: 1}, f) temp_path = f.name result = read_config(temp_path) assert result == {“name”: “test”, “version”: 1} os.unlink(temp_path) def test_read_config_not_found(): “””测试文件不存在场景””” result = read_config(‘non_existent.json’) assert result == {} def test_read_config_invalid_json(): “””测试 JSON 格式错误场景””” with tempfile.NamedTemporaryFile(mode=’w’, delete=False, suffix=’.json’) as f: f.write(‘{invalid json}’) temp_path = f.name result = read_config(temp_path) assert result == {} os.unlink(temp_path)
- 在 main.py 中,找到一个函数还没写完的地方,比如: def calculate_total(items): # 在这里停留 2 秒,Cline 会自动提示 Cline 会弹出补全建议(灰色半透明文字): total = sum(item[‘price’] * item[‘quantity’] for item in items) return round(total, 2) 按 Tab 接受补全。 💡 补全触发时机: 输入 def 后等待 1 秒 输入 # 注释后等待 1 秒 输入函数调用的一半后等待 1 秒
- 在 Cline 侧边栏中输入(不需要选中任何代码): 我的项目是做什么的?有哪些函数?它们之间的关系是什么? Cline 会做什么: 自动读取项目中的所有文件(main.py、test_main.py、README.md) 分析项目结构 生成项目说明 AI 的回答: 你的项目是一个配置文件管理工具。 核心函数: read_config:读取配置文件 write_config:写入配置文件 get_value:获取配置项 set_value:设置配置项 print_config:打印配置 函数调用关系:main() → read_config() → print_config() → set_value() → write_config() 建议改进: 添加日志模块 使用 argparse 支持命令行参数 添加配置校验逻辑
- Cline 允许你设置"系统提示词"——告诉 AI 你的编码风格和偏好。 在 Cline 侧边栏底部,点击「Settings」→「System Prompt」,填入: 你是一个 Python 高级开发工程师,帮我写代码时遵循以下规则: 1. 使用 Python 3.10+ 语法(类型注解、match-case、海象运算符) 2. 严格遵循 PEP 8 规范 3. 所有函数必须有 docstring(Google 风格) 4. 变量名使用 snake_case,类名使用 PascalCase 5. 优先使用标准库,避免过度依赖第三方包 6. 错误处理使用具体的异常类型,不要用 bare except 保存后,Cline 的所有回答都会遵循这些规则。
- Cline 支持同时配置多个模型,你可以: 写代码时用 DeepSeek-Coder(专攻代码) 解释代码时用 Qwen2.5(中文能力强) 重构代码时用 DeepSeek-V3(推理能力强) 切换模型:点击 Cline 侧边栏顶部的模型名称,选择你想用的。 高级玩法: 让两个模型"互审代码"—— # 第一步:用 DeepSeek-Coder 写代码 (选中代码,让 AI 生成) # 第二步:切换到 Qwen2.5,输入: 请审查这段代码的: 1. 逻辑错误 2. 边界条件处理 3. 性能问题 4. 代码风格问题
- 在 VS Code 的 keybindings.json 中添加: // 打开方式:Ctrl+Shift+P → “Preferences: Open Keyboard Shortcuts (JSON)” [ { “key”: “Ctrl+Shift+L”, “command”: “cline.openSidebar” }, { “key”: “Ctrl+Shift+E”, “command”: “cline.explainCode” }, { “key”: “Ctrl+Shift+R”, “command”: “cline.refactorCode” }, { “key”: “Ctrl+Shift+T”, “command”: “cline.generateTests” } ] 现在你可以: Ctrl+Shift+L:打开 Cline 侧边栏 Ctrl+Shift+E:解释选中代码 Ctrl+Shift+R:重构选中代码 Ctrl+Shift+T:为选中函数生成单测
- 如果你的项目需要在 Docker 容器中运行,Cline 也支持! 场景: 你的项目依赖特定的 Python 版本或系统库,本地环境不满足。 解决方案: 让 Cline 在 Docker 容器中执行代码。 在 Cline 设置中,启用「Execute in Docker」: # 项目根目录创建 Dockerfile FROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD [“python”, “src/main.py”] 在 Cline 中输入: 在 Docker 容器中运行我的项目,并告诉我输出结果。 Cline 会自动: 构建 Docker 镜像 启动容器 运行你的代码 把输出返回给你
- 在 ai-coding-workspace 下创建 flask-demo/ 项目: mkdir -p flask-demo/{src,test,templates,static} touch flask-demo/src/app.py touch flask-demo/requirements.txt 在 requirements.txt 中写入: Flask>=3.0 pytest>=8.0
- 在 Cline 侧边栏中输入: 创建一个 Flask 应用,包含以下功能: 1. GET /api/items – 返回所有物品列表(从内存数据库) 2. POST /api/items – 创建新物品 3. GET /api/items/<id> – 获取单个物品 4. PUT /api/items/<id> – 更新物品 5. DELETE /api/items/<id> – 删除物品 要求: – 使用 Flask 的 jsonify – 添加详细的注释 – 包含错误处理 Cline 会生成: src/app.py from flask import Flask, jsonify, request app = Flask(__name__) # 内存数据库(模拟) items = [ {“id”: 1, “name”: “笔记本电脑”, “price”: 5999}, {“id”: 2, “name”: “耳机”, “price”: 299}, ] @app.route(‘/api/items’, methods=[‘GET’]) def get_items(): “””获取所有物品””” return jsonify({“items”: items}) @app.route(‘/api/items’, methods=[‘POST’]) def create_item(): “””创建新物品””” data = request.get_json() if not data or ‘name’ not in data: return jsonify({“error”: “Missing ‘name’ field”}), 400 new_item = { “id”: items[-1][‘id’] + 1 if items else 1, “name”: data[‘name’], “price”: data.get(‘price’, 0) } items.append(new_item) return jsonify(new_item), 201 # …(其他路由省略,Cline 会帮你生成完整版) if __name__ == ‘__main__’: app.run(debug=True)
- 选中整个 app.py,输入: 为这个 Flask 应用生成完整的单元测试,使用 pytest + Flask 的 test client。 Cline 会在 test/test_app.py 中生成: import pytest from src.app import app @pytest.fixture def client(): app.config[‘TESTING’] = True with app.test_client() as client: yield client def test_get_items(client): “””测试 GET /api/items””” response = client.get(‘/api/items’) assert response.status_code == 200 data = response.get_json() assert ‘items’ in data assert len(data[‘items’]) == 2 # …(更多测试用例)
- 运行测试: cd flask-demo pytest test/test_app.py -v 如果测试失败,直接把错误信息复制粘贴到 Cline 中: 运行测试时报错: ============================= test session starts ============================== collected 5 items test/test_app.py F..F. [100%] ================================ FAILURES ================================= __________________________ test_create_item ___________________________ def test_create_item(client): response = client.post(‘/api/items’, json={‘name’: ‘Test Item’}) > assert response.status_code == 201 E assert 400 == 201 E + where 400 = <Response 82 bytes [400 BAD REQUEST]>.status_code test/test_app.py:15: AssertionError Cline 会自动分析错误,并给出修复方案: 错误原因:你的测试发送了 json= 参数,但 Flask 默认不支持。 修复方法:在 app.py 顶部添加: from flask import request 并确保 request.get_json() 被正确调用。
- A: 按 Ctrl+Shift+P,输入 Cline: Focus on Sidebar。 如果还不行,尝试: 重启 VS Code 重新安装 Cline 插件 检查 VS Code 版本是否 ≥ 1.85.0
- A: 三个可能原因: API Key 填错了 → 重新粘贴 Key(注意前后不要有空格) 账户余额不足 → 登录 platform.deepseek.com 查看余额 模型名称填错了 → 应该是 deepseek-chat 或 deepseek-coder
- A: 正常现象,本地模型比云端 API 慢 5-10 倍。 加速方案: 换更小的模型(deepseek-coder:1.3b 比 6.7b 快 3 倍) 开启 GPU 加速(需要 NVIDIA 显卡 + 安装 CUDA) 升级内存(32GB 比 16GB 快很多)
- A: VS Code 内置了 Git 版本控制。 每次 Cline 修改文件前,先按 Ctrl+Shift+G 打开源代码管理,点击「+」暂存更改。 如果 AI 改错了,右键文件 →「撤消上次提交」。 最佳实践: 每次让 Cline 大改之前,先 git commit 一次。
- A: 在项目根目录创建一个 CLINE.md 文件(类似 README.md),写入: # 项目说明 ## 项目简介 这是一个 Flask 后端 API 项目,提供物品管理功能。 ## 目录结构 – `src/`:源代码 – `test/`:单元测试 – `templates/`:Jinja2 模板 – `static/`:静态文件 ## 编码规范 – 使用 Python 3.12+ 语法 – 所有 API 返回 JSON 格式 – 错误处理使用 HTTP 状态码 ## 常用命令 – 运行项目:`python src/app.py` – 运行测试:`pytest test/ -v` – 代码检查:`flake8 src/` Cline 每次对话时,会自动读取 CLINE.md,从而"理解"你的项目。
目录
- 前言:为什么你需要一个 AI 编程助手?
- 一、先搞懂:Cline 到底是什么?
- 1.1 不用术语,用大白话
- 1.2 Cline vs Cursor vs Copilot
- 1.3 整体架构
- 第一阶段:环境准备(15 分钟)
- 第 1 步:安装 VS Code
- 第 2 步:安装 Cline 插件
- 第 3 步:目录结构
- 第 4 步:配置方案选择
- 第二阶段:配置 DeepSeek API(最快方案,10 分钟)
- 第 5 步:获取 DeepSeek API Key
- 第 6 步:在 Cline 中配置 DeepSeek
- 第 7 步:测试对话
- 第三阶段:配置 Ollama 本地模型(隐私方案,20 分钟)
- 第 8 步:安装 Ollama
- 第 9 步:下载代码专用模型
- 第 10 步:在 Cline 中配置 Ollama
- 第四阶段:核心功能实战(40 分钟)
- 第 11 步:创建一个测试项目
- 第 12 步:功能一——解释代码(选中即问)
- 第 13 步:功能二——重构代码(让 AI 直接改文件)
- 第 14 步:功能三——生成单元测试
- 第 15 步:功能四——代码补全(实时预测)
- 第 16 步:功能五——项目级理解(最强大)
- 第五阶段:进阶技巧(25 分钟)
- 第 17 步:自定义系统提示词
- 第 18 步:接入多个模型(让 AI 互相评审代码)
- 第 19 步:快捷键配置(效率翻倍)
- 第 20 步:结合 Docker 容器开发(真实项目必备)
- 第六阶段:真实项目演练(30 分钟)
- 第 21 步:创建一个 Flask Web 项目
- 第 22 步:让 Cline 帮你写 Flask 应用
- 第 23 步:让 Cline 生成单元测试
- 第 24 步:让 Cline 帮你调试
- 第七阶段:常见问题与排错(15 分钟)
- Q1:Cline 侧边栏打不开怎么办?
- Q2:DeepSeek API 调用失败(401 Unauthorized)?
- Q3:Ollama 本地模型运行很慢?**
- Q4:Cline 改错了我的代码怎么办?**
- Q5:如何让 Cline 理解我的项目结构?**
- 完整工具链总结
- 总结:你学到了什么?
- 下一步探索

手把手教你,零成本把 AI 编程助手装进 VS Code,DeepSeek-V3 满血版本地运行,代码补全/重构/调试/单测一键搞定
预计完成时间: 2-3 小时
所需技能: 会用 VS Code、基础命令行
适合人群: 想提升编码效率但不想花 Cursor 订阅费的同学
写过代码的人都有过这种体验:
- 一个函数写了半天,结果发现标准库早就有现成的
- 改一个 Bug 花了两小时,最后发现是少了个分号
- 写单元测试写到头秃,全是重复劳动
- 读别人的代码像读天书,注释比代码还难懂
Cursor 解决了这些问题——它把 AI 深度融合进编辑器,代码补全、重构、解释、生成单测,全部在编辑器里完成。
但问题是:Cursor 订阅费每月 20 美刀,而且代码要上传到第三方服务器。
那怎么办?
答案就是今天要讲的 Cline + DeepSeek 本地方案:
- 💰 完全免费:DeepSeek-V3 API 调用成本极低(约 Cursor 的 1/50)
- 🔒 代码不出本地:用 Ollama 本地运行模型,代码永远不会离开你的机器
- ⚡ 能力不打折:代码补全、重构、解释、生成单测,全部支持
- 🔧 深度集成 VS Code:和 Cursor 体验几乎一模一样
一句话:Cline 就是开源版 Cursor,DeepSeek 就是免费版 GPT-4o。
Cline 是一个 VS Code 插件,它把 AI 大模型"装进"你的编辑器。
你可以把它理解成:
- 像 GitHub Copilot 一样做代码补全
- 像 Cursor 一样深度理解项目上下文
- 像 ChatGPT 一样对话式编程
核心能力:
| 功能 | 说明 |
|---|---|
| 代码补全 | 实时预测你下一行要写什么(比 Copilot 更懂你) |
| 选中即对话 | 选中一段代码,直接问"这段代码干嘛的" |
| 自动重构 | “帮我把这个函数拆成三个小函数”——AI 直接改你的文件 |
| 生成单测 | 选中一个函数,“帮我写单元测试”——自动生成测试文件 |
| 项目级理解 | 自动读取项目结构,AI 知道你整个项目在干嘛 |
| 对比项 | Cline(本教程方案) | Cursor(商业版) | GitHub Copilot |
|---|---|---|---|
| 费用 | 🟢 完全免费 | 🔴 $20/月 | 🟡 $10/月 |
| 模型选择 | 🟢 任意 OpenAI 格式模型 | 🟡 只能用 Cursor 提供的 | 🟡 只能用 Copilot 的 |
| 隐私 | 🟢 可完全本地运行 | 🔴 代码上传云端 | 🔴 代码上传云端 |
| 项目理解 | 🟢 自动读取全项目 | 🟢 自动读取全项目 | 🟡 只理解当前文件 |
| 代码修改 | 🟢 直接改文件 | 🟢 直接改文件 | 🟡 只给建议 |
结论: Cline = Cursor 的能力 + 免费 + 隐私安全。
┌─────────────────────────────────────────────────┐
│ 你的 VS Code │
│ ┌──────────┐ │
│ │ Cline 插件 │ │
│ │ - 读取项目文件 │ │
│ │ - 调用 AI 模型 │ │
│ │ - 把 AI 的回答写回文件 │ │
│ └──────────┘ │
│ ↓ │
│ ┌─────────────────────────────┐ │
│ │ 模型后端(三选一) │ │
│ │ ① DeepSeek API(推荐) │ │
│ │ ② Ollama 本地模型(隐私优先)│ │
│ │ ③ OpenAI API(有钱可选) │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────────────────┘
已经有 VS Code 的可以跳过。
下载地址:https://code.visualstudio.com/
安装完成后,打开 VS Code,确认可以正常运行。
- 打开 VS Code
- 点击左侧扩展图标(或按
Ctrl+Shift+X)
- 搜索
Cline
- 找到 Cline (作者:Cline Team),点击「安装」
Ctrl+Shift+X)Cline安装完成后,左侧会出现一个 Cline 图标(紫色小机器人)。
# 创建工作目录
mkdir -p ai-coding-workspace
cd ai-coding-workspace
# 创建测试项目
mkdir -p hello-project/src
mkdir -p hello-project/test
# 创建一个示例文件
touch hello-project/src/main.py
touch hello-project/test/test_main.py
touch hello-project/README.md
用 VS Code 打开 ai-coding-workspace 文件夹。
Cline 支持三种模型后端,你需要选一个:
| 方案 | 优点 | 缺点 | 推荐人群 |
|---|---|---|---|
| ① DeepSeek API | 便宜(约 Cursor 1/50)、模型能力强 | 需要联网 | 大多数人 |
| ② Ollama 本地模型 | 完全离线、隐私最好 | 需要好显卡、速度慢一点 | 隐私敏感者 |
| ③ OpenAI API | 模型能力最强 | 贵 | 不差钱的人 |
💡 推荐:大多数人选 方案①(DeepSeek API),性价比最高。
如果你 code 涉及商业机密,选 方案②(Ollama 本地)。
- 打开 https://platform.deepseek.com/
- 注册 / 登录
- 点击「API Keys」→「Create new API key」
- 复制生成的 Key(格式类似
sk-xxxxxxxxxxxx)
💡 费用说明:DeepSeek-V3 输入 $0.14 / 1M tokens,输出 $0.28 / 1M tokens。
正常编程使用,一个月大概 ¥5-20,比 Cursor 便宜太多。
sk-xxxxxxxxxxxx)💡 费用说明:DeepSeek-V3 输入 $0.14 / 1M tokens,输出 $0.28 / 1M tokens。
正常编程使用,一个月大概 ¥5-20,比 Cursor 便宜太多。
- 点击 VS Code 左侧的 Cline 图标
- 在弹出的侧边栏中,找到「Select AI Model」下拉框
- 选择 「DeepSeek」
- 在「API Key」输入框中,粘贴你的 DeepSeek API Key
- 模型选择:**
deepseek-chat(日常编程)或 deepseek-coder(专攻代码)
deepseek-chat(日常编程)或 deepseek-coder(专攻代码)配置完成后,底部状态栏会显示 「Cline: Ready」。
在 Cline 侧边栏的输入框中,输入:
你好,介绍一下你自己,以及你擅长什么?
AI 会回复类似:
你好!我是 DeepSeek,一个擅长编程的 AI 助手。我可以帮你写代码、解释代码、重构代码、生成单元测试……
再测试代码能力,输入:
用 Python 写一个快速排序,要求: 1. 使用一行代码完成分区 2. 添加详细注释 3. 包含单元测试
如果你看到了代码输出,说明配置成功!✅
如果你选了「方案① DeepSeek API」,可以跳过这一阶段的第 8-10 步,直接看第四阶段。
如果你选了「方案① DeepSeek API」,可以跳过这一阶段的第 8-10 步,直接看第四阶段。
如果你之前看过我的《Ollama 本地大模型教程》,这步已经完成了。
否则,快速安装:
Windows:
打开 https://ollama.com/download,下载安装包,一路下一步。
验证安装:
ollama --version
Cline 对代码理解最好的本地模型是 DeepSeek-Coder:
# 推荐:DeepSeek-Coder 1.3B(轻量,4GB 内存可跑) ollama pull deepseek-coder:1.3b # 或者:DeepSeek-Coder 6.7B(更强,需要 8GB 内存) ollama pull deepseek-coder:6.7b # 或者:Qwen2.5-Coder 7B(阿里出品,也很强) ollama pull qwen2.5-coder:7b
- 点击 VS Code 左侧的 Cline 图标
- 「Select AI Model」→ 选择 「Ollama」
- 「Ollama Model」→ 选择你刚下载的模型(如
deepseek-coder:1.3b)
- 确保 Ollama 服务在运行(终端执行
ollama serve)
deepseek-coder:1.3b)ollama serve)配置完成后,状态栏显示 「Cline: Ready (Ollama)」。
下面我们用一个真实项目,带你把 Cline 的核心功能全部过一遍。
在 ai-coding-workspace/hello-project/src/main.py 中,放入一段"待重构"的代码:
# src/main.py
import os
import json
def read_config(path):
f = open(path, 'r')
data = json.load(f)
f.close()
return data
def write_config(path, data):
f = open(path, 'w')
json.dump(data, f)
f.close()
def get_value(config, key):
if key in config:
return config[key]
return None
def set_value(config, key, value):
config[key] = value
return config
def print_config(config):
for k in config:
print(f"{k} = {config[k]}")
# 主函数
def main():
config = read_config('config.json')
print_config(config)
set_value(config, 'version', 2)
write_config('config.json', config)
if __name__ == '__main__':
main()
- 在 VS Code 中,用鼠标选中
read_config 函数
- 按
Ctrl+Shift+P(打开命令面板)
- 输入
Cline: Explain Selected Code,回车
read_config 函数Ctrl+Shift+P(打开命令面板)Cline: Explain Selected Code,回车AI 会回答:
read_config函数的作用是:
- 打开指定路径的 JSON 文件
- 读取并解析 JSON 内容
- 返回解析后的字典对象
⚠️ 问题:这个函数没有错误处理,如果文件不存在会崩溃。
继续选中 read_config 和 write_config 两个函数,在 Cline 侧边栏输入:
帮我重构这两个函数: 1. 添加错误处理(文件不存在、JSON 格式错误) 2. 使用 with 语句自动关闭文件 3. 添加类型注解
Cline 会做什么:
- 分析你的代码
- 生成重构后的版本
- 直接在你的文件中替换旧代码
重构后的代码:
def read_config(path: str) -> dict:
"""读取配置文件,返回字典对象"""
try:
with open(path, 'r', encoding='utf-8') as f:
return json.load(f)
except FileNotFoundError:
print(f"错误:配置文件 {path} 不存在")
return {}
except json.JSONDecodeError:
print(f"错误:配置文件 {path} 格式不正确")
return {}
def write_config(path: str, data: dict) -> None:
"""将字典对象写入配置文件"""
try:
with open(path, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
except IOError as e:
print(f"错误:无法写入配置文件:{e}")
🎉 这就是 Cline 比 Copilot 强的地方——Copilot 只给建议,Cline 直接改你的文件。
选中 read_config 函数,在 Cline 中输入:
为这个函数生成完整的单元测试,使用 pytest 框架。 要求覆盖: 1. 正常读取场景 2. 文件不存在场景 3. JSON 格式错误场景
Cline 会自动在 test/ 目录下创建 test_main.py:
# test/test_main.py
import pytest
import json
import tempfile
import os
from src.main import read_config
def test_read_config_normal():
"""测试正常读取配置文件"""
with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.json') as f:
json.dump({"name": "test", "version": 1}, f)
temp_path = f.name
result = read_config(temp_path)
assert result == {"name": "test", "version": 1}
os.unlink(temp_path)
def test_read_config_not_found():
"""测试文件不存在场景"""
result = read_config('non_existent.json')
assert result == {}
def test_read_config_invalid_json():
"""测试 JSON 格式错误场景"""
with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.json') as f:
f.write('{invalid json}')
temp_path = f.name
result = read_config(temp_path)
assert result == {}
os.unlink(temp_path)
在 main.py 中,找到一个函数还没写完的地方,比如:
def calculate_total(items):
# 在这里停留 2 秒,Cline 会自动提示
Cline 会弹出补全建议(灰色半透明文字):
total = sum(item['price'] * item['quantity'] for item in items)
return round(total, 2)
按 Tab 接受补全。
💡 补全触发时机:
- 输入
def后等待 1 秒- 输入
#注释后等待 1 秒- 输入函数调用的一半后等待 1 秒
在 Cline 侧边栏中输入(不需要选中任何代码):
我的项目是做什么的?有哪些函数?它们之间的关系是什么?
Cline 会做什么:
- 自动读取项目中的所有文件(
main.py、test_main.py、README.md) - 分析项目结构
- 生成项目说明
AI 的回答:
你的项目是一个配置文件管理工具。
核心函数:
read_config:读取配置文件write_config:写入配置文件get_value:获取配置项set_value:设置配置项print_config:打印配置函数调用关系:
main()→read_config()→print_config()→set_value()→write_config()建议改进:
- 添加日志模块
- 使用
argparse支持命令行参数- 添加配置校验逻辑
Cline 允许你设置"系统提示词"——告诉 AI 你的编码风格和偏好。
在 Cline 侧边栏底部,点击「Settings」→「System Prompt」,填入:
你是一个 Python 高级开发工程师,帮我写代码时遵循以下规则: 1. 使用 Python 3.10+ 语法(类型注解、match-case、海象运算符) 2. 严格遵循 PEP 8 规范 3. 所有函数必须有 docstring(Google 风格) 4. 变量名使用 snake_case,类名使用 PascalCase 5. 优先使用标准库,避免过度依赖第三方包 6. 错误处理使用具体的异常类型,不要用 bare except
保存后,Cline 的所有回答都会遵循这些规则。
Cline 支持同时配置多个模型,你可以:
- 写代码时用
DeepSeek-Coder(专攻代码) - 解释代码时用
Qwen2.5(中文能力强) - 重构代码时用
DeepSeek-V3(推理能力强)
切换模型:点击 Cline 侧边栏顶部的模型名称,选择你想用的。
高级玩法: 让两个模型"互审代码"——
# 第一步:用 DeepSeek-Coder 写代码 (选中代码,让 AI 生成) # 第二步:切换到 Qwen2.5,输入: 请审查这段代码的: 1. 逻辑错误 2. 边界条件处理 3. 性能问题 4. 代码风格问题
在 VS Code 的 keybindings.json 中添加:
// 打开方式:Ctrl+Shift+P → "Preferences: Open Keyboard Shortcuts (JSON)"
[
{
"key": "Ctrl+Shift+L",
"command": "cline.openSidebar"
},
{
"key": "Ctrl+Shift+E",
"command": "cline.explainCode"
},
{
"key": "Ctrl+Shift+R",
"command": "cline.refactorCode"
},
{
"key": "Ctrl+Shift+T",
"command": "cline.generateTests"
}
]
现在你可以:
Ctrl+Shift+L:打开 Cline 侧边栏Ctrl+Shift+E:解释选中代码Ctrl+Shift+R:重构选中代码Ctrl+Shift+T:为选中函数生成单测
如果你的项目需要在 Docker 容器中运行,Cline 也支持!
场景: 你的项目依赖特定的 Python 版本或系统库,本地环境不满足。
解决方案: 让 Cline 在 Docker 容器中执行代码。
在 Cline 设置中,启用「Execute in Docker」:
# 项目根目录创建 Dockerfile FROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python", "src/main.py"]
在 Cline 中输入:
在 Docker 容器中运行我的项目,并告诉我输出结果。
Cline 会自动:
- 构建 Docker 镜像
- 启动容器
- 运行你的代码
- 把输出返回给你
在 ai-coding-workspace 下创建 flask-demo/ 项目:
mkdir -p flask-demo/{src,test,templates,static}
touch flask-demo/src/app.py
touch flask-demo/requirements.txt
在 requirements.txt 中写入:
Flask>=3.0 pytest>=8.0
在 Cline 侧边栏中输入:
创建一个 Flask 应用,包含以下功能: 1. GET /api/items - 返回所有物品列表(从内存数据库) 2. POST /api/items - 创建新物品 3. GET /api/items/<id> - 获取单个物品 4. PUT /api/items/<id> - 更新物品 5. DELETE /api/items/<id> - 删除物品 要求: - 使用 Flask 的 jsonify - 添加详细的注释 - 包含错误处理
Cline 会生成: src/app.py
from flask import Flask, jsonify, request
app = Flask(__name__)
# 内存数据库(模拟)
items = [
{"id": 1, "name": "笔记本电脑", "price": 5999},
{"id": 2, "name": "耳机", "price": 299},
]
@app.route('/api/items', methods=['GET'])
def get_items():
"""获取所有物品"""
return jsonify({"items": items})
@app.route('/api/items', methods=['POST'])
def create_item():
"""创建新物品"""
data = request.get_json()
if not data or 'name' not in data:
return jsonify({"error": "Missing 'name' field"}), 400
new_item = {
"id": items[-1]['id'] + 1 if items else 1,
"name": data['name'],
"price": data.get('price', 0)
}
items.append(new_item)
return jsonify(new_item), 201
# ...(其他路由省略,Cline 会帮你生成完整版)
if __name__ == '__main__':
app.run(debug=True)
选中整个 app.py,输入:
为这个 Flask 应用生成完整的单元测试,使用 pytest + Flask 的 test client。
Cline 会在 test/test_app.py 中生成:
import pytest
from src.app import app
@pytest.fixture
def client():
app.config['TESTING'] = True
with app.test_client() as client:
yield client
def test_get_items(client):
"""测试 GET /api/items"""
response = client.get('/api/items')
assert response.status_code == 200
data = response.get_json()
assert 'items' in data
assert len(data['items']) == 2
# ...(更多测试用例)
运行测试:
cd flask-demo pytest test/test_app.py -v
如果测试失败,直接把错误信息复制粘贴到 Cline 中:
运行测试时报错:
============================= test session starts ==============================
collected 5 items
test/test_app.py F..F. [100%]
================================ FAILURES =================================
__________________________ test_create_item ___________________________
def test_create_item(client):
response = client.post('/api/items', json={'name': 'Test Item'})
> assert response.status_code == 201
E assert 400 == 201
E + where 400 = <Response 82 bytes [400 BAD REQUEST]>.status_code
test/test_app.py:15: AssertionError
Cline 会自动分析错误,并给出修复方案:
错误原因:你的测试发送了
json=参数,但 Flask 默认不支持。修复方法:在
app.py顶部添加:from flask import request并确保
request.get_json()被正确调用。
A: 按 Ctrl+Shift+P,输入 Cline: Focus on Sidebar。
如果还不行,尝试:
- 重启 VS Code
- 重新安装 Cline 插件
- 检查 VS Code 版本是否 ≥ 1.85.0
A: 三个可能原因:
- API Key 填错了 → 重新粘贴 Key(注意前后不要有空格)
- 账户余额不足 → 登录 platform.deepseek.com 查看余额
- 模型名称填错了 → 应该是
deepseek-chat或deepseek-coder
A: 正常现象,本地模型比云端 API 慢 5-10 倍。
加速方案:
- 换更小的模型(
deepseek-coder:1.3b比6.7b快 3 倍) - 开启 GPU 加速(需要 NVIDIA 显卡 + 安装 CUDA)
- 升级内存(32GB 比 16GB 快很多)
A: VS Code 内置了 Git 版本控制。
每次 Cline 修改文件前,先按 Ctrl+Shift+G 打开源代码管理,点击「+」暂存更改。
如果 AI 改错了,右键文件 →「撤消上次提交」。
最佳实践: 每次让 Cline 大改之前,先 git commit 一次。
A: 在项目根目录创建一个 CLINE.md 文件(类似 README.md),写入:
# 项目说明 ## 项目简介 这是一个 Flask 后端 API 项目,提供物品管理功能。 ## 目录结构 - `src/`:源代码 - `test/`:单元测试 - `templates/`:Jinja2 模板 - `static/`:静态文件 ## 编码规范 - 使用 Python 3.12+ 语法 - 所有 API 返回 JSON 格式 - 错误处理使用 HTTP 状态码 ## 常用命令 - 运行项目:`python src/app.py` - 运行测试:`pytest test/ -v` - 代码检查:`flake8 src/`
Cline 每次对话时,会自动读取 CLINE.md,从而"理解"你的项目。
┌──────────────────────────────────────────────────────────┐
│ 你的开发环境 │
│ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ VS Code │ │ Cline 插件 │ │
│ │ (编辑器) │ ←──→ │ (AI 编程助手) │ │
│ └──────────────┘ └──────────────────┘ │
│ ↓ │
│ ┌──────────────────────────────────────┐ │
│ │ 模型后端(三选一) │ │
│ │ ① DeepSeek API(推荐,便宜) │ │
│ │ ② Ollama 本地(隐私) │ │
│ │ ③ OpenAI API(贵但强) │ │
│ └──────────────────────────────────────┘ │
│ ↓ │
│ ┌──────────────────────────────────────┐ │
│ │ 你的项目代码 │ │
│ │ ↕ AI 帮你写/改/测/解释 ↗ │ │
│ └──────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
| 知识点 | 掌握程度 |
|---|---|
| Cline 插件安装与配置 | ✅ |
| DeepSeek API 接入 | ✅ |
| Ollama 本地模型配置 | ✅ |
| 代码解释(选中即问) | ✅ |
| 代码重构(AI 直接改文件) | ✅ |
| 生成单元测试 | ✅ |
| 实时代码补全 | ✅ |
| 项目级理解(全项目上下文) | ✅ |
| 自定义系统提示词 | ✅ |
| 多模型切换 | ✅ |
| 快捷键配置 | ✅ |
| Docker 容器开发集成 | ✅ |
| Flask 实战项目 | ✅ |
学会 Cline 之后,可以继续探索:
- 🔥 Cline + RAG:让 AI 检索你的私有技术文档后再写代码
- 🔥 Cline + MCP:让 AI 调用数据库、API、Git 等外部工具
- 🔥 Cline + 多模型评审:让 GPT-4o、Claude、DeepSeek 互相评审代码
- 🔥 Cline + 自动化测试:提交代码前,让 AI 自动跑测试并修复失败的用例
- 🔥 从 Cline 到 Cursor:如果团队愿意付费,Cursor 的多模型切换更流畅
到此这篇关于零成本提升代码效率:用Cline+DeepSeek打造本地AI编程助手的文章就介绍到这了,更多相关Cline+DeepSeek打造AI编程助手内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- 使用Cline+deepseek实现VsCode自动化编程