B站 | 微软Reactor_SH | 玩转 GitHub Copilot|从入门开始:解锁 Copilot 更多实战技巧
GitHub Copilot实战演示:零基础也能用AI编程解决Excel数据处理与图表可视化问题
标签
媒体详情
- 上传日期
- 2025-06-05 16:12
- 来源
- https://www.bilibili.com/video/BV1MNRgYXEhc/
- 处理状态
- 已完成
- 转录状态
- 已完成
- Latest LLM Model
- gemini-2.5-pro-exp-03-25
转录
speaker 1: 欢迎大家来到微软react直播间。 嗯,我们今天呢非常荣幸的邀请到来自微软开发者生产力全球黑带组的尹雪峰老师,给我们带来接下来为期一个月的玩转get thupilot呃系列相关的分享的第一期。 从入门开始解锁core pilot更多的实战技巧。 嗯,大家在直播的过程中如果有任何的问题,可以在我们的弹幕区留言。 我们会在最后嗯分享结束以后的qa环节进行解答。 好,那接下来我们就把时间交给尹老师。 speaker 2: 然后感谢线上参加的小伙伴。 所以今天呢也是第一期,所以主打一个轻松加愉快。 所以今天讲的过程中就是讲ppt其实会比较少,大部分会是一些实际的动手demo环节,就是一些直接实操给大家看一下get up到底能做什么事情,解决一些哪些基本的问题啊。 好,那么就进入主题吧。 然后我是刚才也简单介绍过,就不不过多介绍了,我叫尹学峰。 好,我们继续吧。 好,那首先我们今天讨论的这个话题或者谈论话题叫呃give up Copilot。 那这个其实是两个词啊,如果单独分分开来看的话呢,give up b是什么? 可能很多人知道,那我们照顾一下,有一些可能之前没了解过的。 因为gihub我们就用deep sick,用一句话最简单的呃总结。 它其实是一个在线的get的一个呃基于get代码托管平台啊,或者说在线的一个呃协作平台。 它可以很方便的去帮你做代码管理,然后呢很全球的开发者都在上面协作开发,尤其是一些呃非常就但凡是你想做一些开源的东西啊,那其实都是需一般来讲也不叫都是大家都会把代码放到GitHub上。 就包括像比较火的这个问题,本身有deep产生的这个问题,那deep也是把它一些共享的一些东西啊,包括前两天跟共享的什么4S那些东西也是放在up b上,所以它是一个代码管理工具。 那当然本身它也是其实支持私有化部署的。 所以很多人可能会有误解,也觉得说呃GitHub只能sas怎么样怎么样。 其实他也有私有化版本叫GitHub and prise server。 那那不管怎么样,他就单看这个词而言,他其实就是一个给开发者或者说程序员去做代码管理共享协作的这么一个平台和工具。 那give up出的这个Copilot,那肯定首先是需要你是在呃写代码,或者说你是一个程序员,你会用到它啊。 当然如果你不是一个程序员,你是一个完全零基础跟没有做过编程经验的小白,你你也可以用它。 所以我们接下来看一下Copilot后半部分,那cop从后半部分我们直接去翻译一下cop其. 实是副驾驶的意思。 所以很多时候你看那个中文,我们微软的中文那个宣传册,其实都称之为呃GitHub副驾驶或者怎么样,其实就是一个副驾驶。 那我们讲副驾驶,它自然就是一个副驾驶,它不是主驾驶嘛。 因为因为有一些人可能会对呃copate有一些就是过高的期许。 当然这里面不仅仅是copate本身,包括呃任何一个AI的这种编程助手,其实都本质上讲都是一个辅助性的一个编程工具。 当然现在也有比较多的这种流行的工具,声称自己能够从端到端。 你只是跟他说诉需求,他帮你全部给你搞定。 但是其实那只是说在一些简单的场景,真正在复杂场景中。 比如说你要真正构建一套呃一个真正的一个呃服务,就是从前端到后端整个一体系包整个体系这样的东西,包括你要把它部署上去,包括这些所有的东西,你是不在当前阶段是不太可能就是完全完成的。 你从端到端能做的顶多就是一些比较简单的或者demo的场景。 对所以它其实定位算是一个副驾驶,就是属于辅助。 所以我们呃作为开发者自己或者说我们的主驾驶自己老司机还是得自己把控着方向一点。 但是当然我们讲这个不仅仅是就这个世界不是非黑即白啊,它其实中间有一个灰度的过程。 那从2021年copate发布以来,它其实是等于说开辟了这个呃编程助手的这个赛道。 在coilot发布之前,事际上是没有这种东西的。 是他发布之后大家才发现哦,原来AI还能去帮助大家去写代码,还能去做这么有意思的事情。 能够把我们从一些呃繁重的或者说一些呃,比如说类似于写政策表达式啊,或者说一些这种呃类或者说框架的这种呃这种这种这种学习中解放出来。 那你只要跟他去讲,他会提醒你这样子。 那那当之前的话呢,其实还是比较笨的那现在呢随着时间推移,虽然没有我们讲的刚没有实现我们刚才讲的成为一个完全的主驾驶一个pilot。 那现在他其实也是在慢慢朝那个方向前进。 那就当前阶段来讲,它其实已经能帮我们做很多很多的事情。 比起他刚诞生的时候已经要强大很多了。 所以后面我在demo的时候呢,也会有一些这种也会有这样一些比较交互性的demo。 那我们就继续先给大家降低一下期许,先这个玉扬先译一下,先降低一下期许,它只是一个副驾驶,不要认为它是一个万能的东西。 所以当我们去做我们的日常工作,去开发某些东西的时候呢,那主驾驶呢那其实这个还是得说我们人类自己,目前那副驾驶才是这个Copilot,那这是他一个定位,先给大家讲清楚一下。 好,那讲到这个get up Copilot,我们再看一下get up Copilot的官网,它对于呃它的一个定义是什么? 是AI编辑器每适用于每个人的AI编辑。 那这里面没有讲说是for develop它, 是for everyone。 所以即使你不是一个专业的开发人员,你只是比如说平时工作中呃有涉及到一些呃就日常工作。 比如说你要处理很多excel表格啊,或者说你要写一些word文档,类似于这种的有一些很机械性的枯燥的这种事情。 或者说有一些领导给你安排一些你不知道怎么做的一些小技巧、小操作。 那其实cop都可以帮你去通过以编程的方式去做做出来,去实现出来那。 所以我们讲它是一个呃面向于所有人的工具。 那我们再再回到过来,我们讲它虽然是面向所有人工具,但是中间的桥梁其实是编程。 就是等于说Copilot帮助你去编程,然后通过编程的方式去解决你工作中的很多问题。 那本质上讲就是你的很多问题其实是机械性的,重复性的或者怎么样,你可以让程序解决,但是你又不会写程序。 Ok那这时我们Copilot就可以来帮助你去解决问题。 那我们看一下,那接下来我们就从这个编程的角度讲,我们能呃就Copilot能做哪些事情呢? 就比如说呃你在写代码的时候呢,他可以根据你的上下文给你生成建议。 然后呢,如果说你有一些工程或者说一些已经有的项目,或者说你看到别人有项目想拿过来把它改一改,改成改为己用。 那我们copate可以帮你去对多个文件进行一些很大的修改。 其实就是一下编辑很多个文件了,就不需要你去知道相互之间的依赖关系或者调用关系,有cop自己他自会分析。 然后另外如果说你是呃一个新员工,或者说呃你在学习代码,或者说你在学习看某一个东西什么的源码当源码很复杂,那你也不知道从何做起,那你用cop呢也可以很方便的去问跟代码相关的问题。 你直接去艾他,那他就可以去告诉你整个代码。 因为他会在基于你的代码库去生成这种索引,并且索引直接在本地,那等于说本地有一个这种知识库一样的东西,而且它是基于这种你的代码的语义的。 所以你问他问题,类似于某个类被哪些方法调用啊,类似于这种东西或者说某一个呃文件,或者某一个呃程序文件,或者说某一个类某一个方法有什么作用或者说意义等等,它都可以帮您做。 那另外也也可以帮你去重构和改进的代码。 打个比方,比如说你有一些代码是基于这种呃老的,假设是Python的话,老的Python二年级的版本写的那你可以让他去帮你基于这种Python三重写一次啊,这样可以就很方便嘛,因为本身这种事情也非常消耗你的时间。 那其他的像这种修复代码问题和调试啦,包括这种新项目和文件框架等等,测试生成生成代码那都可以做。 那最终其实就是提高你的效率。 然后呢,今天呢其实为了照顾一些比较零基础的,所以我们今天讲的是比较浅一点的啊,也是这一系列的第一节课。 那所以回到刚才的问题,就如果你完全零基础也能用得上吗? 就是你是一个萌新,那当然是没有问题的啊。 因为我们大家平时都用微信,相信大家在微信的那个朋友圈里面经常会看到这种小广告。 就类似于说呃什么什么花9.9块学个Python课能够怎么样怎么样。 你加班2小时能Python解决的只有三分钟。 那我相信有些人可能会点进去花9.9块买这个课,不确定你有没有学到任何东西。 但现在你用Copilot,其实你一毛钱都不用花,Copilot就可以帮你去做这些事情。 那你只要把你的诉求告诉他,他给你写成脚本,那你直接执行就行了,非常简单。 那包括像日常的这些文件处理啊,包括这种呃图表的这种呃可视化图,就是这种这种这种可视化处理,那cop都是非常擅长的。 那接下来我们就进入demo环节了,那ppt基本上是这样子啊,下面就不进入演示模式,我们直接demo了。 嗯,demo环节的话其实是需要一些准备工作,那准备工作自然呢就是需要你去下载一些东西,那这边地址都直接贴出来了。 比如说如果现在线上或者说听的观众有电脑,你也可以跟着做。 就如果你之前没有用过的话,你首先去下载一下V S code,下载完之后安装去用它B登录。 那我这边可以可以给大家看一下,就比如说呃就直接就打开这个地址啊,那根据你合适的版本去下载一个对应安装包就可以了。 那下载完成之后呢,你需要去在呃你的这个插件市场里面去装一下Copilot。 你去搜你点左边这个去搜Copilot会看到一个Copilot和Copilot chart,那这两个你任何一个去点一下安装就行了。 当你安装完之后呢,我们这边可以去去直接就登录就行。 那我这边其实也是登过了,所以我就不重复登录的。 如果你没有登录的话呢,会在这个地方,就是你你这边地方方呃你装完之后,你在这个地方会看到cop的标志,你点一下,然后这后边会弹出有一个蓝色的按钮,叫以ghub。 Com登录,你点一下点一下会跳转到ghub页面。 然后你当然你你得有一个hub账号,你可以去申请一下。 然后你点登录之后就会进入这个页面。 然后在这个过程中,其实呃我们Copilot其实是对于我们讲,为什么说everyone? 因为我们其实有各种各样的版本,我们可以看一下就是Copilot的版本在这里。 那我们其实是有free版本,然后有pro版本,有business版本and pri版本。 那对于大部分这种个人,或者说比比如说你平时只是呃你并不是一个专业的开发人员,你只是平时需要处理很多excel表格。 假设说那你用free版本就其实就挺好的,就足够你使用了。 那那你只要一个注册。 然后pro版的话呢,相对来讲就是如果你是一个个人开发者,那你只要每月花10美元,那大概可能就70块钱左右,你就获得一个这么一个无限使用的AI助手。 然后business和enterprise呢更多是面向企业用户的。 因为我们的这个呃free或者说pro是面向个人,那你的一些呃代码数据可能会拿来被用来做一些这种模型训练或者微调等等,就用来提高我们cop的AI I能力。 但是对于企业用户来讲,你如果比较在意这个事情,那对于企业用户我们不会and是承诺,绝对不会拿你的代码做任何的这种微调或者存储。 那他就是纯粹一个无状态的。 就是你一次请求过去,然后你的上下文传过去,然后给你响应完之后,那个数据就会被删除。 在你后续的交流过程中,他会每次把完整的这个上下文带过去,所以属于一个无状态服务。 然后除此之外呢,在free和pro版本里面呢,它其实是没有一个利度的版本控制。 你就是你一个人嘛,所以也不需要呃账号控制。 而business and pri呢它可以做一些细利度的控制,比如说绑定一些你的呃这种呃,so或者说你可以限定这些账号在某些特定场景下登录。 或者说他生成的代码就是要求呃必须是不允许是这种公共代码,而只能是有AI完全自己生成代码,这样可以避免侵犯别人知识产权等等。 那这一块是business and pri里面的。 那更多个人的话就是free和pro那我们看一下,即使是free用户的话呢,他的呃这个额度其实也非常充足的。 就大部分功能都有,我包括我今天demo的功能基本全部都是有了。 就包括你聊天,每个月会有50次聊天,然后补全每个月有2000次补全。 就是你是一个就是非程序员,那基本上来讲也是够了的啊,那pro版的话这些东西其实都是无限的,那就更ok了。 好,那这个基文讲完之后,就是就所以你即使是一个个人用户,你也不用花钱啊,所以你也可以去使用它,那我们继续。 嗯,那假设说你已经装完了这个Copilot,然后也登录成功了,那接下来我们看一下我们要做什么事情啊。 嗯我们看一下我们首先我们就分几个场景来去来去说,否则我们直接去干巴巴的讲那些功能就没有任何意义,我们就直接分场景来谈。 首先我们看第一个场景,你个人场景,嗯,我相信很多人也是就刚才讲需望你在工作中去操作excel表。 比如说我们打开一个excel表看一下,双击打开它。 比如说这样一个excel表,那那对这样一个表其实它的结构是很清晰的,就有两列,一列是日期,一列是温度嘛。 然后呢日期这个数据呢是按照每小时一个时间温度是每小时一个温度数据。 那比如说你平时工作中,那如果说领导让你去处理一下这些所有温度的平均值,那你非常简单,你只要选中这一列,然后用这个呃公式平均值就可以了,这没有问题。 但是如果领导提一个高一点的要求,他要求你按照以星期为维度做一个数据聚合。 就是这个数据很长,一共有一共有从21年一直到25年的数据有两万多行。 他要求以星期为单位算出每星期的温度的平均值,然后并且再要去画图,然后画出这个按照星期的趋势图。 然后并且呢他如果你们是在研究这种呃气候的变迁,可能比如说21年、22年、二三年、24年整体的这个温度趋势变化图,你希望画出几条直折几条折线,就是画在同一个图里面。 那假设这样一个要求,那那很明显这个都非常难。 比如说你以温度以以星期为单位,你可能需要人工去呃一段一段的选。 但是有几如果你是一个月还好了,但是它是几年的,你你要选几百次,你你会很痛苦。 那要么你就在这个excel里面去写一些这种excel的这个逻辑,但是其实也挺难写的那现在的话我们用Copilot的这个问题就不是问题了。 所以我们接下来演示一下如何用Copilot去解决这个问题,那也就是完全用自然语言去跟他讲就行了。 呃,那我们这边可以看一下,我这边已经是打开了一个工程,我这边重新打开一下,给大家看一下完整的就是我这边vcode打开,然后呢打开文件夹,选择我的这个工程文目录文件夹,然后他其实就已经打开了这样子。 那此时此刻我的工程里面其实是没有任何的代码文件的那接下来我要去写代码,那第一件事情要做的事情就很简单,我要去读取这个excel文件,那我们就去逐步去解析。 那这边我们其实也就用Python语言来做,比如说A P点P Y写个Python文件,然后我看一下我的解释器有没有正确。 Ok正确的。 好,那我们做的第一件事情呢要读取一个excel文件,嗯,然后这个excel的这个内容大概是长这样子的内容,我就一一起直接告诉他吧,我们选一点样本数据给他给A然后呢我们去编辑我们的提示词,嗯,ok我们直接在直接在这里面编辑吧。 我们可以在这里加一个Ctrl加I要求要求要求啊写一个呃读取excel数呃文件件,然后文件名是文文件名是我们直接把文件名也告诉他,这样等一下我们就不用改了。 命名。 然后这个文件名是这个,然后其中有两列,一列名为温度,呃,是日期,是日期吗? 我看一下记不得了。 呃,日期和温度啊,其中数据内容吧一定名为日期,呃,其中的数据样嗯如下。 好,我们就这样吧直接让A I生成。 好,生成完成了,然后我们点接收。 好,我们直接运行一下这个程序,这运行一下看一下效果。 啊,它这个程序我们可以看一下,它甚至是直接帮我们生成了一个绘图。 就是直接把这个把这个数据全部去换成一个图,然后生成一个P N G。 就我们还没有告诉他呢,他就猜到我们可能是需要画一个折线图啊。 Ok我们看一下,好图片已经生成了,那么们去运行看一下效果。 长这样子的。 那么可以看到就是这就是一个标准的图,但是这个跟我们预期的东西还不太一样,所以他目前是读完了这个数据,但是画图的东西并不是符合我们的要求啊,所以我们后面画图这部分就不要他,我们直接给他删了。 好,但是他他等于说我没告诉他,就想到这一步了。 那我们看一下呃,读取文件,然后是打印了这个头,然后把数据打出来,那我们下面全不要,我慢慢跟他说,可以看看我们原始诉求是什么。 我们是读取文件,然后按照星期计算平均温度。 那我们再告诉他,你再告诉他嗯,这样子对对,读取的数据按照星期数据聚合,每个星期聚合后的数据呃采取采用采用平均值。 好,我们再让它生成,我们这边换一个默认模型吧。 先我们在聊天的过程,跟他沟通的过程中,其实可以换模型的。 好,它又生成了,我们去接收一下。 好,可以看到他这边呃日期列呢,日期列其实是呃看一下日期列,然后呢直接按照这个数据聚合,然后生成了一个新的数据。 Ok然后我们再说一句,呃,并且我们再说把生成的数据生成的数据打印出来,打印出来。 好哦,他这边是打印出来是画成了图,我重重说一遍吧。 把生成的数据保存为csv生成的星期数据星期数据保存为csv好,我们重来一次。 好,我们去接收它一下。 好,我们再运行一次。 好好,这边可以看到就是他提示了一下我们的这个有一个k erdate啊。 那是因为刚才我没有明确跟他讲那个列名是什么,所以我们这边就把那个列名明确告诉他吧,告诉他这个直接选中全部,然后告诉他呃表格中excel表excel表中两列的标题分别为日期和温度,是日期和温度,我再确认一下。 呃,对,日期和温度,那我们直接告诉他,让他去改。 好,这下对了,接受它,然后我们再重新运行一次,重新运行点这个运行。 所以你会看到就是呃你跟AI交互的过程就是就是在驯服A的过程。 因为我今现在扮演的是一个完全不懂AI的人。 所以所以所以其实就是交流起来还是有要花一点时间的。 Ok那我们现在可以看到他已经导出一个新的C S V然后并且呢我并且在导出之前呢,我是把这个数据是打印出来了。 你可以看到这个数据呢是一个可以看到就是12号、19号都是以星期,然后这个数据呢也都是作作为平均值的。 然后新新生成的这个表格,我们可以看到是这个地方,这地方我们就直接也用excel打开吧。 呃,不转换吧。 哦这个编码问题这个无所谓,先不管它,反正我们知道它是有编码问题就行。 那可以看到已经符合我们诉求了,所以这个第一个任务就算解决完了啊,我们用Noback打开,就是看到的不是乱嘛,我们再重新开一次。 好,可以看到就日期和温度没有问题。 好,那所以现在我们第一个问题解决了。 那接下来的话我们按照星期去绘制趋势图,那我们就要求他再绘制一个趋势图。 好,再往下请把星期的平均温度数据绘制成一张折线图。 然后呢,刚才它默认已经给我们画完了这个数据,但是它是以天为单位的,所以我们希望以新技术更加跟他讲。 然后另外另外呢因为偏期数据是不能交互的那我们如果是希望做的更酷炫,肯定是希望它是交互的是一个类似于网页,那么就要求它生成一个H D M L的用呃保存为H T L格式。 好,就这样吧,直接跟他让他去生成一个。 好,我们看一下生成这个气温。 Ok好,我我们也不管它了,直接接收吧。 接收好你再跑。 我也我也不看了,就假设我根本看不懂他写的代码。 嗯,好,气温它这边是写成气温,看一下气温是哪一行哦,但然我们这边写的是温度嘛。 所以我们知道这个有这个问题,我们当然也可以人直接改了,那除此之外呢,你也可以让AI给他改。 那现在其实呃他是报错嘛,报错你可以去选择这些东西啊,然后去直接然后或者说你在呃聊天里面去艾特你的这个艾特你的终端,让他去解决。 当然对于这个问题我们就不浪费时间了,我们就直接去解决这个问题。 因为我们知道我们的列名是温度,就温度好,我们再运行一次再运行一次。 好,新生成一个这个H文件,我们直接去打开它看一下效果。 好在这边重新双击打开它一下,看到没? 是这样子,我们看一下这个效果怎么样。 Ok这个看起来非常符合我们要求哈,是一年呃一个一个星期是一个点。 然后呢他没有画那个横坐标横坐标因为星期太密了嘛,所以它是以年份和月份,那么可以通过这个来移动。 我们比如说选中为段,可以看到他这个交互性非常好。 但如果我们再修改提示词,让它比如说你鼠标移上去,它提显示当前星期的这个提呃这个这个这个日期以及平均温度就更好了。 那时间关系我就不演示了,就这样其实基本上符合我们要求了,就是以呃以星系为单位去画整个这个图,那比起一开始他所画出来的这个P N G的这张图,那其实可可观察性就可看性就好多了。 那这个明显密度过高,非常不不便于展示,而且也不是一个交互性的东西。 好,那这个符合我们要求,所以第二点我们也完成了。 那接一步看第三点要求,嗯,按照年份叠加显示供电数据在图一没常生气候变化。 Ok那我们再提一个要求,我们再在下面去给它加要求,放在最下面嗯,这样直接去写这一句,按照年份叠加形式在同一个图上看气候变化要求要求呃横坐标是是一年的呃月份,一年的一年一年内的新期数,呃,呃每年用不同的折线显示,而且颜色需要有区分。 好,这样子就是你跟他讲的越清晰,就逻辑越清晰,它生成的效果越好啊。 但如果你跟他讲的不清晰,他生成的东西可能就不符合你的要求了。 好,我们可以看一下,它是迭代了一下,按照年尾单位,然后最后又生成了新的yearly Weekly Report temperature。 Ok好,那我们就直接接受它,然后保存一下再重新运行一次。 那它每次运行其实上面这些东西都会完全再跑一遍啊,所以我当我比如说我们换一个新的数据啊等等,他其实也会帮你生成一些全新的东西。 好,生成了一个新的weekly的这个temreport,那我们希望它的效果是符合预期的。 这样的话我们可以节约点时间看一下是这个东西。 好,非常符合预期。 可以看到这这里面我们有几年啊,有我们整个数据是从21年开始到25年。 然后呢每年的这个时间在这里也标的很很清楚了。 那么同样的我们可以在这里去选择某一段,然后它这里面就是年初和年尾它自动连起来,它这边处理的不太好,这地方是可以优化的那我们就就就不优化了,就就大概就先这样了啊,我们就我们就继续继续吧。 但是这个其实对于我们呃老板来看,或者说对于咱们自己来讲,其实这个已经非常漂亮了。 比须我们去在excel里面去折腾那些excel里面的画图等等,那这个明显要酷炫很多。 那当然如果你用多了之后呢,你再仔细看看这个源码,其实也说的都非常清晰,就包括他命名的呃就画图这个颜色可以看到coli这color它定义了一个这个东西,然后呢根据这个table十的这种呃颜色地图来去去去去设。 那所以如果你把这个东西设成一个类似于一个列表,你可以明确的自己指定颜色都可以的。 当这个你你甚至可以自然语言去跟他讲,你说我只要红绿黄等等都没有问题啊,那我们就先继续这个就先放在这儿啊,我们现继续下一个。 所以个人场景问题一是解决了啊,所以我们之前这个地方讲的这些小广告啊,就没必要浪费这个时间和精力。 就是他再教你都没有AI来帮你做更快。 然后在这个过程中,我们其实我看一下,就是在这个过程,虽然我我写了大多一大一大堆东西,你可能也不知道他在干什么。 其实我们也可以让,因为它自动生成了很多注释嘛。 那么假设我们希望我我来看懂这个东西,我希望这个注释是中文的那我们也可以让它全选,然后cl加I呃修改所有的注释为中文这样子,那他会直接去帮你改这些东西啊,可以看到他挨个去给我们改了,ok然后我们去接受它就可以了。 然后呢,如果这个东西你还是看不懂它到底在干嘛,那我们也可以在这边去艾特他,去让他解释。 比如说我们去呃直接就请解释,请细致,请仔细的解释这个程序。 好,然后他会挨个去跟你讲。 可以看到就非常细致。 那具体哪一段如果你不懂的话呢,你也可以分别去选择。 比如说前面这些东西都好横好懂,比如说像这个循环我不太你不太理解,你可以单独选各这一段,然后右键Copilot,然后explain解释,然后他会针对你所选中的这一段来解释。 可以看到没? 这个这个就是选中的代码段中就是非常细的跟你讲,甚至他这里面也提供了这种快捷键,就是具体到底用什么啊什么的,就是你根据他他就是你最好的老师,就是A就是最好老师了。 好,那么这个就先这样子,我们继续下面的议题哈。 嗯那第一个解决完,我们看第二个。 第二个比如说我们平时工作中需呃,就打个比方,比如我们看到别人的架构图,我希望复刻别人的架构。 我希望呃就是就是自己也快速在我的环境里面部署一套这样的这样这样一套东西。 那在呃原传统模式下,你可能需要逐个去分析,要去研究各个东西怎么部署啊,但是现在呢有我们的AI I它是有视觉的,你可以直接去把这个图截图丢给他。 那比如说我现在就把这换行一下,截图丢给AI让他帮我们生成。 如何在A云上,就是我们微软云上去部署这一套呃架构的脚本。 我们直接去截图,ok然后截图双击,然后直接在这里面去贴。 刚才这个对话,我们就不要它,我们直接去把它关掉,它关掉好让我们直接贴在这里,可以看到粘贴的图像,我双击就能打开这个图了,这就直接贴过来的亲生成请请基于这呃基于这个架构图生成在A热云上云上部署呃这套服务的t terror。 我嗯脚本好,我直接让他去生成。 好,这一次没形,我们再再问一次,换一个问法。 请基于这个架构生成脚本,直接把脚本写出来即可。 好,可以看到出来了,就刚才呢他倔强了一次,估计是周末啊,现在就你再问一次。 换一种不同的问法。 因为因为这个问题是什么? 因为我们co在使用这个AI的过程中,他有我们是负责任的AI所以你讲的话,他其实会经过一层这种你可以理解为呃判定,就判定你是否规范,就是指的是呃就不涉及一些非工作以外的事情。 对,所以他有的时候会呃你就多试多试一次或者换一种问法就会好的很多。 那所以可以看到它就是完全生成了这样一个form脚本。 那这样的话你去基于这套脚本,然后把它直接用你的A C I或者说呃就直接去部署就就好了,就很方便。 然后当然啦如果说你要求去呃去解释这个图或者说怎么样也都是没有问题的。 甚至说呃你平时去看到一个别人的这种网站,然后你想自己去写一套这个跟他一样的网站的源码,那你同样也可以甚至说你如果你是那种呃做这种app开发,你你把那个安卓或者说iOS的截图直接丢给他,那他也能帮你生成对应安卓或者iOS代码。 都是没有问题的。 因为我们现在我们的这个cop不仅仅是在这个vs code里面能用。 你在安卓studio或者说x code里面都是可以用的,就者是跨平台最多的这么一个呃编程助手。 好,那这部分就是我们的视觉,也是简单说一下。 对,然后大家额外讲一下,就是因为视觉都说了,但我们语音肯定也可以啊,所以这边你可以看到有个语音聊天,你点一下你也可以跟他语音讲话,也是没有问题的啊。 好,那我们继续。 那第二个场景基本上就说完了,那接下来我们看一下第三个场景。 第三个场景什么呢? 就是比如说呃你已经你在用这个AI工具之前,用我们cop之前啊,有人问问题呃呃是否学习项目说明文档? 这个后面我们再再再单独去讲吧,我们先把这个议题讲完。 就如果说你已经有了一个工程,就是过去写的代码。 然后现在呢在当前节点你才接触了我们Copilot这个工具,你希望他来给你改一些代码,那当然也是没有问题的。 那这边我就以这个工程为例啊,呃那这个工程是一个什么呢? 我先给大家简单说一下,这个工程是一个这个工程。 好,我们先打开这个工程,我们先看一下这个工程的效果吧,就比较直观,也是一个打开就能看的东西。 那它其实是一个游戏,我们看到我们刚刚启动这个游戏呢,这个游戏就是有一个是个贪吃蛇,这个小蛇就朝右就死掉了,我们再刷新一次,ok我还趁着撞死之前我就操作了一波,ok又死了,刚启动就死,我刷新一次就是死一次。 那所以这个游戏其实很不完备。 那么他有几点问题,就是就是我这个ppt里面已经有有归纳了他的问题。 就首先呢背景色是黑色的,我眼都要瞎了。 然后呢你吃完食物之后呢,他也没有任何特效,那我希望增加闪光特效。 那初始化方向呢,它默认就是朝右边走,我可能来不及反应就死了也不好啊,包括呢他也没有积分,就是我希望他有一个吃完食物就加一分的这这么一个计分机制。 那这样一系列需求呢,就是我希望对我现有的工程做的一件事情。 那我这个事情做起来就很简单,我们同样直接在这个Copilot里面去ob里面去打开我们的工程。 我们打开文件夹,然后选择刚才这个工程去打开文件夹。 好,然后擦掉,嗯,这些都不要好,那这就是我们的源代码。 源代码有一个说明,然后有一个前端的csi文件,有一个G S Java cript的这个呃逻辑文件,还有一个前端的这个展示页面。 那现在我们的需求很简单啊,就是我看一下这里面没写东西吧,就把这个东西删了。 好呃,先把这个干扰项删了,先给它干掉啊。 好,这就是一个纯粹的一个工程,然后里面涉及到几个文件,那现在我要去实现我的这套呃修改或者说需求,那我们要做的很简单,直接复制这个这些东西,复制一下。 然后呢,我这边呃我这边这边一二三是没有的,我给他加一个123,先插了给它加。 增加如下特性,这样更有条理一点,就是AI就是理解起来会更轻松,效果也会更好一点。 我们就尽量给他讲话要有逻辑性。 好,我们直接把这些需求一下丢给他。 好,我们看一下,我们直接去这边有一个cop的编辑,就是一下可以操作多个文件。 那可以看到我这边已经是我先点一下完成吧,然后可以添加文件,然后呢,把打开编辑器的文件都给它引入进来,可以看到有index,然后style read me read me就不操作了吧,关掉吧,不保存ok可关掉,不保存好,按一下嗯,再刷新一次应该没有问题。 刷新一下,看一下这个游戏还是比较不符合我们预期的,没毛病。 好,我们继续。 好,我们现接下来去把我们的需求告诉他,我们直接去就直接说就好了。 然后他会在我们所选中的这些文件里面去分析要怎么改。 可以看到他首先分析我们的呃前端这个H文件要加一个积分功能。 可以看到加了一个积分功能默认是零分。 接下来改我们的这个app我们的操作逻辑给到他有个黄色光标,就是他是会逐个帮去帮你改。 好,我们等一下再加入一些逻辑。 那这一块可以看到就是呃更新记记分的逻辑。 然后这一块呢是闪光特效,就是每吃到蛇了就给我们改一下,就是做一下那个闪光特效,然后呢这个背景色也改了。 好,那我们基本上就差不多,我们就保留它这些所有内容,保留保留保留保留。 好,我们都保留完了之后,我们去文件保存一下。 好,保存完之后呢,我们直接去刷新我们的这个游游戏,别刷新。 好,可以看到那基本符合我们预需求。 我们还就是首先积分是有了,然后初始化呢它也没有直接往右了,它也没有动。 然后呢我们接下来去玩看能不能符合我们要求哦。 我我刚才键盘操作向右啊,完美符合要求,可以看到没? 就当我吃到这个这个这个苹果的时候呢,就闪了几下,这样明显就就更加刺激了。 Ok好,一次性达到效果好死吧。 好,所以这这个需求我们其实也完成了,就是一次性搞定。 然后刚才我们用的模型呢,其实是一个4O的模型,是我们的最基础的模型,就是他都已经这么强了。 那其他是一些O1O3,包括g 4.5、cloud三点,像很多如果关注AI这块肯定也知道,就是这些其实都是更强的模型。 那像我这个场景呢也是比较简单,就是一个小游戏而已,所以就是4O1次性搞定,所以非常完美。 我里面以为我还要再跟他沟通几次的,就这次他还挺牛的。 好,那这个呃场景我们也就讲完了,这是由这就是整改咱们已有的工程的这么一个场景。 然后呢,我们也是能够呃整改你已有代码。 就是因为刚才我是对这个代码其实不太懂,我就或者说我自己懒得看了,直接帮让他改。 那有的时候呢一份代码他其实是我自己很清晰知道我要改哪里,那我可能就直接人去改了。 那这时候改完之后呢,所相关联的那些东西他也会猜到,并且自动帮我们改。 因为因因为有的时候呢就是比如说一件小的事情,你去用让他改,其实属于杀鸡用牛刀嘛。 就比如说我我我改一下就结束的东西。 好,那我们再回到刚才那个项目里面去,在这边去来做这个实验。 嗯,然后这个实验呢是一个呃比如说我们定义一个类,这个类是一个平面上的点,然后它有一些属性,那我们再把它修改成3D的那我们看一下它的关联性是否会被自动更新。 好,我们去就在刚才这个脚本里面为我们新建一个脚本吧,新建一个再再建一个程序,比如说叫慢程序吧,慢点P1。 好,我们去进入。 取消ok卖点Y然后我们就直接定义一个类。 我们直接因为其实也能通过这种刚才我们是内联聊天模式,也可以直接是通过写注释的方式。 比如我们就写定义定哎呀哎呀中文定义一个呃平面上的点的类。 好,就这样子我慢回车把里面先关了。 好,class point出来了,平面上点的类ok基本上符合预期。 假设我们还要再弄一个方法,比如说计算平面上两个点的距离的方法,来计算两个点的距离啊,get distance也出来了,好,非常符合语期。 那这时候我们再实例化一下,比如说就我们直接写一个吧,if name啊出来了,好,直接tab键就ok了啊。 16,然后两个的距离,然后后面还要再ta一下,然后再ta一下。 好,那我们去直接运行它看一下效果。 好,可以看到符合预期。 就平面上的这两个点啊,基本上都是符合预期的啊。 好,然后我们接下来去做这种修改。 比如说此时此刻我们就这么多很清晰的东西,我们就直接改我们直接改把它改成3D就改成一个平面上的点的类,我们就改成一个立体空间吧,立体空间中的点的类好看他能不能知道? 好,可以看到就是他这边直接的就是根据这个立体空间猜测到我们需要增加一个维度,那我们就按下tab键,就这时候我光标其实一直在这,我没有动,就是我直接按鼠标,我按下键盘的tab就行了。 Tab它自动猜到要增加一个新的新的这种呃Z轴的初始化,然后这个获取它的参数呢也是自动指导有Z轴,然后另外计算两个点的距离呢,可以看到也是就是自动的需要增加一个计算两点距离的那个那个内容啊。 好,然后最后的下面哦下面他也猜到了。 Ok但这个点他好像忘掉了呢,这个点我们给他一点时间啊,这个点他没想到。 那这个点算了,我人人工给他写一下吧。 好,我们再运行一下。 好,可以看到也就出来了。 所以刚才这个过程中,我其实就是只是改了一个呃定义,那我们没有做任何事啊。 这边可以看到他也发现我们这个这个这个这个怎么说呢? 呃,这个这个注释也不对,也给我们改一下,我直接按一下tap就可以了,所以这就是一个这种A的自动感知。 你改某一个地方,他就知道下面你相关的地方也要改,他就直接去帮你改了。 然后你只要按tatap tap就可以了,你不就不需要做其他事情啊,就非常方便。 Ok然后这个就是这个场景下,就是你需要精确的修改的时候。 然后另外的话呢,我们刚才讲就是我们刚才其实跟他呃AI的沟通过程中,他其实有的时候一开始给我们生成英文嘛,后来我跟他讲中文,他就是用中文了。 那而且AI生成的这个东西呢都非常的官方化,就一股子机器人的味道。 那我比如说希望让他讲话是比较可爱一点的,我希望让我工作比较开心一点。 不管怎么做呢,我可以定义AI的这种呃规范,就或者说你可以定义他的预制,他的性格。 那也很简单,你只要在你的仓库里面去定义一个呃约束就行了。 就是get thub其实有多种方式,我这边选选一个最简单的方式去定义定义get thub文件夹,然后再创建一个叫做Copilot instruction ctii o点M D的文件,然后在这里面呢用一个自然语言去跟他讲就好了。 那我这边直接去把它的这个定义给它放进去。 好,就是要求两点。 第一点甚至回答说用可爱的语序。 第二点然后呢都用呃并且并且以比如说emo结尾吧,emo结尾例如这样子生成的函数必须带有注释,必须带有注释,且且注释要包含功能描述,且注释要示中文吧啊大概这样子。 例如这是一个实例函数,类似的生成的函数必须有特征。 当然这你可以写很多东西啊,这你也可以直接按tap键就过来了。 那我们这边就不搞这么复杂,就直接就这样子吧。 好,就这两点约束。 那接下来我们重新生成一下刚才的这个立体空间的类的这个东西。 好,我们就直接去全删掉,我们直接让AI来重新生成一次。 Ok好,可以看到生成全部都有注释了啊,接束。 但是呢因为在这个过程中,它其实没有涉及到它讲话是直接生成代码。 所以我们刚才的这个规则里面,就是这个规则是生效的,但是这个规则没有体现到。 那如何体现这个规则呢? 我们去让它解释这段代码,它就会用一种那种语气来了。 比如说我们就右键,然后这里然后去去去去说明看一下他是不是会可爱一点啊。 可以看到就是比起上面那个一本正经,这种一本正经的可以看到明显可爱多了啊。 就是当然我这边定义的就是非常死板,我就是直接指明了这个一级。 如果我在我的这个里面不要明确的说这个一级,它可能会换不同的一级啊。 所以所以就是当然你也可以就是说一些别的话了,他现在就是这样子,所以效果大概是这样子。 所以当然这这个用法呢就我这边是搞笑的。 实际中你可以去呃约束一些,比如说它生成代码,比如说你是用呃Python,然后有一些你特别想用的包,或者说你是别的语言,你有一些特定想用的包,或者说呃特定的函数的命名方式,比如说是驼分式或者下划线式,你都可以在这里面写。 当然也有那种就是点呃vcode里面,settings里面去更做更细度的设置。 那这块就是大家可以呃自己探索,或者会之后的我们的讲就是后续系列课程里面会有讲了,我们今天就到这里了。 就就大概是这样子,是这个效果。 然后接下来呢那这是定义AI的规范。 那接下来我们讲一下这个写作场景啊。 嗯其实我们讲写代码,很多时候我们希望呃大家共用一个代码仓库去做事情的话呢,呃关键的一个事情就是呃做代码review。 就比如我变更,我希望知道他review他改了什么。 那如果说我们呃通过A来做review,那这个事情就变得很简单,否则就是做review的那个人要走读很多代码很辛苦嘛。 那这块的话我们give hub其实也就直接有。 因为我们copate不仅是在你的ID里面,在你的网页上,ghub上也是有的。 那么这边可以看一个例子啊,就比如说这个例子,这个例子是我的一个呃项目,然后刚好就今天早上然后有一个人给我贡献了一些代码。 当然他改的内容就很简单,就是改了一遍这个东西。 那然后呢我就直接在这边去把这个copiate作为我的re就review人,可以看到copiate过来就一同分析就是他我他到底在干什么。 我看了看,然后他下面也讲了一些这种就是具体干了什么事情,我看到他觉得没有问题,就是AI re的很好,那我就直接给他合了就没有问题。 那这个属于一个非常简单的场景,然后他也没有任何问题的场景,所以就就很方便。 那另外的话,如果他呃想要合入的代码是有问题的,那AI呢甚至我们的cop甚至会自动帮你去修复这些问题,把这个代码就直接改掉。 比如说像这样一次合并请求,他改的文件还挺多,改了七个文件,然后一大堆东西。 那然后有什么circle啊,巴拉巴拉,我还有那个4S文件我也不想看,我也看不懂。 假设说那我也同样艾这个Copilot,那可以看到copireview完之后甚至能直接帮你改代码中不合适的地方。 比如像这种circle语句写的不很不合适,那直接改改完之后你要做的事情就很简单,直接commit,直接就提交到当前的这个原始分里面,直接就改啊,就就非常方便。 所以对于review而言,就是不仅仅review,甚至是直接帮你改代码。 好,那这部分是在review过程中。 然后另外其实更进一步啊,呃如果说嗯就是你是用behub去做代码管理的话呢,你很多需求根本就不需要写拿到这个呃本地的这个编辑器里面来做,你直接就在线就做掉了。 就比如说刚才我们举的这个例子,那这个例子如果你在线做,我们进用giup b work space就直接做做掉了。 那我这边举例一个例子,就和那个有点类似。 就比如说我有一个计算器,然后我希望给它增加一个新的乘法,那给大家演示一下,嗯,在这儿然后在这儿比如说我这个仓库,我们可以看一下源码,源码里面有个计算器,然后计算器呢就有定义了一个加法,还有一个减法。 然后我的主程序呢是调用了这个加法减法分别跑了一次。 然后我也我的对应的单元测试测了我们的加法和减法。 那假设现在我是一个比如说产品经理,我给我的这个下面的开发人员就是提了一个新的需求,就增加一个乘法的需求。 那这个需求呢正常来讲肯定是我代码突到本地创一个新的分支,基于这个需求写代码,巴拉巴拉写一堆,然后再推上去,然后再review,就刚才那一系列过程。 但是其实现在都不需要直接在云端就可以全完成。 那对于这个需求我们直接可以把它用work space打开,然后呢它会自动的基于我们这个需求做这种头脑风暴,并且会分解到底要怎么解决这件事情。 好,可以看到它自动的在做头脑风暴,增加一个乘法,然后它会分析你这个仓库里面的所有文件,可以看到现在没有乘法功能,需要在这个里面加乘法,这个里面加引用乘法,然后这个地方做测试乘法一大堆,他已经想好了,那我觉得他头脑风暴很ok如果不ok你可以在这里add item加你的一些想法。 然后如果头脑风暴觉得ok你可以直接基于这个生成你的这种呃修改计划,直接生成plan。 然后这个plan呢是针对你每一个文件非常细节,具体他要做的事情,然后你检查一下也觉得他ok没有问题,那你就直接去implement,就是实现这些文件的修改。 你直接点一下,那可以看到它对于你这些文件就咔咔开始修改。 然后这个过程其实跟你在之前我们ID里面,在这边直接用那个it模式有点像。 但是呢就是这个是更原始,更接近你的原代码库的那一段就直接就做了,就不需要到本地来做。 而且因为是云端用的云端算力,然后他就不需要这种api的交互速度会快很多。 那可以看到它改的非常完美,就增加了一个乘法,然后呢格式甚至都遵循我们之前的那种格式。 可以看到就该有这个这个呃注释的地方就有注释,该有怎么样就怎么样,就就很像啊,因为是有上下文的,他其实也是有这种index ing在里面的。 然后对于这种这个单元测试也做的很ok那这时候觉得ok没有问题。 那我们直接点右上角create request,或者说直接去这个这个推到一个新的分支,或者说直接去创一个P R,然后我们再直接去合合入就行,这一个标准开发流程,所以通过这种方式就简单很多。 那甚至说比如我现在有一个新的,就我现在只加乘法嘛,我希我希望他再加一个除法,那我可以在这边直接再继续跟他沟通,再再增加一增加除法运算无法运算。 好,然后他就会同样的去一大堆分析,然后呢要做的事情,然后呢,同时也会直接去修改我们刚才的这些变更。 好,我们就等一下。 好,可以看到就是除法也出来了。 好,时间关系,这个下面两个就不等了,我们接先继续。 那所以的话呢,这就是一个协作上的。 就是当你有一个团队,那大家去在一个代码里面相互去协作,那这个两个方式其实就会好很多。 那当然除此之外,如果你是有意思有议题,刚才讲的这个议题啊呃这个这个地方有议题,那他也可以去基于你议题去做一些分析。 然后甚至你的P R也可以把你的合并请求直接在这个我们的这个work space里面去打开,直接打开然后去看你这个P R改的到底对不对,都是可以的。 嗯,好,我们接下来看一下。 那刚才讲了很多,其实呃我刚才演示了很多基础的在ID里面的功能。 但我们的ID支持不仅仅是我刚刚演示的这个vs code,我们其实支持最全的ID甚至说一些比较古早的。 我不确定线上有没有人用这种eclipse啊,eclipse我们都支持。 像这种你做iOS开发呢,然后你如果你是极客流的,你要用M你接brand Java开发,或者说你是C开发,你用vs我们都是支持。 然后呢,模型也是支持非常多的模型。 刚才也给大家看到,就是我们支持的模型有这么多。 然后甚至你聊天就是不是聊天,就是你代码补全的模型我们都有支持。 四哦,给大家看一下呃,配置代码完成可以看到有一个模型,那可以看到支持3.5甚至补全都用的四维模型,所以都是非常高质量的模型。 嗯,然后当一部分是ID色功能啊,然后另外也是有这种云端功能。 刚才我演示了work space,其中们还可以自定义模型,也有这种在线的知识库,甚至我们还能去于AI给你做漏洞修复,就直接扫出来安全漏洞,直接AI修啊,直接你点一下修就结束了。 然后呢,当然除此之外,因为get up毕竟是微软出的那微软其实前两天刚刚是50周年生日,就是50年下来一直其实算是比较也算比较领先。 所以合规性层面就是微软也是非常呃注重的。 就是我们如果你是管理员,你可以在中去配置,比如说不允许推荐你的公共代码,就指的是呃可能侵犯别人隐私代码。 包括合规性、隐私性以及这种用户管控,就是都都是非常强的。 就如果你是一个企业来讲,就可怕的都是你的最佳选择。 然后另外ID层面就是适配性来讲也是最广的。 就不论你呃公司里面有这些人在用什么样的奇怪的技术债,那所有的ID基本上来讲都是支持的。 嗯,然后另外最后快速讲一下就是数据流动,就是我们在你在你在ID里面其实是需要和我们的这个AI的大模型做交互。 然后中间我们会有一层这种服务层代理,那这里面会做认证啊,包括这种呃就是内容的这种呃合规性检查这种东西都是一起给你做了的。 你再快速说一下,两三分钟再快一点。 然后另外的话呢,你作为企业也可以去呃度量你的这个cop的这种情况。 那我这边直接打开一个我这边搭好的一个我自己的一些demo环境。 那可以看到。 那这个环境就是可以看到是你play的一个使用情况。 那你可以看到不同的组织,然后不同的团队,然后不同的语言,你可以自由的过滤。 比如说像这些这个各个团队的一个使用情况,然后各个语言的使用情况,然后各个编辑器的使用情况,以及你chat聊天的情况,以及整体的用户的使用情况,以及你不同的呃语言和编辑器的组合情况。 那打个比方,比如说我们随便看一个呃语言的情况吧,比如说我们整体的这个语言情况是是Python用的是最多的嘛。 比如说我们换一个团队,换一个这个团队来看一下,那可以看到这个团队就是Java用的最多,然后这里面数据都是联动的。 比如说我们再再增加一个数据,比如说我们看接brand里面啊,可以看到jbrand里面,在这个团队里面接brand用的就是Java最多的那那些用呃其他的呢看vs code啊,vs code是cdp用的最多,那vs code呃vs code里面是Python用的最多。 呃,visustudio是这种cp用的最多就是这些数据都是联动的。 通过这种方式呢,你可以知道你们企业中就是不同语言,不同技术占的一个呃就是占比以及使用情况。 就不仅仅是八的使用情况,也包括你们技术站的分布。 那也方便咱们去针对不同的技术站做一些培训啊等等都是可以的。 所以这部分就是呃最后的这个议题就是使用的情况。 对,可以,谢谢。 然后这也有一个I Y这个就不不谈了吧。 speaker 1: 我们就谢谢吧。 好,非常谢谢尹老师的精彩分享啊。 然后呢这个是前面会有一个问题是说呃能否让那个咱们的模型去学习他的项目的说明文档,然后之后再提问呢? speaker 2: 啊,这个是可以的,嗯,有有两种方式啊。 首先你可以在呃把你的那个知识文档都写成这个东西,就是copiinstructions。 然后这个也是支持定义一些非常大的非常多的内容的。 就比如说你一些规则规范,你就一条一条在这里面写。 那后续你再跟他交互问答的时候,都会基于这个东西来回答。 然后这里第一方面,但这个本质上讲是一个提示词工程,就等于说你在每次跟呃AI做交互的时候,会把这个作为上下文传过去。 但是它的模型本身是没有改变的。 那如果你要做模型本身的改变呢,你需要去微调模型。 那这块我们也是提供这个能力给客户的。 但是这时候需要你是一个give的企业版用户,然后你把你的仓库传到ghu里面,然后我们可以基于你的仓库代码做微调,做训练。 那这样的话后面你会生成一个呃这种呃模型的一个专属的这种url然后你把这个url配置到你的Copilot里面,那这种你公司内的人就可以用你的专属模型来进行补全了。 那这时候你历史的一些代码,或者说呃企业内自己的一些库啊类啊等等,都会被AI就是补全的时候思考到啊。 speaker 1: 嗯,好,感谢尹老师哈啊然后我们这边还有一个新的问题是嗯老师能不能帮忙说明一下GPT t负O和其他模型的一个区别。 speaker 2: 嗯,4O是这样子的,我们可以看到在4O中呢它是一个没有preview,其他全是preview。 所以4O模型是无限使用啊,无限使用就是没有任何限制的,然后其他模型呢是有限制的那不同的模型是可能是不同也不叫可能,就是其实不同加呃发布的嘛,就各就各有各的好,但是preview阶段其实会有使用上的限制。 那比如说像其实是我我用这种比如说g 4点或者说呃cloud就是73.7,就是每12小时也只能用十次。 就这些模型的成就是每单次的这种对话成本会很高。 所以它而且有的时候也不是特别的,也不叫特别稳定,就成本很高,所以属preview有限制。 然后4O呢是量大管饱啊,所以就是四欧相对于别的呢,就是对于一些简单的问题,包括我今天演示基本全是四欧,就是普日常问题是没有问题的啊。 但如果咱们有一些比较复杂的场景,你觉得4O就问了几轮都搞不定,那我个人建议你是可以试一下更高级的模型。 speaker 1: 嗯,好,谢谢老师。 嗯,然后我们这边还有一个最后一个问题啊,就是很多人都会非常关心嗯get up pilot free相关的这些产品是嗯在中国是那个可以使用的吗? 啊。 speaker 2: 是可以使用的是可以使用的。 speaker 1: 嗯,好嘞好,谢谢老师。 呃,那咱们今天的时间刚好也差不多了,谢谢尹老师,那也谢谢在线的小伙伴们的收看。 好,谢谢大家。 那我们今天就到这里了,谢谢。 好。 speaker 2: 谢谢大家。
最新摘要 (详细摘要)
概览/核心摘要 (Executive Summary)
本次分享是“玩转 GitHub Copilot”系列的第一期,由微软开发者生产力全球黑带组的尹雪峰老师主讲,旨在从入门开始,通过实际操作演示,解锁 Copilot 的更多实战技巧。尹老师强调,GitHub Copilot 定位为“副驾驶”,是一个辅助编程工具,而非完全取代开发者的“主驾驶”,但其能力自2021年发布以来已显著增强。Copilot 不仅服务于专业开发者,也适用于无编程基础的用户,帮助他们通过编程解决日常工作问题,如自动化处理Excel表格、Word文档等。
分享核心内容包括:Copilot 的多种功能(代码建议、多文件编辑、代码问答、重构、修复、测试生成等);不同版本(Free, Pro, Business, Enterprise)的特性与适用人群,其中Free版本已能满足个人非专业用户大部分需求;以及一系列实战演示。演示场景涵盖:1) 利用 Copilot 处理复杂 Excel 数据(按周聚合、多维度绘图);2) 利用 Copilot 的视觉能力,根据架构图生成 Azure Terraform 部署脚本;3) 对现有项目(贪吃蛇游戏)进行多项功能迭代和代码修改;4) 展示 Copilot 在修改代码时(2D点改为3D点)的上下文感知和自动关联修改能力;5) 通过 .github/CopilotInstructions.md 文件自定义 Copilot 的行为和沟通风格。
此外,分享还介绍了 Copilot 在协作场景的应用,如在 GitHub上进行代码审查(Copilot可辅助审查甚至提出修改建议)和利用 GitHub Workspaces 在云端直接进行代码开发与需求实现。最后,尹老师提及了 Copilot 广泛的 IDE 支持、多模型选择、企业级合规性、数据管理及使用情况度量等生态特性,并解答了关于模型学习项目文档、GPT-4o与其他模型区别以及 Copilot Free 版在中国可用性的问题。核心结论是 GitHub Copilot 是一个强大且易用的AI编程助手,能显著提升各类用户的生产力。
GitHub Copilot 简介与定位
主讲人:尹雪峰 (微软开发者生产力全球黑带组)
GitHub 与 Copilot 的定义
- GitHub: 一个在线的、基于 Git 的代码托管和协作平台,广泛用于代码管理和全球开发者协作,尤其在开源项目中。它也支持私有化部署(GitHub Enterprise Server)。
- 尹老师提到:“但凡是你想做一些开源的东西啊,那其实都是需一般来讲也不叫都是大家都会把代码放到GitHub上。就包括像比较火的这个问题,本身有deep产生的这个问题,那deep也是把它一些共享的一些东西啊,包括前两天跟共享的什么4S那些东西也是放在up b上”。[此处"deep"和"4S"指代不明,原文信息有限]
- Copilot: 英文原意为“副驾驶”。微软的中文宣传中也常称之为“GitHub副驾驶”。
Copilot 的核心定位:编程副驾驶
- 尹老师强调,Copilot 本质上是一个辅助性的编程工具,是“副驾驶”,而非能完全独立完成复杂项目的“主驾驶”。
- “任何一个AI的这种编程助手,其实都本质上讲都是一个辅助性的一个编程工具。”
- “你要真正构建一套呃一个真正的一个呃服务,就是从前端到后端整个一体系包整个体系这样的东西,包括你要把它部署上去,包括这些所有的东西,你是不在当前阶段是不太可能就是完全完成的。”
- 尽管如此,自2021年发布以来,Copilot 的能力已大幅提升,能处理远超初期的复杂任务。
面向用户:从开发者到普通用户
- GitHub Copilot 官网将其定义为:“AI编辑器每适用于每个人的AI编辑 (AI editor for everyone)”。
- 这意味着即使用户是完全没有编程经验的小白,也可以利用 Copilot 将工作中的机械性、重复性问题通过编程方式解决。
- “Copilot帮助你去编程,然后通过编程的方式去解决你工作中的很多问题。”
GitHub Copilot 的核心功能与应用场景
主要功能概览
- 根据上下文生成代码建议。
- 对多个文件进行大规模修改,Copilot 能分析文件间的依赖和调用关系。
- 针对代码库进行提问和理解(基于本地代码语义索引)。
- 代码重构和改进(例如,将 Python 2 代码升级到 Python 3)。
- 修复代码问题和辅助调试。
- 生成新项目和文件的框架。
- 生成单元测试。
- 最终目标是提高效率。
针对零基础用户
- 尹老师提到,Copilot 可以帮助零基础用户完成一些常见任务,效果可能优于市面上的“9.9元Python课”。
- 例如:日常文件处理、数据可视化图表生成。
- “现在你用Copilot,其实你一毛钱都不用花,Copilot就可以帮你去做这些事情。那你只要把你的诉求告诉他,他给你写成脚本,那你直接执行就行了,非常简单。”
实践准备与版本选择
安装与配置
- 下载并安装 VS Code。
- 在 VS Code 插件市场搜索并安装 Copilot 和 Copilot Chat 插件。
- 使用 GitHub 账号登录。
版本与定价策略
- Free 版本:
- 适用于个人用户或非专业开发者。
- 功能基本齐全,尹老师当日演示的功能 Free 版大多拥有。
- 额度:每月50次聊天,每月2000次代码补全。对于非程序员基本够用。
- Pro 版本:
- 适用于个人开发者。
- 价格:每月10美元 (约70元人民币)。
- 聊天和补全等功能无限使用。
- Business 和 Enterprise 版本:
- 面向企业用户。
- 核心区别:企业版承诺不使用客户代码进行模型训练或微调,数据在请求响应后即删除,是无状态服务。
- 提供细粒度的版本控制和账户管理(如SSO绑定、限制账号登录场景)。
- 可以设置策略,如要求生成的代码必须是AI完全原创,避免侵犯知识产权。
实战技巧演示 (Demos)
尹老师通过多个实际操作案例展示了 Copilot 的应用。
场景一:个人办公自动化 - Excel 数据处理与可视化
- 任务背景: 处理一个包含从2021年到2025年每小时温度记录的 Excel 文件(约2万多行数据)。
- 读取 Excel 文件。
- 按星期为单位聚合数据,计算每周的平均温度。
- 将聚合后的数据保存为 CSV 文件。
- 绘制按星期显示的温度趋势折线图 (交互式 HTML 格式)。
- 在同一张图中,按年份叠加显示每年的温度趋势(不同年份用不同颜色折线),横坐标为一年内的星期数,用于观察气候变化。
- 操作过程:
- 在 VS Code 中创建 Python 文件 (文件名
A P.py,推测为app.py或类似名称)。 - 通过自然语言逐步向 Copilot Chat 提出需求,Copilot 逐步生成 Python 代码。
- 交互与纠错:
- 初次读取文件时,Copilot 甚至主动生成了基础的 PNG 格式绘图。
- 在指定列名时,通过向 Copilot明确 Excel 表中的标题为“日期”和“温度”,解决了
KeyError。 - 在生成 HTML 图表时,手动修正了 Copilot 将列名“温度”误写为“气温”的错误。
- 结果: 成功生成了符合要求的 CSV 数据文件和交互式 HTML 图表。
- 在 VS Code 中创建 Python 文件 (文件名
- 辅助功能展示:
- 选中代码,使用
Ctrl+I要求 Copilot “修改所有的注释为中文”。 - 在聊天窗口
@workspace并提问“请仔细的解释这个程序”,Copilot 会详细解释代码逻辑。也可选中特定代码段要求解释。
- 选中代码,使用
场景二:个人办公提效 - 基于图像生成代码 (视觉能力)
- 任务背景: 根据一张架构图,生成在 Azure 云上部署该架构的 Terraform 脚本。
- 操作过程:
- 将架构图截图。
- 在 Copilot Chat 中粘贴该图像。
- 发出指令:“请基于这个架构图生成在Azure云上部署这套服务的Terraform脚本”。
- 初次尝试失败,尹老师调整了问法:“请基于这个架构生成脚本,直接把脚本写出来即可”,随后成功。
- 尹老师解释,Copilot 包含“负责任的AI”机制,有时会对指令进行规范性判定,更换问法或重试可能解决问题。
- 结果: Copilot 成功生成了 Terraform 脚本。
- 扩展能力: 尹老师提到,Copilot 同样可以解释图表、根据网站截图生成前端代码、根据App截图生成对应的 Android 或 iOS 代码。Copilot 支持在 Android Studio、Xcode 等 IDE 中使用。
- 语音输入: 提及了 Copilot 支持语音聊天功能。
场景三:项目代码维护 - 批量修改现有工程 (贪吃蛇游戏)
- 任务背景: 改进一个已有的简单贪吃蛇游戏,该游戏存在多个问题:
- 背景色为黑色,体验不佳。
- 吃到食物后无任何特效。
- 蛇初始化后立即向右移动,容易“撞墙”。
- 没有计分功能。
- 需求:
- 修改背景色。
- 增加吃食物后的闪光特效。
- 修改初始化行为,蛇不立即移动。
- 增加计分功能。
- 操作过程:
- 在 VS Code 中打开包含 HTML, CSS, JS 文件的游戏项目。
- 将上述需求列表(增加了1,2,3,4编号以增强条理性)复制到 Copilot Chat 的多文件编辑模式中。
- Copilot 分析了项目文件,并针对性地在 HTML (增加积分显示)、JS (修改游戏逻辑、增加特效、计分)、CSS (修改背景色) 文件中提出了修改建议。
- 尹老师接受了所有建议。
- 结果: 刷新游戏后,所有需求均一次性成功实现。尹老师提到此次使用的是 GPT-4o 模型(原文称“4O”)。
场景四:智能代码联想与修改 - 上下文感知 (3D坐标点类)
- 任务背景: 演示 Copilot 如何在开发者修改代码定义时,自动感知上下文并联想修改相关代码。
- 操作过程:
- 在新的 Python 文件 (文件名
慢点P1,推测为main.py或类似名称) 中,通过注释引导 Copilot 生成一个表示“平面上的点的类” (Point类,包含x,y属性和计算两点距离的get_distance方法)。 - 实例化两个点并计算距离,运行确认无误。
- 核心修改: 将类定义的注释从“平面上的点的类”修改为“立体空间中的点的类”。
- Copilot 随即:
- 提示在类属性中增加
z轴 (Tab键接受)。 - 提示修改
__init__方法以包含z(Tab键接受)。 - 提示修改
get_distance方法以适应三维空间计算 (Tab键接受)。 - 提示修改实例化点的代码以包含
z坐标 (其中一个点的z坐标需要手动补全)。 - 提示修改
get_distance方法的注释以反映3D。
- 提示在类属性中增加
- 结果: 仅通过修改注释和按 Tab 键接受建议,大部分代码自动更新为3D版本。
- 在新的 Python 文件 (文件名
场景五:个性化 AI 助手 - 自定义 Copilot 行为与语气
- 任务背景: 让 Copilot 在生成代码和解释时,使用更可爱的语气,并遵循特定的注释规范。
- 操作过程:
- 在项目根目录下创建
.github/CopilotInstructions.md文件。 - 在该文件中写入指令:
- “回答说用可爱的语气。”
- “并且以emo结尾 例如这样子 😊” (原文为emo,演示中是表情符号)
- “生成的函数必须带有注释,且注释要包含功能描述,且注释要中文吧。”
- 重新让 Copilot 生成之前的3D坐标点类。
- 结果1 (代码生成): 生成的类和方法都带有了中文注释。
- 让 Copilot 解释生成的代码。
- 结果2 (代码解释): Copilot 的解释文本语气变得更“可爱”,并且句末带上了指定的表情符号。
- 在项目根目录下创建
- 应用扩展: 此方法可用于约束代码风格(如驼峰式、下划线式)、指定优先使用的库、特定函数命名方式等。更细致的配置也可在
.vscode/settings.json中进行。
GitHub Copilot 在协作场景中的应用
代码审查 (Code Review)
- 可以将 Copilot 添加为 GitHub 上 Pull Request (PR) 的审查者。
- 简单场景: Copilot 可以分析 PR 中的代码变更,并给出总结。尹老师展示了一个他人的贡献,Copilot 进行了分析,他确认后合并。
- 复杂场景/问题代码: 如果合入的代码存在问题(如不规范的SQL语句),Copilot 不仅能指出问题,还能自动提出修复建议,可以直接采纳并提交。
云端开发与需求实现 (GitHub Workspaces)
- 对于一些需求,可以直接在 GitHub 云端完成,无需将代码拉到本地。
- 演示案例: 为一个已有的计算器项目(包含加法、减法功能)增加乘法功能。
- 在 GitHub Issue 中提出“增加乘法运算”的需求。
- 使用 GitHub Workspaces 打开该 Issue。
- Copilot 自动进行“头脑风暴”,分析仓库文件,识别出需要在哪些文件(逻辑代码、主程序调用、单元测试)中进行修改。
- 用户确认头脑风暴结果后,Copilot 生成详细的“修改计划 (plan)”。
- 用户确认计划后,Copilot “实现 (implement)”这些修改,自动更改相关文件代码。
- 修改完成后,可以直接创建 PR。
- 尹老师进一步演示,在当前基础上继续提出“增加除法运算”,Copilot 再次执行分析、计划、实现流程。
- 其他应用: Workspaces 也可用于分析 Issue,或直接打开 PR 进行审查和修改。
GitHub Copilot 生态系统与企业级特性
广泛的 IDE 与模型支持
- IDE: 支持 VS Code, Eclipse, Android Studio, Xcode, JetBrains系列 IDE, Visual Studio 等。尹老师称其为“跨平台最多的这么一个编程助手”。
- 模型: 支持多种模型,包括 GPT-4o (演示中称为“4O”)、GPT-3.5 等。代码补全和聊天均可选择不同模型。
云端高级功能
- GitHub Workspaces (已演示)。
- 自定义模型 (Fine-tuning,主要面向企业版用户)。
- 在线知识库。
- AI 漏洞修复:扫描安全漏洞并由 AI 直接修复。
企业级合规性与数据管理
- 微软非常注重合规性。
- 管理员可以配置策略,如“不允许推荐你的公共代码”(指可能侵犯他人知识产权的公开代码)。
- 强调合规性、隐私性和用户管控能力,对企业用户是重要考量。
- 数据流动: 用户在 IDE 中的输入,会经过一个服务层代理(进行认证、内容合规性检查等),再与 AI 大模型交互。
使用情况度量与分析
- 企业版用户可以访问一个 Dashboard,用于度量 Copilot 的使用情况。
- 可分析维度: 不同组织、团队、编程语言、编辑器的使用频率和组合情况。
- 价值: 帮助企业了解内部技术栈分布、不同工具的使用情况,为培训等决策提供数据支持。
问答环节 (Q&A)
-
问题1: Copilot 能否学习项目的说明文档,并基于此进行问答?
- 尹雪峰老师: 可以。
- 提示词工程: 将项目文档、规则规范写入
.github/CopilotInstructions.md文件。Copilot 在后续交互中会将其作为上下文。这不改变模型本身。 - 模型微调 (Fine-tuning): 针对 GitHub 企业版用户。将代码仓库上传至 GitHub,可基于仓库代码对模型进行微调训练,生成一个专属的模型 URL 配置到 Copilot 中。这样,公司内部人员使用的 Copilot 就能更好地理解和补全企业内部的库和代码。
- 提示词工程: 将项目文档、规则规范写入
- 尹雪峰老师: 可以。
-
问题2: GPT-4o (原文“4O”) 和其他模型的区别?
- 尹雪峰老师: GPT-4o 是目前正式发布、无限使用的模型,适用于日常和大部分问题(如当天演示基本使用4o)。其他一些高级模型(如 GPT-4.5, Claude 3 系列,原文提及“O1O3”和“cloud三点”,推测指Claude 3 Opus等)可能处于预览 (Preview) 阶段,会有使用限制(例如“每12小时也只能用十次”),因为单次对话成本较高。如果遇到复杂场景,4o 难以解决时,建议尝试更高级的模型。
-
问题3: GitHub Copilot Free 版本在中国是否可以使用?
- 尹雪峰老师: “是可以使用的是可以使用的。”
总结核心观点
GitHub Copilot 作为一个强大的“编程副驾驶”,通过其先进的AI能力,不仅能为专业开发者提效,也能赋能非编程背景的用户解决实际问题。其实战演示覆盖了从个人办公自动化、代码辅助编写与修改、到团队协作中的代码审查与云端开发等多个方面,展现了其广泛的适用性和易用性。结合其多版本选择、企业级特性和持续进化的能力,Copilot 正在成为现代软件开发和日常工作中不可或缺的智能助手。