¤科技兽¤ 发表于 2023-4-10 14:10:34

GitHub 推出 Copilot X(集合 GPT-4),可自动补全代码和 ...

-----------------------------

失望的心 发表于 2023-4-10 15:38:55

程序员我觉得是一个很有意思的群体,他们的劳动工具是代码,但是不同于绝大多数的行业,他们在劳动的时候,不仅想着要完成工作任务,还老想着去改进劳动工具。
这才有了层出不穷的编程语言和各种框架,并且更新换代如此之快。
就拿AIGC工具来说,这两周的新工具推出,基本上是按天来算的,一天一个,甚至一天好几个。
这个行业天生的就想着把工作自动化,能一键完成的就不允许自己按两下键盘。
在github 这个copilot推出之前,话说为什么都喜欢叫copilot这个名字?
我现在的编程工作已经完全离不开ChatGPT了,因为在以前我有想法,我得去找API,然后读,然后画半天时间才能写出来。
但是现在因为我知道我想要做什么,并且知道用什么库,怎么样的逻辑,我可以让chatgpt在很快的时间内完成我想要的功能。
就比如前两天的这个图片转字符画的代码,我自己写可以,但是起码得半小时,但是Copilot写的话,不到2分钟,我自己稍微改一下就行。
我只能说未来跟AI协作是不可避免了,甚至所有的行业都得如此。

怂55 发表于 2023-4-10 16:41:59

昨天晚上,GitHub 官方发推宣布,一款基于 AI 驱动的、跨时代代码编辑器 GitHub Copilot X 横空出世,将为开发者带来前所未有的编程体验!


已开通了 GitHub Copilot 的同学,可前往下方链接申请进入 waitlist。
申请内测:https://github.com/github-copilot/chat_waitlist_signup/join
上一代的 GitHub Copilot,在协助开发者完成编程任务时,便有着极其出色的体验。诞生至今两年,便自动生成了 46% 的代码,更将编码速度提高了 55%。


此次更新的 GitHub Copilot X,又给我们带来了哪些惊喜呢?请看:

[*]集成了 GPT-4(微软亲儿子,必须安排上);
[*]GitHub Copilot Chat(边写代码边跟 AI 对话);
[*]Copilot for Pull Requests(AI 协助处理 PR);
[*]Copilot for Docs(智能文档系统);
[*]Copilot for CLI(让命令行用起来更智能)。
[*]Copilot Voice(直接语音生成代码,牛逼!);
下面,就让我们来逐个看看,对于一个开发者来说,这些功能到底能有多震撼。
GitHub Copilot Chat

相信最近这些日子被 ChatGPT 和 Bing Chat 刷屏的你,对于这两款产品的真实实力已经没有存疑。
那么,如果把他们的功能,都加到 GitHub Copilot 上呢?
没错,本次 GitHub Copilot X 将在产品中内嵌一个聊天窗口,把 GPT-4 融合到实际开发场景,并集成至 VS Code 和 Visual Studio 上。


这个聊天窗口可不一般,除了更进行实时交互问答之外,它还可以完成诸如代码内容识别、报错信息显示、语音交流等操作。
通过这一功能,开发人员可深入分析和了解各个代码块的用途,快速生成单元测试,甚至还能一键修改 Bug,就问你猛不猛!
未来,或许我们不再需要一行行看代码、找 Bug、写测试了,而是直接改用 GitHub Copilot Chat 来迅速处理这些工作。
Copilot for Pull Requests

维护过开源项目,或者用 Git 进行团队协作的同学应该知道,规范化提交 Pull Request(PR) 对于项目开发者来说,到底有多重要。
一个清晰简洁的 PR 描述信息,能让代码审查者一目了然,快速了解你的代码变动情况,减少项目合并出错的可能性,并提升沟通效率。
因此,Copilot 引入了 GPT-4 模型,试图让它通过动态提取与分析代码的变更信息,自动生成描述。
开发者人员只需在 PR 描述中插入标记,Copilot 便会自动识别,并进行扩展补写。
支持的标记,主要有以下几种:

[*]copilot:summary为 PR 生成一段摘要总结。
[*]copilot:walkthrough 详细的更改列表,包括相关代码片段链接。
[*]copilot:poem 写一首诗来描述本次改动。
[*]copilot:all 自动生成以上所有内容。
具体操作如下所示:

Copilot for PR
https://www.zhihu.com/video/1622261928214114304
随着后续产品的更新迭代,Copilot 还会新增名为 Gentest 和 Ghost Text 的两大功能。
Gentest:通过 AI 来识别 PR 中可能缺少的测试,并自动帮你构建与生成测试。
Ghost Text:在你编写 PR 描述或文档时,提供内容自动补全功能。
不仅如此,在你收到用户提交的 issue 时,如果没有比较好的解决方案,AI 会给你提供建议。审查代码觉得麻烦,AI 也能协助。
估计再过不久,AI 还要帮你自动调整代码、完善 PR、修复 Bug 了。
说白了,这货要开始抢你饭碗了...
Copilot for docs

文档对于一个开发者来说,其重要性不言而喻。无论你是新接手一个项目,还是忘记某个 API 的具体使用方法。
这个时候,你都会殷切的盼望有一份优秀的技术文档能出现在你面前。
为了帮你更快定位文档内容,简单直接获取到想要的信息,Copilot for docs 应运而生。
用户能通过类似 ChatGPT 的界面,针对项目文档、常用代码等内容发起提问,即时获取答案。
你所需要做的,就是在输入框中,写下你想了解的问题,按下回车,Copilot 便会自动定位并返回包含在文档中的相关内容。

Copilot 智能文档
https://www.zhihu.com/video/1622262080786116608
还有个比较厉害的地方,就是它能根据用户的不同编程水平,对该文档的了解程度,以及想要知晓的内容,返回不同的答案。


如果有需要的话,它也能在不同的第三方库文档之间来回穿梭,将其内容进行拼接,并给你返回结果。
有兴趣的话,不妨尝试把 Copilot for docs 变成你的知识库,相信会有意想不到的收获。
Copilot for CLI

除了上面提到的处理 PR 请求与编写代码,命令行终端也是开发者日常工作必不可少的工具之一。
我经常喜欢在 iTerm 上安装各种各样的命令行生产力工具,这些工具在大多时间能帮我高效处理掉一些问题,但那些比较少用的,就会经常性忘记命令。
每当这个时候,我便总会输入 help 来获取关于该命令的更多信息。
对于功能较为复杂的命令行工具,还得时不时跑到 StackOverflow 上寻找正确用法。
如果有一个 AI 在身边,听明白我的诉求,帮我快速搞定一切,那就再好不过了。
于是乎,Copilot for CLI 带着它那 3 个 shell 命令来了。
这 3 个命令分别是:??,git?,gh?。
??可以作为任意 shell 命令的通用 goto,在该命令后面输入相关描述,Copilot 便会列出最适用该描述的具体命令。
比如,你不清楚如何列出所有 JavaScript 文件,只需要输入:
>?? list js fileAI 便会提供可参考的命令以及描述,如果不满意,还能进一步更改描述。
确定之后,在终端选中 Run this command,然后按下回车即可。


git?用于专门搜索以及调用git。
相比??, 它在生成 Git 命令方面要强大许多。
如果你明确要用的是 Git 命令,那可以优先选择使用这个。


gh? 结合了 GitHub CLI 命令的灵活性与查询界面的便捷性,强强联手,让搜索变得更加快捷、信息展示更为清晰。


内测申请:https://githubnext.com/projects/copilot-cli
虽然 GitHub Copilot CLI 大部分场景主要集中在 Git 以及 GitHub 上,但是与 AI 相结合之后,互动性与连贯性得到了进一步提升。这种方式,相信也能给其他的命令行工具开发者,提供一些参考思路。
Copilot Voice

前几年,GitHub Copilot 刚放出来的时候,网上就有人讨论:"AI 那么强,兴许后面我动动嘴皮子,它就能帮我写出想要的代码了"。
估计大家都没想到是,这一天来得竟如此之快。
Copilot Voice,一个极其具有突破性的编程工具,出现了。
用户通过与 GitHub Copilot 进行交谈,它就能立即开始编写代码,直接解放你的双手!
不满意的话,还可以接着说话,让它进行更改。
通过对话,Copilot Voice 可以完成:

[*]代码跳转(跳转到 x 行、方法、函数);
[*]控制 IDE(开启 zen 模式、运行程序或其它 VSCode 指令);
[*]代码总结(可以问它:3-10 行代码,表示什么意思);
所有的工作,张张嘴就能搞定。
内测申请:https://githubnext.com/projects/copilot-voice
Linux 创始人曾说:"Talk is cheap, Show me the code."
但是这一次,不好意思,我全都要。


将来的某一天,当你心血来潮,突然间想开发一个程序时,或许只需要喊一声 "嘿,GitHub!",AI 便能帮你完成一切。
写在最后

本次 GitHub Copilot X,围绕 AI 对话、Pull Request 提交处理、文档智能检索与阅读、命令行改造,到最后的语音生成代码,可以说是全方位颠覆了传统的编程方式。
当机器人能够准确理解人类自然语言,学会从零到一,完成项目的设计、开发、部署等工作时。未来程序员这个群体,或许将跟电报员一样,成为某个曾经在历史上出现过的普通工种。
事了拂衣去,深藏功与名。
文末,照旧安利一波我们的公众号:GitHubDaily,平时主要分享比较实用或有趣的开发工具与 GitHub 开源项目,偶尔也会聊聊技术圈内最近发生的新鲜事,感兴趣的小伙伴可以关注一下~
文中所提到的所有开源项目与工具,已收录至 GitHubDaily 的开源项目列表中。
该列表包含了 GitHub 上诸多高质量、有趣实用的开源技术教程、开发者工具、编程网站等内容。
从 2015 年至今,累积分享 3500+ 个开源项目,有需要的,可访问下方 GitHub 地址自取:
GitHub:https://github.com/GitHubDaily/GitHubDaily

静42 发表于 2023-4-10 18:32:20

嘿嘿,这部分其实可以用Cursor率先体验一下,Cursor就是调用的是Copilot的接口(也是GPT-4)模型的。
用了一段时间了,实际体验是简单的那种一搜索一大片的代码写起来没什么问题,但是稍微复杂点的代码,就需要改了,而且很多细节问题拐不过弯来,比如我想用一维数组当二维矩阵来用,他就写一些乱七八糟的玩意出来了。
为了贴合这个阿斗,我特意捏了一个简单的游戏引擎出来,并为它量身捏了一款脑瘫版类c语compiler,好让它帮我打工写游戏。但是,稍微要动点脑子的代码(根本不能叫复杂,稍微比easy难一丢丢的问题)基本9成需要自己改过,比如我让他帮我写一个迷宫生成算法:


然后它帮我写了一段:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define ROW 20
#define COL 20

int map;

void printMaze() {
    for (int i = 0; i < ROW; i++) {
      for (int j = 0; j < COL; j++) {
            if (map == 1) {
                printf("■ ");
            } else {
                printf("□ ");
            }
      }
      printf("\n");
    }
}

void generateMaze() {
    srand((unsigned)time(NULL));
    for (int i = 0; i < ROW; i++) {
      for (int j = 0; j < COL; j++) {
            if (i == 0 || j == 0 || i == ROW - 1 || j == COL - 1) {
                map = 1;
            } else if (rand() % 3 == 0) {
                map = 1;
            } else {
                map = 0;
            }
      }
    }
    map = 0;
    map = 0;
}

int main() {
    generateMaze();
    printMaze();
    return 0;
}
可是入口和出口,都不是连通的


我尝试让他修复这个bug,显然这个为难它了,尝试各种提示也不管用,不讲码德,拿一些根本不顶用的代码来骗,来忽悠我.





还是不连通的,实际上一眼也看出来他在忽悠了

没办法,我只好在这个代码的基础上做点微调(感觉90%的工作其实还是我干的),包括固定了随机数种子,然后用类似炼丹的方式变换种子终于搞出了一个至少能通关的地图了


附上代码
#name "main"
#include "stdlib.h"

export void GameOnTrigger(string id)
{
   
}

export void GameOnDie()
{
   sleep(3000);
   defeat();
}

export void GameOnFood(string id)
{
    setspeed(0);
    sleep(1000);
    victory();
}

void drawmap(int x,int y)
{
    drawrect(x*20,y*20,20,20,1,1,1,1);
}

#define ROW 40
#define COL 40

export void GameInitialize(int width,int height)
{
    int i,j;
    createplayer(8,8,10);
    createfood(800-8,800-8,1,1,0,0,16,"food");
    setlayer(0);
    clearmap(1,0,0,0);
    rand();
    rand();
    rand();
    rand();
    rand();
    rand();
    rand();
    rand();
    rand();
    rand();
   //就这段ai写的
    for (i = 0; i < ROW; i++) {
      for (j = 0; j < COL; j++) {
         if (rand() % 3 != 0)
            {
                drawmap(i,j);
            }
      }
    }
    drawmap(0,0);
    drawmap(ROW - 1,COL - 1);
   //到这里
    wait(3000);
}


export void GameRun(int elapsed)
{

}还有几个AI辅助创作的,也差不多,体验就是,有用,但感觉也没多有用(营销号就不要整天吹什么取代了,光贴个生成代码的截图搞的跟真的一样,有本事你点下编译啊~)


附上代码
#name "main"
#include "stdlib.h"

int ate = 0;

export void GameOnTrigger(string id)
{
   
}

export void GameOnDie()
{
   sleep(3000);
   defeat();
}

export void GameOnFood(string id)
{
   ate++;
   if (ate==4)
   {
      setspeed(0);
      sleep(1000);
      victory();
   }
}

export void thread1()
{
   float angle1;
   float angle2;
   float angle3;
   float angle4;
   float angle5;
   while (1)
   {
      sleep(150);
      setlayer(1);
      clearmap(0,1,1,1);
      drawcircle(400,400,400,16,1,0,0,0);
      drawcircle(400,400,300,16,1,0,0,0);
      drawcircle(400,400,200,16,1,0,0,0);
      drawcircle(400,400,100,16,1,0,0,0);
      drawcircle(400,400,50,16,1,0,0,0);

      angle1=angle1+3;
      angle2=angle2+6;
      angle3=angle3+9;
      angle4=angle4+12;
      angle5=angle5+15;
      //就这段ai写的
      drawsolidcircle(400+cos(angle1/180.0*3.14159)*400,400+sin(angle1/180.0*3.14159)*400,32,1,1,1,1);
      drawsolidcircle(400+cos(angle2/180.0*3.14159)*300,400+sin(angle2/180.0*3.14159)*300,32,1,1,1,1);
      drawsolidcircle(400+cos(angle3/180.0*3.14159)*200,400+sin(angle3/180.0*3.14159)*200,32,1,1,1,1);
      drawsolidcircle(400+cos(angle4/180.0*3.14159)*100,400+sin(angle4/180.0*3.14159)*100,32,1,1,1,1);
      drawsolidcircle(400+cos(angle5/180.0*3.14159)*50,400+sin(angle5/180.0*3.14159)*50,32,1,1,1,1);
      //////
   }
}


export void GameInitialize(int width,int height)
{
    createplayer(400,400,16);
    createfood(16,16,1,1,0,0,16,"food");
    createfood(800-16,16,1,1,0,0,16,"food");
    createfood(16,800-16,1,1,0,0,16,"food");
    createfood(800-16,800-16,1,1,0,0,16,"food");
    createthread("thread1",1);
    wait(3000);
}


export void GameRun(int elapsed)
{

}

想你的季节 发表于 2023-4-10 19:38:31

关于大家问的收费问题…学生认证啊!edu邮箱就可解决!学生计划链接:
https://education.github.com/官网:https://github.com/features/preview/copilot-x
快去排队,一定记得四款产品要分别加入 waitlist,而不是点一个就行了。
- Copilot Chat: https://github.com/github-copilot/chat_waitlist_signup/join
- Copilot for Pull Request: Copilot for PRs
- Copilot CLI: GitHub Next | Copilot for CLI
- Copilot Doc: GitHub Next | Copilot for Docs

官方介绍:https://github.blog/2023-03-22-github-copilot-x-the-ai-powered-developer-experience/
简单来说就是:
采用了OpenAI的新GPT-4模型,而且还为Copilot引入了聊天和语音,并让 Copilot pull requests,命令行和文档来回答有关项目的问题。四个功能也很直观,从名字上就能看出来作用:
- Copilot Chat: 使用 GitHub Copilot 聊天在编辑器中类似 ChatGPT 的体验:将一个聊天界面引入编辑器,该界面专注于开发人员方案,并与 VS Code 和 Visual Studio 本机集成。这远远超出了建议代码的作用。GitHub Copilot Chat不仅仅是一个聊天窗口。它可以识别开发人员键入的代码、显示的错误消息,并将其深度嵌入到 IDE 中。开发人员可以深入分析和解释代码块的用途,生成单元测试,甚至获得对错误的建议修复。GitHub Copilot Chat建立在OpenAI和微软对ChatGPT和新Bing所做的工作之上。它还将加入语音到代码AI技术扩展,称之为GitHub Copilot Voice,开发人员可以口头提供自然语言提示。
- Copilot for Pull Request: 对于 PR 和项目管理的帮助。
- Copilot CLI: 终端是开发人员花费最多时间的地方。但即使是最熟练的开发人员也需要滚动浏览许多页面才能记住许多命令的精确语法。这就是我们推出GitHub Copilot CLI的原因。它可以编写命令和循环,并抛出晦涩的查找标志以满足您的查询。
- Copilot Doc: 它使用聊天界面为用户提供 AI 生成的对文档问题的回答,包括开发人员对他们正在使用的语言、框架和技术提出的问题。我们从React、Azure Docs和MDN的文档开始,因此我们可以与这些项目的开发人员和用户一起快速学习和迭代。将来也会我在努力将此功能引入任何组织的仓库和内部文档。

看完以后感想就是:程序员的自我革命…太狠了。我身边已经有使用 ChatGPT 零基础(从下载安装环境开始,全程没有跳出 ChatGPT 或者 NewBing)学习写代码并成功运行的朋友了…
「出现了在 GPT 帮助下以分钟进化的人类」——不是在开玩笑。

张三 发表于 2023-4-10 21:19:15

GitHub Copilot X目前处于预览模式,已加入 waitlist



GitHub Copilot X是GitHub Copilot的一个新版本,是一种基于人工智能的代码补全工具,使用OpenAI的Codex模型根据自然语言输入或现有代码生成代码建议。 GitHub Copilot X采用了OpenAI最新的GPT-4模型,可以根据开发人员的上下文和偏好生成更准确、更个性化的代码建议。


https://www.zhihu.com/video/1622233532989988864
GitHub Copilot X引入了几个新功能,旨在增强开发人员在整个开发生命周期中的人工智能辅助体验:

[*]编辑器中的聊天界面,允许开发人员使用自然语言、语音命令或代码片段与GitHub Copilot交互。聊天界面可以帮助开发人员编写和调试代码、生成单元测试、解释代码块、修复错误等。
[*] pull request集成,使GitHub Copilot能够自动生成PR描述、建议缺失的单元测试、审核代码更改并提供反馈。 命令行界面,允许开发人员从任何终端或shell使用GitHub Copilot。
[*]命令行界面可以帮助开发人员创建新项目、运行命令、安装依赖等。 文档集成,使GitHub Copilot能够使用自然语言或代码示例回答文档页面上的问题。
[*]文档集成可以帮助开发人员学习新概念、找到相关信息并解决问题。




GitHub Copilot X的这些新功能为开发人员提供了更高效、更智能的代码编写和协作体验。它可以帮助开发人员更快地编写代码,减少手动输入和纠错的时间,提高开发效率。此外,它还可以提高代码的质量和可维护性,减少错误和漏洞的风险。

“X”代表一个占位符,表示我们希望 GitHub Copilot 可用的位置,以及我们期望它能够做什么(例如“Copilot <for pull requests>”、“Copilot <for security>”)。它将产品从单一体验、代码完成扩展到跨开发人员工作流程的 X 体验。GitHub Copilot 明天总是需要比现在多得多。
此外,“X”表示我们打算对开发人员成就产生的影响程度。因此,这是一份意向声明,也是对开发人员的承诺,因为我们将共同进入人工智能时代。我们希望业界对 GitHub Copilot 充满信心,并希望工程团队将其视为未来发展的纽带。
GitHub Copilot X 目前是 GitHub 未来愿景的代表,而不是 GitHub Copilot 的可用产品。随着我们继续设计、测试和构建符合 GitHub Copilot X 愿景的功能,我们也在花时间确定向我们的客户提供这些功能的最佳方式。
页: [1]
查看完整版本: GitHub 推出 Copilot X(集合 GPT-4),可自动补全代码和 ...