Copilot使用体验

本篇是去年使用Copilot的记录,不代表目前水平,仅做个人记录同步,谨慎参考。

GitHub Copilot的订阅计划

https://docs.github.com/en/copilot/about-github-copilot/subscription-plans-for-github-copilot
个人版提供30天的免费试用。个人版每月10 美元或每年 100 美元。

Copilot操作文档

https://docs.github.com/en/copilot/quickstart
目前支持JetBrains IDEs,Vim/Neovim,Visual Studio,Visual Studio Code,Xcode。安装插件,登录Github账号就可以使用了,需要开代理。

基本操作

  • 获取代码建议,输入代码时会自动触发,使用“Tab”键采纳。
  • 切换建议,macOS使用“Option+]”或“Option+[”,windows使用“Alt+]” 或 “Alt+[”切换下一条,上一条。
  • 聊天模式,可以引用文件,生成测试代码,解释代码,修复问题。

基本操作,支持功能和同类型工具都大差不差,主要关注实际提示代码质量。

其他设置

  • 启用或禁用公共代码匹配的建议,如果选择允许匹配公共代码的建议,当Copilot建议匹配代码时,可以显示匹配的详细信息,并点击到GitHub上的相关存储库。
  • 访问Bing,Copilot将使用Bing在互联网上搜索与问题相关的信息。在讨论新技术或特定的主题时,Bing搜索尤其有用。

Copilot优缺点

优点

  • 提示速度快,支持语言丰富。
  • 偏向提示多行代码块,方便快捷。
  • 相对其他同类型工具提示更精准。
  • 会根据项目代码不断优化提示,做到更贴近所想。

缺点

  • 需要使用代理,没有国内的工具访问方便。
  • Copilot 是使用大量代码训练的,但它的范围仍然有限。 它可能无法处理一些复杂的代码结构或模糊的编程语言。
  • Copilot 并不是没有错误的。可能会生成看起来有效但实际无效的代码。 为了降低代码不准确的风险,需要仔细查看和测试生成的代码。
  • 由于上下文的限制,copilot不能全局考虑问题,更多的是解决局部的问题。会存在方法未复用的情况。

辅助编程相关场景举例说明

一般有三大类:

  • 代码-代码:包含代码补全、代码修复
  • 代码-文本:代码解释、代码优化、代码异常排查
  • 文本-代码:通过提示词 Prompt 做代码生成 (单元测试等)

支持语言

常用语言都支持(Java,python,JavaScript,Go,C, Kotlin等),亲测Flutter的Dart语言也可以很好的支持。

代码补全

场景:数据上报点击删除按钮时,pageinfo传入课程id(多个课程id用逗号分隔)
操作:当我输入到map方法做转换时,Copilot猜到我的意图,给出了下面的提示。

在这里插入图片描述


提示和预期完全一致,比较惊喜的地方在于,下载对象中属性字段很多,并且有“id”这个字段作为相似项干扰。
在我没有告知Copilot我的需求情况下,最终可以准确提示,还是很智能的。

代码修复

下面这段代码在实际运行中会报错崩溃,我们根据报错行数找到这段问题代码:

val goal ="${list[0].option.filter{ it.selected }[0]?.id ?: 1}"// java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0

选中这行问题代码,输入“/fix”修复这个问题。

在这里插入图片描述


可以看到copilot解释了问题的原因,并给出了解决方案。

代码生成

可以通过写注释的方式,让Copilot帮我们生成相关代码。Copilot会根据上下文,给到合理的代码。

在这里插入图片描述

Read more

GitHub Copilot 教程

文章来源:https://vscode.it-docs.cn/docs/copilot/overview.html GitHub Copilot 为 Visual Studio Code 增加了多代理开发功能。规划好你的方法,然后让AI代理在项目中实现并验证代码变更。并行运行多个代理会话:本地、后台或云端。从一个中心视角管理所有角色。内联建议、内联聊天和智能行为会帮助你完成整个编码流程。 代理与代理会话 代理端到端地处理完整的编码任务。给代理一个高级任务,它会将工作拆分成步骤,编辑文件,运行终端命令,调用工具,并在遇到错误或测试失败时自我纠正。每个任务都运行在一个代理会话中,这是一个持续存在的对话,你可以跟踪、暂停、继续或交接给另一个代理。 重要 你们组织可能在VS Code中禁用了代理。请联系你的管理员以启用此功能。 从中央视图管理会话 并行运行多个代理会话,每个会话专注于不同的任务。聊天面板中的会话视图为你提供了一个统一的地方来监控所有活跃会话,无论是本地运行、后台还是云端运行。查看每次会话的状态,切换,查看文件变更,

使用LLama.cpp本地部署大模型

摘要         llama.cpp是一个基于C/C++开发的高效大语言模型推理工具,支持跨平台部署和Docker快速启动,核心功能是在有限的计算资源情况下本地部署使用大模型。本文介绍了通过Docker方式部署llama.cpp的步骤,包括如何下载模型、CPU/GPU配置及启动参数说明。llama.cpp提供Web UI界面和OpenAI兼容API,支持文本和多模态对话,对电脑配置要求不高,完全免费且私密,让普通用户也能轻松在本地运行大语言模型。 LLama.cpp简介        1. llama.cpp 是一个在 C/C++ 中实现大型语言模型(LLM)推理的工具         2.支持跨平台部署,也支持使用 Docker 快速启动         3.可以运行多种量化模型,对电脑要求不高,CPU/GPU设备均可流畅运行。         支持模型包含:llama系列,qwen系列,gemma系列,Falcon、Alpaca、GPT4All、Chinese LLaMA、Vigogne、

CosyVoice环境安装报错:安装openai-whisper时出现ModuleNotFoundError: No module named ‘pkg_resources‘的原因

先说如何解决,我个人采用源码安装,安装时禁用构建隔离: git clone https://github.com/openai/whisper.git cd whisper git checkout v20231117 pip install -e . --no-build-isolation 再说该问题产生的原因,下面是大D老师的回答,自行参考。 太棒了!你找到了正确的解决方案。让我详细解释为什么会出现这个问题,以及为什么 --no-build-isolation 能解决它。 🔍 问题根源分析 问题的关键在于 PEP 517/518 构建隔离机制和你的 setup.py 实现方式。 1. 构建隔离机制 (Build Isolation) 的工作原理 当你执行 pip install -e .(不带 --no-build-isolation)时,

【GitHub】github学生认证,在vscode中使用copilot的教程

【GitHub】github学生认证,在vscode中使用copilot的教程

github学生认证并使用copilot教程 * 写在最前面 * 一.注册github账号 * 1.1、注册 * 1.2、完善你的profile * 二、Github 学生认证 * 注意事项:不完善的说明 * 三、Copilot * 四、在 Visual Studio Code 中安装 GitHub Copilot 扩展 * 4.1 安装 Copilot 插件 * 4.2 配置 Copilot 插件(新安装) * 4.3 换 Copilot 插件账号 🌈你好呀!我是 是Yu欸🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!