当前位置: 首页 > news >正文

【小沐学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&#xff0…...

在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.在弹出窗口中&#xff0c…...

将本地构建的镜像推送到远程镜像库,构建多种系统架构支持的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…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

React Native 导航系统实战(React Navigation)

导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...