【小沐学NLP】AI辅助编程工具汇总
文章目录
- 1、简介
- 2、国内
- 2.1 aiXcoder
- 2.1.1 工具特点
- 2.1.2 部署方式
- 2.1.3 使用费用
- 2.1.4 代码测试
- 2.1.4.1 代码搜索引擎
- 2.1.4.2 在线体验
- 2.2 CodeGeeX
- 2.2.1 工具特点
- 2.2.2 部署方式
- 2.2.3 使用费用
- 2.2.4 代码测试
- 2.3 Alibaba Cloud AI Coding Assistant(cosy)
- 3、国外
- 3.1 GitHub Copilot
- 3.2 codeium
- 3.3 Amazon CodeWhisperer
- 3.4 Tabnine
- 3.5 Replit Ghostwriter
- 3.6 Microsoft IntelliCode
- 3.7 OpenAI Codex
- 结语
1、简介
AI辅助编程工具是一种利用人工智能技术来帮助程序员更高效地编写和维护代码的工具。这些工具使用机器学习算法来分析代码库、学习编程模式和偏好,并自动完成编程任务,从而减少了程序员的工作量和错误。
2、国内
2.1 aiXcoder
aiXcoder:国内首款基于深度学习的智能化软件开发工具,利用AI技术实现代码⾃动⽣成、代码⾃动补全、代码智能搜索等功能,提升开发者开发效率与代码质量。
官网地址:
https://aixcoder.com/#/
- Token级代码生成与补全:基于本地服务,支持自动推荐单个或多个Token的代码
- 行级代码生成与补全:基于云端服务,支持自动生成或补全整行代码
- 方法级代码生成与补全:基于云端服务,支持根据自然语言功能描述以及上下文,生成或补全方法级代码
2.1.1 工具特点
-
各种主流编程语言
- 支持Java、Python、C#、C/C++、 JavaScript、TypeScript、Go等多种编程语言(云端智能编程服务目前仅支持Java语言)
- 面向企业的aiXcoder可根据企业需求定制新的编程语言
-
多种主流IDE
- 兼容IntelliJ IDEA、CLion、GoLand、 PyCharm、 WebStorm、Visual Studio Code、Eclipse等多个IDE(云端智能编程服务目前仅兼容IntelliJ IDEA)
- 面向企业的aiXcoder可根据企业需求定制插件自定义功能
2.1.2 部署方式
-
极速本地模型
您可以在“完全私有”环境中运行aiXcoder的深度学习模型,模型将下载到您的计算机并在本地查询数据,从而快速实现代码补全。此模式支持离线使用。 -
云端大模型
部署在云端的深度学习模型需要良好的网络才能运行,这能帮助您实现行级代码补全、方法级代码生成等智能编程功能。
2.1.3 使用费用
aiXcoder企业版采取灵活的定价模式,具体包括License费用和模型定制费,具体金额根据企业规模采取灵活的计价模式,具体请联系商务人员咨询。
2.1.4 代码测试
2.1.4.1 代码搜索引擎
https://codesearch.aixcoder.com/#/
2.1.4.2 在线体验
https://aixcoder.com/nl2code/
2.2 CodeGeeX
https://codegeex.cn/zh-CN
CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(>8500亿Token)上预训练得到。
简单来说, CodeGeeX 是一个用人工智能驱动的帮助你快速编写代码的代码生成工具。
CodeGeeX2 是多语言代码生成模型 CodeGeeX (KDD’23) 的第二代模型。不同于一代 CodeGeeX(完全在国产华为昇腾芯片平台训练) ,CodeGeeX2 是基于 ChatGLM2 架构加入代码预训练实现,得益于 ChatGLM2 的更优性能,CodeGeeX2 在多项指标上取得性能提升(+107% > CodeGeeX;仅60亿参数即超过150亿参数的 StarCoder-15B 近10%)
2.2.1 工具特点
- 高精度代码生成:支持生成Python、C++、Java、JavaScript和Go等多种主流编程语言的代码,在HumanEval-X代码生成任务上取得47%~60%求解率,较其他开源基线模型有更佳的平均性能。
- 跨语言代码翻译:支持代码片段在不同编程语言间进行自动翻译转换,翻译结果正确率高,在HumanEval-X代码翻译任务上超越了其它基线模型。
- 自动编程插件:CodeGeeX插件现已上架VSCode插件市场(完全免费),用户可以通过其强大的少样本生成能力,自定义代码生成风格和能力,更好辅助代码编写。
- 模型跨平台开源: 所有代码和模型权重开源开放,用作研究用途。CodeGeeX同时支持昇腾和英伟达平台,可在单张昇腾910或英伟达V100/A100上实现推理。
架构:CodeGeeX是一个基于transformers的大规模预训练编程语言模型。它是一个从左到右生成的自回归解码器,将代码或自然语言标识符(token)作为输入,预测下一个标识符的概率分布。CodeGeeX含有40个transformer层,每层自注意力块的隐藏层维数为5120,前馈层维数为20480,总参数量为130亿。模型支持的最大序列长度为2048。
语料:CodeGeeX的训练语料由两部分组成。第一部分是开源代码数据集,The Pile与CodeParrot。The Pile包含GitHub上拥有超过100颗星的一部分开源仓库,我们从中选取了23种编程语言的代码。第二部分是补充数据,直接从GitHub开源仓库中爬取Python、Java、C++代码;
CodeGeeX支持多种主流IDE,如VS Code、IntelliJ IDEA、PyCharm、Vim等,
同时,支持Python、Java、C++/C、JavaScript、Go等多种语言。
- 支持IDEs
- 支持语言
2.2.2 部署方式
面向个人提供vscode插件的在线方式。
面向企业提供CodeGeeX私有化部署服务。
2.2.3 使用费用
CodeGeeX 插件不需要任何上述条件。你所需的仅仅是进入插件商店进行下载就行。CodeGeeX插件对个人用户完全免费。
2.2.4 代码测试
基于CodeGeeX,我们开发了一个免费的VS Code插件(插件市场搜索“CodeGeeX”即可下载),辅助多语言编程开发。
2.3 Alibaba Cloud AI Coding Assistant(cosy)
https://developer.aliyun.com/tool/cosy
阿里云智能编码插件(Alibaba Cloud AI Coding Assistant)是一款AI编程助手提供代码智能补全和代码示例搜索能力,帮你更快更高效地写出高质量代码。
3、国外
当下主流的几个AI智能编程代码助手包括:Github Copilot、Codeium、Tabnine、Replit Ghostwriter和Amazon CodeWhisperer。
3.1 GitHub Copilot
https://github.com/features/copilot
2022年6月,GitHub Copilot 正式向大众发布。全世界的开发者都欣喜若狂,他们从2021年的测试版发行以来就一直等待着这一天。事实证明这个等待是值得的。 Copilot 实现了帮助开发者减少工作的同时加速他们的编码过程的目标。这近乎完美,除了一点—— Copilot 收费。
3.2 codeium
https://codeium.com/
Codeium是一个基于尖端人工智能技术构建的免费AI代码加速工具包。它提供代码补全、智能搜索和支持20多种语言的AI聊天功能。Codeium可用于所有流行的集成开发环境(IDE),包括Visual Studio Code、IntelliJ IDEA和Eclipse。
3.3 Amazon CodeWhisperer
https://aws.amazon.com/cn/codewhisperer/
Amazon CodeWhisperer 经过数十亿行 Amazon 和公开可用代码的训练,可以理解用自然语言(英语)编写的评论,可以实时生成多个代码建议以提高开发人员的工作效率。该服务直接在集成式开发环境(IDE)代码编辑器中为完整的函数和逻辑代码块(通常由多达 10–15 行代码组成)提供建议。生成的代码与您编写代码的方式类似,符合您的风格和命名规则。您可以快速接受排在首位的建议(Tab 键)、查看更多建议(箭头键)或继续编写自己的代码。在接受代码建议之前,请务必对其进行审查,并且可能需要对其进行编辑以确保完全符合您的预期。键入时,CodeWhisperer 甚至会自行提供完成注释的建议。
Amazon CodeWhisperer 直接在集成式开发环境 (IDE) 中为开发人员提供实时代码建议。个人开发人员可以免费使用 CodeWhisperer。组织为使用 CodeWhisperer 按“每位用户每月”支付固定的订阅费,无需预付费用或长期承诺。
3.4 Tabnine
https://www.tabnine.com/
TabNine是一款比较年轻的开发工具,刚发布的时候还是比较惊艳的,当时OpenAI刚开源GPT-2模型不久,TabNine基于GPT-2模型在海量代码数据上进行二次训练,打造出了一款针对代码的深度学习引擎,它能智能识别代码的上文信息,提供长序列的代码补全结果。目前,已经被Codota公司收购,并主推该工具,宣称支持所有主流的开发语言。
tabnine分基本版、增强版和企业版。免费版只提供较为基础的补全功能,收费的Pro版本补全效果更好.
3.5 Replit Ghostwriter
https://replit.com/site/ghostwriter
AI辅助编程圈出了个新晋独角兽。它叫Replit,一个成立于2016年的云开发平台,去年才刚刚上线了自己的类Coplipot工具Ghostwriter。Replit本身是一个在线集成开发环境,支持50多种开发语言。它可以帮助初学开发者避开复杂的环境部署,直接上手编程;对于有经验的开发者也很适用,能够进行协作编程、各种应用的构建和测试。
Currently, Ghostwriter costs 1,000 Cycles per month ($10 USD/month).
Ghostwriter is also available through our Pro plan.
当然,它并非免费,每月需要充值10美元或者用1000个Cycles来换(Replit平台发布的虚拟代币)。
3.6 Microsoft IntelliCode
https://learn.microsoft.com/zh-cn/visualstudio/intellicode/intellicode-visual-studio
Visual Studio 2022 配备了 IntelliCode ,它是一个 AI 辅助的代码伴侣,可让开发者输入更少的代码,提升效率。IntelliCode 可以完成整行代码,用户只需按两次 Tab 键即可编写可靠的代码。IntelliCode 还可以发现重复的编辑,并在整个代码库中存在类似模式的地方提出修复建议。
3.7 OpenAI Codex
https://openai.com/blog/openai-codex/
Codex 模型系列是 GPT-3 系列的后代,它经过了自然语言和数十亿行代码的训练。 该模型系列精通十几种语言,包括 C#、 JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、SQL,甚至 Shell,但最擅长 Python。
OpenAI Codex是GPT-3的后代;它的训练数据包含自然语言和来自公开来源的数十亿行源代码,包括公共 GitHub 存储库中的代码。OpenAI Codex在Python方面功能最强大,但它也精通十几种语言,包括JavaScript,Go,Perl,PHP,Ruby,Swift和TypeScript,甚至Shell。它的 Python 代码内存为 14KB,而 GPT-3 只有 4KB,因此在执行任何任务时,它可以考虑超过 3 倍的上下文信息。
结语
如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;
╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;
o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡)
感谢各位大佬童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!
相关文章:

【小沐学NLP】AI辅助编程工具汇总
文章目录 1、简介2、国内2.1 aiXcoder2.1.1 工具特点2.1.2 部署方式2.1.3 使用费用2.1.4 代码测试2.1.4.1 代码搜索引擎2.1.4.2 在线体验 2.2 CodeGeeX2.2.1 工具特点2.2.2 部署方式2.2.3 使用费用2.2.4 代码测试 2.3 Alibaba Cloud AI Coding Assistant(cosy&#…...
linux动态扩容系统盘(非lvm磁盘)
查看磁盘状态 执行df -Th查看磁盘情况 [rootiotdbtest1 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 7.7G 0 7.7G 0% /dev tmpfs tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs tmpfs …...

Gitlab仓库部署
Gitlab仓库部署 一、Gitlab的概述1、gitlab介绍2、gitlab主要功能3、gitlab和github的区别 二、部署环境1、安装依赖环境2、安装Postfix邮箱3、Gitlab优势4、Gitlab工作流程 三、Gitlab部署过程1、Yum安装Gitlab2、配置gitlab站点URL3、启动并访问Gitlab 四、Gitlab具体操作1、…...

Day46:项目-购物车案例
购物车案例 准备工作 首页默认加载,其余页面懒加载 调用defineStore方法构建store 入口main做对应配置,找指南,快速开始,把elementplus引入进来 import { createApp } from "vue"; import { createPinia } from &qu…...

【小沐学CAD】嵌入式UI开发工具:GL Studio
文章目录 1、简介2、软件功能3、应用行业3.1 航空3.2 汽车3.3 防御3.4 工业3.5 电力与能源3.6 医疗3.7 空间3.8 科技 结语 1、简介 https://disti.com/gl-studio/ DiSTI 是 HMI 软件、虚拟驾驶舱、仪表、信息娱乐、集群显示器和嵌入式 UI 解决方案的领先提供商。 而它的GL Stu…...

Python:Tornado框架之获取get和post的传参
一、获取get方式传参 import tornado.ioloop #导入tornado包 import tornado.web class MainHandle(tornado.web.RequestHandler):def get(self,id): #定义请求函数self.write("Hello %s!" %id)apptornado.web.Application([ #定义应用配置函数(r"/…...

JSON和全局异常处理
目录 1️⃣JSON 一、什么是json? 二、与javascript的关系 三、语法格式 四、注意事项 五、总结 六,使用json 1导入pom.xml依赖 2.配置spring-mvc.xml 3. ResponseBody注解使用 创建一个web层控制器 编写ClazzBiz 实现接口 测试: …...

骨传导耳机有害处吗、骨传导耳机真的不好用吗?
骨传导耳机没有害处。 骨传导耳机是通过将声音传递到颅骨,再由颅骨传递到内耳,从而达到听声音的效果,与传统的耳机不同。 因此,骨传导耳机不会直接对人的身体健康、耳朵产生压力和损伤,也不会影响耳道和中耳的正常功能…...

第一类曲面积分:曲面微元dσ与其投影面积微元dxdy之间的关系推导
第一类曲面积分:曲面微元dσ与其投影面积微元dxdy之间的关系推导 本篇博客精简自本人关于曲面积分的博客:详情见:曲面积分(Surface Integral) 曲面参数化(曲面上的每个点都使用起点为原点、终点为该曲面上的点的向量表示&#x…...
vue学习之Font Awesome图标
官方文档 https://fontawesome.com.cn/v5 Font Awesome 安装 cnpm install font-awesome/src/main.js 引入css import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;...

mysql内连接与外连接详解
内连接与外连接 内连接外连接 在数据库中,连接操作是一种把两个或者多个表的记录组合在一起的操作,常用的有内连接(Inner Join)、外连接(Outer Join)等。 内连接 内连接(Inner Join࿰…...
在Mujoco环境下详细实现PPO算法应用于Humanoid-v2的完整教程
第一部分:介绍 1. 背景介绍 MuJoCo,或称为多关节动力学与控制的物理引擎,已经成为了强化学习中仿真环境的首选工具。其精确的物理仿真和高效的速度使得研究者可以在这个环境下测试和验证各种算法。PPO,即近端策略优化,是一种深度强化学习中的策略优化方法。它解决了TRPO…...

怎么给网络加速
首先,按winr,调出运行窗口。 输入cmd,回车,再输入gpedit.msc,调出本地组策略编辑器。 点击计算机配置下的管理模版。 再点击网络。 再点击Qos数据包计划程序。 再点击限制可保留宽带。 选择已启用,再把带宽…...

golang for循环append的数据重复
原因,因为使用了& 需要增加一行,问题解决...

趣谈网络协议_1
趣谈网络协议_1 第1讲 | 为什么要学习网络协议?第4讲 | DHCP与PXE:IP是怎么来的,又是怎么没的?动态主机配置协议(DHCP) 第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?第…...
利用WebStorm开发react——本文来自AI创作助手
要在WebStorm中开发React应用程序,请按照以下步骤进行设置: 1.安装Node.js和npm(如果尚未安装)。 2.下载和安装WebStorm。 3.打开WebStorm,并在欢迎界面中选择“Create New Project”。 4.在弹出窗口中,…...
将本地构建的镜像推送到远程镜像库,构建多种系统架构支持的Docker镜像并推送到Docker Hub
目录 推送到 Docker Hub前提:需要在 [Docker Hub](https://hub.docker.com/) 创建账户、创建仓库。1. 创建 Dockerfile 和构建镜像:docker build -t2. 登录到远程镜像库:docker login3. 将镜像标记为远程仓库地址:docker tag4. 推…...

【技术分享】NetLogon于域内提权漏洞(CVE-2020-1472)
一、漏洞介绍 CVE-2020-1472是一个Windows域控中严重的远程权限提升漏洞。攻击者在通过NetLogon(MS-NRPC)协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码置为空,从而控制域控服务器。该漏洞适用于Win2008及后…...

python学习之【模块】
前言 上一篇文章 python学习之【深拷贝】中学习了python中的深浅拷贝学习内容,这篇文章接着学习python中的模块。 什么是模块 在python中,一个文件(以“.py”为后缀名的文件)就叫做一个模块,每一个模块在python里都…...
dns电脑服务器发生故障怎么修复
DNS电脑服务器发生故障可能会导致网络连接问题、网页无法访问、或者电子邮件无法发送等情况。修复DNS电脑服务器故障可以采取多种方法,例如检查网络连接、更换DNS服务器等措施。当DNS电脑服务器发生故障时,可以采取以下修复措施: 尝试刷新DNS…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...

算法—栈系列
一:删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...