扫码打开虎嗅APP
有了这个自动生成代码的小帮手,再也不用上 StackOverflow了?,本文来自微信公众号:硅星人(ID:guixingren123),作者:光谱 杜晨,原文标题:《OpenAI 宣布:会说人话,就能写代码了!》,题图来自:OpenAI
你还在苦于不会写代码,落后于其他人吗?你是否曾因为刷不到 DMV 等各种预约而苦恼,看着别的程序员随便写个脚本就能节省大把时间精力,特别眼馋?
如果回答“是”的话,那么有一条好消息告诉你:
OpenAI 发布了一个最新的技术,名叫 Codex API。
只要你会说人话(英文),它就能自动写出代码。
以后无论想要实现什么功能,写代码这事儿再也不用求人了!
截图来源:GitHub Copilot
Codex 到底有多神?
OpenAI 在官网上写道:Codex API“精通十几种编程语言,可以将简单的自然语言命令转变成代码,并代理用户执行。这使得现有软件增加自然语言编程界面成为可能。”
API 目前已经支持 Python、JavaScript、Go、Perl PHP、Ruby、Swift和Shell 等多种主流编程语言。
它的工作方式也特别简单:你只需要用自然语言描述你想要做什么,比如“插入这张图片”、“把图片调小一点”、“让它每次被点击的时候都弹出一个通知”之类的,这个 API就可以把这些描述,按照你选择的编程语言,快速转换成代码!
图片来源:OpenAI
但如果你以为 Codex API 只会修修图片、改改字体这种简单的编程操作,就太小看它了。
Codex API 还可以设计和生成软件 UI:
图片来源:OpenAI
Codex 还是一位数据科学家,可以下载和规整数据、分析、制作图表:
图片来源:OpenAI
它不仅能把人话翻译成代码,还能更进一步,实现多种编程语言之间的互译,比如从 Python 转译 Ruby:
图片来源:OpenAI
你还可以让它帮你做数学题:
再也不用担心搜题软件被政策打击了,有了 Codex API,你就有自己的搜题软件了……
就算你不是程序员,没有写代码的需要,Codex API 也还是有很大帮助的。比如,你可以用它实现复杂的文档编辑,用语音命令删除段前空格:
图片来源:OpenAI
用逻辑功能快速修改整个文档,比如在每行之前加上行数编号:
图片来源:OpenAI
更复杂的操作,比如数一下文档中某个词的出现次数,并且在文末注明:
图片来源:OpenAI
OpenAI 甚至演示了用 Codex API 编写一个完整的小游戏。只有想不到,没有 Codex 做不到的:
视频来源:OpenAI
Codex API 到底是什么?为什么它这么厉害?它和 OpenAI 过去曾经震撼世界的那些技术发明和突破,是否有关系?
从GPT-3来,到程序员中去
OpenAI 总部位于硅谷,是全球领先的 AI 基础研究机构。它在去年发布了震撼世界的 GPT-3,一个超大规模的通用自然语言深度学习模型。
硅星人的读者朋友或许还记得,去年我们报道 OpenAI 基于 GPT-3 推出的“OpenAI API”的时候,曾经着重提到,GPT-3在多种风马牛不相及的语言类任务上,表现都十分出色。这些任务当中,就包括了“自动编程”。更具体来说,就是用自然语言写代码。
当时,有开发者基于 GPT-3 开发了一个网页 App 快速生成器。在输入框里用自然语言进行描述,它就可以快速“脑补”出你想要的用户界面。
比如,十秒钟生成一个 Google 首页,GPT-3 可谓是信手拈来。
图片来源:Sharif Shameem
还有开发者用 GPT-3 制作了一个财会程序,还是用“我今天投入了1000美元”、“后三个月房租预付了900刀”这样的自然语言,程序就能自动修改资产负债表上对应的项目
(真不知道在科技公司工作的财务同学们,看到码农同事把自己的工作也代劳了,现在作何感想……)
图片来源:Yash Dani
OpenAI 表示,他们去年发布了 GPT-3 之后,看到很多开发者用它做各种各样奇妙的事情。特别是在代码生成上面,他们自己之前并没有特别重视 GPT-3 在这方面的能力,但看到开发者“爆改”之后的结果深受启发。OpenAI 也在考虑:是不是可以在这个方向上多做一些事情?
说到这里大家也应该都明白了:没错,Codex 技术本身以及 API,正是 GPT-3 在代码生成能力上面的延伸。
GPT-3 的主要能力是理解用户输入的自然语言,然后生成新的自然语言,完成各种各样的相关任务。而 Codex 的训练数据包括大量自然语言,以及来自 GitHub 的公开 repo 和其它来源的数十亿条代码。
它和 GPT-3 本体的不同之处,在于它的输出就是代码。只要用户能用英语讲清楚自己的需求,Codex 就能用指定的语言输出正确的代码。
OpenAI 希望 Codex 能够解决程序员的痛点:
一旦程序员知道要开发什么东西,写代码的行为可以被分解为两部分:
(1)将问题分解成更简单的问题
(2)将这些简单的问题映射到已经存在的现有代码(库、API 或函数)
其中(2)可能是编程中最无趣的部分(也是门槛最高的部分),而这正是 Codex 最擅长的地方。
这里,硅星人已经能想到一些经典的使用场景了:
比如,程序员的日常,有段代码不知道怎么写,以前的做法是 Google、Stack Overflow、Quora……以后可以直接让 Codex 一站式解决了;
图片来源:Reddit/Programming Humor
再比如,产品经理有个需求找工程师,被各种推脱……产品经理直接召唤 Codex:你看这不是明明能实现吗!赶紧给我做!
更重要的是,因为 Codex 现在已经被 OpenAI 做成了 API,也就意味着任何其它软件都可以接入,获得“说人话、自动出代码”的全新能力!
第一个实装 Codex API 的不是别人,正是 GitHub 前段时间推出的 AI 结对编程助手 Copilot:
图片来源:GitHub Copilot
Copilot 可以在编辑器内帮助程序员写出整句代码,甚至生成完整的函数。该功能目前对 Phthon、JS、TypeScript、Ruby、Go 等语言的适配性最佳,当然也继承了 Codex API 对其它语言的适配。
图片来源:GitHub Copilot
此外,Copilot 在一些场景下还会为用户提供多种代码实现选项,让用户来自己决定选择或拒绝。用多了之后,Copilot 还能“学习”用户的编程习惯,往后的推荐会更契合用户的编程“风格”……
图片来源:OpenAI
目前,GitHub 已经将 Copilot 开发成了 VS Code 插件,这样使用 VS Code 的程序员朋友们就可以随时求助自己的 AI 结对编程小帮手了。当然,前提是你的英文表达能力过关(英文不好的程序员朋友,提升一下喽)。
让我们再回到 Codex 技术。据 OpenAI 透露,Codex 目前的身份可以被定义为一个“泛用性”的编程模型,意味着原则上你可以把它应用于任何编程相关的任务。当然对于那些“难度”更高的任务,效果可能不会特别好。
“我们已经成功将 Codex 用于转译、解释代码和重构代码等任务。不过我们知道,它在未来能够实现的,还有更多更多。”
为了推广这项技术,OpenAI 还举办了一个 Codex 挑战赛,邀请来自全世界的开发者,一同挑战 Python 编程难题。Codex 将作为参赛选手的结对编程小帮手。当然,别以为 Codex 能解决所有的难题。它只是你的助手而已,并不是“作弊器”。
目前,OpenAI 正在对 Codex API 进行免费的非公开测试。各行各业的开发者,特别是那些在编程上没那么多经验的人士,都可以到 OpenAI 的官网,加入等候名单,申请测试资格。
未来,OpenAI 也有可能会像对待 GPT-3 那样,把 Codex API 也变成提供给企业用户的付费服务。
硅星人倒是希望,Codex 能够继续保持对普通个人用户的免费,让更多没有编程知识的人们,也能享受技术带来的各种便利。
本文来自微信公众号:硅星人(ID:guixingren123),作者:光谱 杜晨