Continue插件实现本地部署一个“cursor”或“github copilot”

Continue插件实现本地部署一个“cursor”或“github copilot”

本地部署 AI 代码助手,制作一个 Cursor/GitHub Copilot 的替代版本

一 需求分析

  • 本地部署的定义与优势(数据隐私、离线使用、定制化)。
  • Cursor 与 GitHub Copilot 的功能(代码补全、对话交互、模型差异)。
  • 本地部署的AI 代码助手适用场景:企业内网开发、敏感数据环境。

二 环境准备与工具选择

  • 硬件要求:GPU 要对应上你所部署的模型大小
  • 模型选择:qwen2.5-14b-instruct (这里选择千问的大模型)

三 部署开源模型

这里不详细介绍具体的大模型部署的具体过程,部署完成之后,你应该得到对应的模型的以下信息

model: "qwen2.5-14b-instruct" apiBase: "http://你的ip地址(自己的本机就写localhost):对应的端口号 例如8000/v1"

四 集成到开发环境

Cursor 开源替代方案:配置 VS Code 插件(Continue)连接本地模型

4.1 Continue 插件简介

Continue 是 VS Code 的一款 AI 编程辅助插件,专注于通过自然语言交互提升开发效率。它基于大语言模型(如 GPT-4、Claude 等),支持代码生成、解释、调试和重构等功能,同时注重隐私保护,允许本地运行或连接私有模型。

  • 代码自动补全与生成:根据注释或上下文实时生成代码片段,支持多种编程语言,减少重复性编码工作。
  • 对话式编程:通过聊天界面与 AI 交互,例如询问“如何优化这段代码?”或“解释这个函数的作用”,插件会提供即时反馈。
  • 代码重构与调试:识别代码中的潜在问题,提供优化建议,或直接生成修复方案。例如自动重构冗余逻辑或修复语法错误。
  • 多模型支持:允许用户配置不同的 AI 模型后端(如 OpenAI、Anthropic 或本地部署的模型),适应不同需求。

4.2 隐私与安全

  • 本地运行选项:支持离线模型(如 CodeLlama),避免敏感代码上传云端。
  • 自定义服务器:企业用户可连接内部部署的模型服务器,确保数据可控。

4.3 安装与配置

①安装插件

在 VS Code 扩展市场搜索“Continue”并安装。

由于我已经安装过了,所以显示的是Disable。

②配置本地模型

Continue安装完成后,VS Code 的边栏上会多一个图标。

选择Ollama 然后点击Connect就可以了,会自动弹出config.yaml,然后将其内容补充完整。

1 基本信息

name: Local Config version: 1.0.0 schema: v1
  • name: 配置名称,标识为 "Local Assistant"(本地助手)。
  • version: 配置文件版本(1.0.0)。
  • schema: 使用的配置架构版本(v1)。

2 模型配置

 models: - name: qwen2.5-14b-instruct provider: "openai" model: "qwen2.5-14b-instruct" apiBase: "http://ip:port/v1" apiKey: "" completion_options: temperature: 0.5 top_p: 0.9 roles: - chat - autocomplete - edit - apply
  • 模型定义:使用 Qwen2.5-Coder-7B-Instruct(一个针对代码任务的7B参数模型)。
    • provider: 设置为 "openai",表示兼容OpenAI API格式(这里根据你的实际情况修改)。
    • apiBase: 模型API的终端地址(http://ip:port/v1),指向一个本地或远程服务。
    • apiKey: 你的模型API密钥。
  • 生成参数:
    • temperature: 0.5(平衡生成结果的创造性和确定性)。
    • top_p: 0.9(核采样,限制生成时仅考虑概率最高的90% token)。
  • 支持的功能 (roles):
    • chat: 对话交互。
    • autocomplete: 代码自动补全。
    • edit: 代码编辑。
    • apply: 可能指应用代码更改。

3 上下文集成

 context: - provider: code - provider: docs - provider: diff - provider: terminal - provider: problems - provider: folder - provider: codebase

配置工具可访问的上下文来源(增强模型对当前任务的理解):

  • code: 当前编辑的代码文件。
  • docs: 项目文档或注释。
  • diff: 代码变更差异(如Git diff)。
  • terminal: 终端输出或命令历史。
  • problems: 错误或警告(如IDE提示)。
  • folder: 当前目录文件结构。
  • codebase: 整个代码库的元信息(如符号定义)。

总得来说,此配置文件定义了一个本地代码助手,通过HTTP API连接到一个 Qwen2.5-Coder 模型,支持代码补全、编辑、聊天等功能,并集成了开发环境的多维度上下文(代码、终端、文档等)。

Ctrl + S 保存后就会显示对应的模型,到这里本地部署的模型链接VS code 就完成了。

五 测试

Read more

Flutter for OpenHarmony: Flutter 三方库 jaspr 为鸿蒙端开启极速渲染的现代 Web 开发新范式(Dart Web 框架首选)

Flutter for OpenHarmony: Flutter 三方库 jaspr 为鸿蒙端开启极速渲染的现代 Web 开发新范式(Dart Web 框架首选)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 开发时,我们偶尔需要跳出原生的 HAP 容器,寻找更轻量、更适合在移动端 Web 加载的方案。虽然 Flutter Web 极其强大,但其生成的 Canvas/Wasm 产物体积巨大,在鸿蒙系统加载较慢。是否存在一种方案,既能使用 Dart 的声明式开发体验,又能产出纯正、轻量的 HTML/CSS/JS 节点? jaspr 就是这个问题的终极答案。它是一个模仿 Flutter 语法、但专注于渲染原生 Web DOM 的现代框架。通过 Jaspr,鸿蒙开发者可以利用熟悉的 Widget、Component 和生命周期,

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 sanitize_html 彻底杜绝 XSS 注入风险(鸿蒙 Web 内容安全净化)

Flutter for OpenHarmony: Flutter 三方库 sanitize_html 彻底杜绝 XSS 注入风险(鸿蒙 Web 内容安全净化)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在开发 OpenHarmony 应用时,如果我们需要在 UI 中渲染来自后端的 HTML 内容(例如文章正文、用户评论),或者使用 flutter_html 等库,一个致命的安全风险就是 XSS (跨站脚本攻击)。恶意代码可能会通过 <script> 标签或 onerror 属性在你的 App 内执行非法逻辑。 sanitize_html 是一个轻量级且极高效的 HTML 净化库。它采用白名单机制,能瞬间过滤掉所有不安全的标签和属性,确保你在鸿蒙 App 内渲染的每一行 Web 内容都是绝对安全的。 一、核心防御机制解析 sanitize_html 遵循“默认拒绝”

By Ne0inhk
【前端】win11操作系统安装完最新版本的NodeJs运行npm install报错,提示在此系统上禁止运行脚本

【前端】win11操作系统安装完最新版本的NodeJs运行npm install报错,提示在此系统上禁止运行脚本

🌹欢迎来到《小5讲堂》🌹 🌹这是《前端》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 目录 * 前言 * 解决方案 * 方法1:以管理员身份运行 PowerShell 并更改执行策略 * 方法2:只为当前会话临时允许 * 方法3:使用命令提示符 (CMD) * 方法4:绕过策略执行单个脚本 * 推荐解决方案 * Node.js 详细介绍 * 什么是 Node.js? * 核心特点 * 1. **非阻塞 I/O 和事件驱动** * 2. **单线程但高并发** * 架构组成 * 1. **V8 JavaScript 引擎** * 2. **LibUV 库** * 3. **核心模块** * 安装与使用

By Ne0inhk
排序算法(1)

排序算法(1)

先赞后看,养成习惯!!! ^ _ ^ ❤️ ❤️ ❤️ 码字不易,大家的支持就是我坚持下去的动力,点赞后不要忘记关注我哦 个人主页:伯明翰java 文章专栏:数据结构和算法 如有错误,请您指正批评 ^ _ ^ 什么是排序 排序:所谓排序,就是使⼀串记录,按照其中的某个或某些关键字的⼤⼩,递增或递减的排列起来的 操作 稳定性:如果待排序的一组数据中,有多个相同的数据,经过排序后如果这些相同数据的相对次序不变就是稳定排序,如果相对次序发生变化就是不稳定排序 注:如果这个排序算法是稳定的,它可以变成不稳定排序,如果是不稳定排序,它变不成稳定排序 常见的排序算法 常见排序算法实现 插入排序 直接插⼊排序是⼀种简单的插⼊排序法,其基本思想是:把待排序的记录按其关键码值的⼤⼩逐个插⼊到⼀个已经排好序的有序序列中,直到所有的记录插⼊完为⽌,得到⼀个新的有序序列。 当插⼊第i(i>=1)

By Ne0inhk