我们创建了 OpenAI Codex 的改进版本,这是我们的 AI 系统,可将自然语言翻译为代码,并且从今天开始,我们将通过我们的 API 在私人测试版中发布它。 Codex 是提供动力的模型 GitHub 副驾驶,我们一个月前与 GitHub 合作构建并推出了它。 Codex 精通十多种编程语言,现在可以用自然语言解释简单的命令并代表用户执行它们,从而可以为现有应用程序构建自然语言界面。我们现在邀请企业和开发人员通过我们的 API 在 OpenAI Codex 之上进行构建。
查看法典挑战
阅读论文
OpenAI Codex 是 GPT-3 的后代;其训练数据包含自然语言和来自公开来源的数十亿行源代码,包括公共 GitHub 存储库中的代码。 OpenAI Codex 的能力最强的是 Python,但它也精通包括 JavaScript、Go、Perl、PHP、Ruby、Swift 和 TypeScript 甚至 Shell 在内的十多种语言。它为 Python 代码提供了 14KB 的内存,而 GPT-3 只有 4KB,因此在执行任何任务时它可以考虑超过 3 倍的上下文信息。
GPT-3 的主要技能是根据自然语言提示生成自然语言,这意味着它影响世界的唯一方式是通过读者的思维。 OpenAI Codex 具有对 GPT-3 的大部分自然语言理解,但它生成工作代码,这意味着您可以使用 API 向任何软件发出英语命令。 OpenAI Codex 使计算机能够更好地理解人们的意图,从而使每个人都能利用计算机做更多事情。
一旦程序员知道要构建什么,编写代码的行为就可以被认为是 (1) 将问题分解为更简单的问题,以及 (2) 将这些简单问题映射到已经存在的现有代码(库、API 或函数)存在。后一项活动可能是编程中最无趣的部分(也是最高的进入门槛),而这正是 OpenAI Codex 最擅长的地方。
OpenAI Codex 是一种通用编程模型,这意味着它基本上可以应用于任何编程任务(尽管结果可能有所不同)。我们已经成功地将它用于转译、解释代码和重构代码。但我们知道我们只触及了可以做的事情的表面。
我们现在通过 API 提供 OpenAI Codex 的内测版,我们的目标是尽快安全地扩大规模。初期阶段,OpenAI Codex 将免费提供。 OpenAI 将继续以我们通过 GPT-3 奠定的安全基础为基础,审查应用程序并逐步扩展它们,同时与开发人员密切合作,以了解我们的技术对世界的影响。
// 轻快轮播
var initCarousel = function (mainClass, cellClass) { var el = document.querySelector(mainClass); if (!el) 返回; var flickity = new Flickity(el, { cellSelector: cellClass, wrapAround: true,draggable: false, pageDots: true, fade: true, hash: true, arrowShape: 'M55.18,32.24l2.56,2.54L42.65,50,57.74,65.22, 2.56,2.54l-37.59,50LXNUMXZ', on: { 准备好: function () { initCarouselStyles(); } }, });
};
var initCarouselStyles = function () { var Buttons = document.querySelectorAll('.flickity-prev-next-button'); if (buttons.length) { Buttons.forEach(function (button) { button.classList.add('mx-col'); }); var pageDots = document.querySelector('.flickity-page-dots'); if (pageDots) { pageDots.classList.add('list-unstyled'); }
};
// https://github.com/vimeo/player.js
var 玩家对象 = {};
var initVimeo = function () { var videoEls = document.querySelectorAll('iframe[data-vimeo]'); videoEls.forEach(function (v) { var id = v.getAttribute('data-id'); var player = new Vimeo.Player(v); playerObjects[id] = player; // 通过 id 跟踪玩家 } ); var触发器 = document.querySelectorAll('.js-video-trigger'); triggers.forEach(function (t) { t.addEventListener('click', function (e) { var id = this.getAttribute('data-video'); if (!id) return; e.preventDefault(); playerObjects [id].play(); }); });
};
// 调用一切
document.addEventListener('DOMContentLoaded', function () { initCarousel('.js-carousel', '.js-carousel-item'); initVimeo();
});