最近因为阳了的缘故一直躺在床上。最近本来不打算熬夜的,但是因为我收到了申请 Copilot Chat preview 权限通过的邮件。实在忍不住,半夜起床开电脑在咳嗽声中进行了一番体验。
https://github.com/github-copilot/chat_waitlist_signup/join
申请通过后,邮件上就有说明。插件有2个,一个是基于 VSCode 的,一个是基于 Visual Studio 的。今天使用的是 Visual Studio 版本。在 Marketplace 搜索 Visual Studio Extension for GitHub Copilot Preview 下载安装重启 VS 即可。
Copilot 的基本能力,比如写单元测试等,其实在以前的文章已经演示过了,这次不在重复。既然新版叫 Copilot Chat 那么肯定是跟 ChatGPT 一样是问答模式了。下面就来跟 Copilot 唠唠嗑。
minjie:Copilot Chat 是什么?
Copilot:
minjie:请问 c# int 的最大值是多少 Copilot:
minjie:在 dotnet 中一般怎么建立 websocket 连接,给个示例
Copilot:
问答可以说问啥答啥,基本上毫无破绽。
Copilot Chat 的另外一个能力就是对一段代码进行解释。比如让它对 AgileConfigClient 的核心类 ConfigClient 进行解释。首先打开 AgileConfigClient 项目,然后选中 ConfigClient 类文件,然后就可以问了。
minjie:请问 ConfigClient 类是用来干嘛的?
Copilot:
Copilot 准确的做出了解释,只是使用了英文,我让它使用中文,它不理我。
下面的内容演示了如何使用 Copilot chat 一步步通过对话方式生成一个可以运行的项目。在最后我甚至想让它直接写个文章,Copilot 也写出来了,不过反正见过了 ChatGPT 的能力了也不奇怪哈。
minjie:生成一个ToDo实体类
Copilot:
minjie:添加一个字段 Completed
Copilot:
minjie:对这个实体类生产数据库访问类,使用 efcore
Copilot:
minjie: 改成 TodoContext
Copilot:
minjie: 支持 sqlite
Copilot:
minjie: 删除构造函数
Copilot:
minjie: 使用 ToDoContext 生成一个 ToDoService 类,这个类包装了改删查方法
Copilot:
minjie: 把所有方法改成异步
Copilot:
minjie: 生产一个控制器并且使用 ToDoService,使用 restful 方式暴露出去
Copilot:
minjie: 在程序启动的时候把ToDoService注册到容器并且使用scope生命周期
Copilot:
minjie: 可以把以上对话整理成一篇文章吗?文章的题目叫 CopilotChat 初体验