首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Continue开源AI编程助手:堪比Copilot的VSCode最强生产力插件

  • 25-02-15 10:42
  • 2577
  • 9278
blog.csdn.net

引言

在之前的文章里,我经常介绍关于Cline的使用,不过作为开源方案,Cline主要关注的是Agent的能力,而对于Editor的功能,比如自动补全、inline编辑等,则没有关注,所以今天给大家介绍另一款强大VSCode编程插件Continue。它的主要特点则是通过AI辅助来提升开发效率,帮助开发者更快速地理解、编写和优化代码,走的是Copilot的路线,正好是对Cline的补充。本文将深入探讨Continue的特性、安装方法、核心功能及其扩展能力,帮助读者全面了解并掌握这款工具。

Continue AI编程助手界面展示

Continue的特点

Continue的主要特点包括:

  • 聊天功能(Chat):在VSCode的侧边栏中与AI互动,帮助理解和迭代代码。
  • 自动补全(Autocomplete):实时提供代码补全建议,提升编码效率。
  • 代码编辑(Edit):无需切换文件即可直接修改代码。
  • 快捷操作(Actions):为常见用例提供快捷操作。

除此之外,Continue支持高度的自定义和扩展性,例如通过不同的模型配置(Chat Model和Autocomplete Model)、上下文提供器(Context Providers)以及斜杠命令(Slash Commands)来满足开发者的个性化需求。

安装方法

要开始使用Continue,用户需要按照以下步骤完成安装:

  1. 打开VSCode市场,搜索Continue并点击安装。
  2. 安装完成后,Continue的图标将出现在左侧边栏。为了更好的体验,可以将Continue移动到右侧边栏。

Continue VSCode插件安装界面

核心功能详解

1. 聊天功能(Chat)

Continue的聊天功能允许开发者通过自然语言与AI进行交互,帮助理解复杂的代码逻辑、解决问题或生成代码片段。例如,开发者可以在侧边栏中提问"如何优化这段代码?"并获得详细的建议。

2. 自动补全(Autocomplete)

自动补全功能通过实时分析开发者正在编写的代码,提供智能的补全建议。这一功能特别适合需要快速编写标准化代码或重复性代码的场景。

3. 代码编辑(Edit)

代码编辑功能允许用户直接在当前文件中修改代码,而无需切换到其他文件或窗口。例如,用户可以通过简单的命令要求AI重构某段代码。

4. 快捷操作(Actions)

快捷操作功能提供了一系列预设的快捷方式,帮助用户快速完成常见任务,例如格式化代码、生成注释或执行测试。

AI模型配置指南

Continue的强大功能离不开其背后的多样化AI模型支持。作为一个开源的AI编程助手,Continue构建了完整的模型生态系统,包括聊天模型(Chat Model)、自动补全模型(Autocomplete Model)、重排序模型(Reranking Model)和嵌入模型(Embeddings Model)。这些模型各司其职,又相互配合,为用户提供全方位的智能编程体验。更重要的是,Continue支持灵活配置各类模型,用户可以根据自己的需求选择不同的模型提供商,打造个性化的AI编程环境。

聊天模型(Chat Model)

聊天模型是一种专为对话场景设计的大型语言模型(LLM),通常包含405B+参数,能够回答复杂问题并生成高质量代码。在Continue中,聊天模型被广泛用于聊天、编辑和快捷操作功能。

推荐的聊天模型包括:

  • Claude 3.5 Sonnet
  • GPT-4
  • Gemini 1.5 Pro

自动补全模型(Autocomplete Model)

自动补全模型专为"中间填充"(Fill-In-The-Middle,FIM)任务设计,能够根据代码的前缀和后缀预测中间的内容。相比聊天模型,自动补全模型的参数量更小(通常为3B),但在特定任务上表现更优。

推荐的自动补全模型包括:

  • Codestral配合Mistral或Vertex AI
  • 本地运行的Qwen2.5-Coder 1.5B配合Ollama

DeepSeek模型配置示例

DeepSeek是目前最火的开源模型之一,既然是全开源方案,自然是要支持配置开源的聊天模型和自动补全模型。下面是DeepSeek的配置示例:

  • 配置聊天模型:
{
  "models": [
    {
      "title": "DeepSeek Chat",
      "provider": "deepseek",
      "model": "deepseek-chat",
      "apiKey": "[API_KEY]"
    }
  ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 配置自动补全模型:
{
  "tabAutocompleteModel": {
    "title": "DeepSeek Coder",
    "provider": "deepseek",
    "model": "deepseek-coder"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

重排序模型(Reranking Model)

重排序模型是一种专门训练用于评估文本相关性的模型。它接收两段文本(通常是用户问题和文档)作为输入,返回一个0到1之间的相关性分数,用于估计该文档对回答问题的帮助程度。与LLM相比,重排序模型通常体积更小、运行速度更快、成本也更低。

在Continue中,重排序模型主要用于@Codebase功能,帮助筛选向量搜索后最相关的代码片段。

推荐的重排序模型包括:

  • Voyage AI的rerank-2模型:目前最佳的代码重排序模型
  • Cohere的rerank-english-v3.0:优秀的通用重排序模型
  • LLM作为重排序器:虽然可行但不推荐,因为成本高且准确度较低

配置示例(使用 Voyage AI):

{
  "reranker": {
    "name": "voyage",
    "params": {
      "model": "rerank-2",
      "apiKey": ""
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

嵌入模型(Embeddings Model)

嵌入模型是专门用于将文本转换为向量表示的AI模型,这些向量可以快速比较以确定文本之间的相似度。与LLM相比,嵌入模型同样具有体积小、速度快、成本低的特点。

在Continue中,嵌入模型在索引过程中生成向量,并被@Codebase功能用于对代码库进行相似度搜索。

推荐的嵌入模型包括:

  • Voyage AI的voyage-code-3:最佳的在线嵌入模型
  • Ollama的nomic-embed-text:推荐的本地部署选项
  • Transformers.js:VSCode默认的嵌入模型,使用all-MiniLM-L6-v2

配置示例(使用 Voyage AI):

{
  "embeddingsProvider": {
    "provider": "voyage",
    "model": "voyage-code-3",
    "apiKey": ""
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

此外,Continue还支持多种其他嵌入模型提供商,如 OpenAI、Cohere、Gemini、Vertex AI、Mistral 等,用户可以根据需求选择合适的模型。

Continue扩展功能详解

Continue的扩展性是其一大亮点,主要体现在上下文提供器(Context Providers)和斜杠命令(Slash Commands)两个方面。

上下文提供器(Context Providers)

上下文提供器允许用户通过输入@来选择需要提供给AI的上下文内容。每个上下文提供器都是一个插件,用户可以根据需求添加或自定义。以下是一些常见的上下文提供器及其用途:

  • @File:引用当前工作区中的文件,适合需要快速查看和处理具体文件内容的场景
  • @Git Diff:引用当前分支的代码修改内容,便于总结更改或请求代码审查
  • @Terminal:引用终端中最近运行的命令及其输出,非常适合调试和运行脚本时使用
  • @Docs:引用文档站点的内容,帮助用户快速获取相关文档信息
  • @Web:引用从互联网上检索的相关页面,适合查找外部资源
  • @Codebase:引用代码库中最相关的代码片段,帮助AI更好地理解项目上下文
  • @Search:引用代码库搜索结果,与VSCode的搜索功能类似

配置示例:

{
  "contextProviders": [
    {
      "name": "file"
    },
    {
      "name": "git-diff"
    },
    {
      "name": "terminal"
    },
    {
      "name": "web",
      "params": { "n": 5 }
    }
  ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

用户可以根据项目需求添加更多上下文提供器,例如 @Tree(工作区结构)、@Problems(文件问题)或 @Debugger(调试器内容)。

斜杠命令(Slash Commands)

斜杠命令是Continue的另一大特色,用户可以通过输入/激活这些快捷指令。例如,内置的/edit命令可以直接将编辑内容流式传输到编辑器中。

内置的斜杠命令包括:

  • /cmd:生成shell命令并自动粘贴到终端
  • /commit:根据当前的git diff生成提交信息
  • /onboard:分析项目结构,帮助用户快速熟悉新项目
  • /http:调用自定义API
  • /issue:生成GitHub问题草稿
  • /share:导出当前会话的Markdown副本

Continue提供了两种自定义斜杠命令的方式:

1. 使用自然语言提示(推荐)

这是最简单的自定义方式,只需要在config.json中添加customCommands配置。例如,创建一个用于检查代码错误的命令:

{
  "customCommands": [{
    "name": "check",
    "description": "检查代码中的错误",
    "prompt": "{{{ input }}}\n\n请检查高亮代码中的以下问题:\n- 语法错误\n- 逻辑错误\n- 安全漏洞\n- 性能问题\n- 其他潜在问题\n\n发现错误后请简明扼要地说明,每个错误用一个要点列出。"
  }]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这种方式支持使用Handlebars模板语法,可用的变量包括:

  • input:命令输入的额外文本和高亮的代码块
  • 文件名:可以引用工作目录中的文件内容
2. 使用自定义函数(高级)

对于需要更复杂功能的场景,可以使用config.ts编写自定义函数。这种方式可以完全访问ContinueSDK的功能。例如,创建一个生成提交信息的命令:

export function modifyConfig(config: Config): Config {
  config.slashCommands?.push({
    name: "commit",
    description: "生成Git提交信息",
    run: async function* (sdk) {
      const diff = await sdk.ide.getDiff(false);
      for await (const message of sdk.llm.streamComplete(
        `${diff}\n\n为上述更改生成一个简短的提交信息,使用祈使语气(如"添加功能"而不是"添加了功能"),不超过20个token:`,
        new AbortController().signal,
        {
          maxTokens: 20,
        },
      )) {
        yield message;
      }
    },
  });
  return config;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

自定义斜杠命令的应用场景非常广泛,例如,可以创建以下自定义命令来提升开发效率:

  • 通过/check命令快速检查代码质量
  • 通过/test命令自动生成单元测试
  • 通过/doc命令生成代码文档
  • 通过/pr命令创建拉取请求描述
  • 通过/refactor命令获取代码重构建议

总结与展望

Continue是一款功能强大且高度可扩展的VSCode AI编程助手,通过先进的AI模型支持、灵活的上下文提供器和丰富的斜杠命令,为开发者提供了全方位的智能编码辅助。无论是初学者还是资深开发者,都可以通过Continue显著提升开发效率,简化编程流程。结合之前介绍的Cline,可以实现一个全开源的AI编程环境,功能不比商业版本的Cursor或者Windsurf差,是新时代程序员提升生产力的必备工具。

注:本文转载自blog.csdn.net的听吉米讲故事的文章"https://blog.csdn.net/weixin_46074689/article/details/145228048"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

110
AIGC
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top