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

GitHub Copilot 最佳免费平替:阿里通义灵码

之前分享了不少关于 GitHub Copilot 的文章,不少粉丝都评论让我试试阿里的通义灵码,这让我对通义灵码有了不少的兴趣。

今天,阿七就带大家了解一下阿里的通义灵码,我们按照之前 GitHub Copilot 的顺序分享通义灵码在相同场景下的表现。

先贴一下通义灵码官网:https://tongyi.aliyun.com/lingma/download

我们开始

IDEA 上安装通义灵码

settings 选择 Plugins 输入 TONGYI Lingma,点击 install 即可,大概几分钟之后安装完成,点击重启 IDEA。

选择登陆进入通义灵码登录页,登陆阿里云账号,可以直接通过支付宝扫码即可。

可以看到,他支持云端大模型,也支持本地模型服务,调用自己已有的大模型服务,如果公司对安全性要求比较高的,使用这个还是不错的。

通义灵码代码实践

1、解释代码

1.1 解释代码

选中代码,选择通义灵码-解释代码,和 Copilot 的 Explain This 作用一致。

我们看到这个解释的结果会在通义灵码的 Chat 对话框内输出,但是它的功能更丰富,可以选择更精简、更详细的结果。

1.2 逐行解释

直接在上一步的 Chat 界面,输入「逐行解释」,之后通义灵码就会生成每行代码的注释了。

2、代码解释

2.1 单行注释

在代码上方输入单行注释符合 //,等一会模型就会生成下方代码注释了。

2.2 逐行注释

在 Chat 界面,直接输入「逐行注释」,就会生成针对所有选中代码的单行注释了。

3、生成文档/方法注释

右键选择通义灵码,然后选择生成代码注释,就能为方法生成接口级别注释。

我们看到这个例子中,生成的注释还参考了之前的模板,生成的注释也比较准确。

4、注释生成代码

我们直接输入注释 「bubble sort」换行,就能看到模型推荐的冒泡排序的完整代码了,还是非常快速和强大的。

5、生成单元测试

右键选择通义灵码,然后选择「生成单元测试」,就能为方法生成接口级别注释。

我们能看到通义灵码为选中的代码生成了简单的单元测试,我们 copy 到 test 对应的目录即可运行,我们也可以选择下方的按钮,使用不同的测试库重新生成单元测试。

总结时刻

本文的顺序基本上和之前的 GitHub Copilot 一致。我们能看到通义灵码和 GitHub Copilot 的操作基本类似。比较明显的区别就是,通义灵码暂时不收费!

另外,通义灵码在 Chat 界面下方会一些扩展功能,方便用户选择更适合自己的输出。

整体来说,GitHub Copilot 能力上比通义灵码还是更强大,但是还是比较贵的,一个月 10 美金的费用,会干掉大部分个人使用者。

这个时候,免费的通义灵码其实完全能满足大部分个人使用者的使用,大家有兴趣的可以赶紧试试~

相关文章:

GitHub Copilot 最佳免费平替:阿里通义灵码

之前分享了不少关于 GitHub Copilot 的文章,不少粉丝都评论让我试试阿里的通义灵码,这让我对通义灵码有了不少的兴趣。 今天,阿七就带大家了解一下阿里的通义灵码,我们按照之前 GitHub Copilot 的顺序分享通义灵码在相同场景下的…...

体系化的进阶学习内容

UWA学堂:传播游戏行业的体系化的进阶学习内容。UWA学堂作为面向开发者的在线学习平台,目前已经上线272门课程,涵盖了3D引擎渲染、UI、逻辑代码等多个模块,拥有完整的学习体系,一直致力于为广大的开发者提供更丰富、更优…...

SpringBoot解决前后端分离跨域问题:状态码403拒绝访问

最近在写和同学一起做一个前后端分离的项目,今日开始对接口准备进行 登录注册 的时候发现前端在发起请求后,抓包发现后端返回了一个403的错误,解决了很久发现是【跨域问题】,第一次遇到,便作此记录✍ 异常描述 在后端…...

【linux】更改infiniband卡在Debian系统的网络接口名

在Debian或任何其他基于Linux的系统中,网络接口的名称由udev系统管理。通过创建udev规则,可以修改网络接口名称。以下是更改InfiniBand卡接口名称的一般步骤: 1. 找到网络接口的属性,以编写匹配的udev规则 可以使用udevadm命令查…...

SPRING BOOT发送邮件验证码(Gmail邮箱)

SPRING BOOT邮件发送验证码 一、Gmail邮箱配置 1、进入Gmail(https://mail.google.com) 2、打开谷歌右上角设置 3、启用POP/IMP 4、启用两步验证(https://myaccount.google.com/security) 5、建立应用程式密码 6、复制保存应用程式密码 二、代码 1、引入依赖 <d…...

Liunx安装FTP和SFTP

ftp端口&#xff1a;20/21 sftp端口&#xff1a;22 一、ftp 1、安装ftp yum install vsftpd #安装ftp 服务 &#xff08;1&#xff09;查看ftp服务的状态 命令&#xff1a;service vsftpd status PS&#xff1a;提示vsftpd: command not found&#xff0c;修改PATH的环境…...

【Mars3d】new mars3d.layer.GeoJsonLayer({不规则polygon加载label不在正中间的解决方案

问题&#xff1a; 1.new mars3d.layer.GeoJsonLayer({type: "polygon",在styleOptions里配置label的时候&#xff0c;发现这个 不规则polygon加载的时候&#xff0c;会出现label不在中心位置。 graphicLayer new mars3d.layer.GeoJsonLayer({ name: "全国省界…...

怎么快速修复mfc140.dll文件?解决mfc140.dll缺失的方法

面对计算机报告的 ​mfc140.dll​ 文件遗失错误&#xff0c;这通常表明系统中缺少一个关键的动态链接库文件&#xff0c;该文件对于运行以 Microsoft Foundation Class (MFC) 库编写的程序十分重要&#xff0c;尤其是那些需要图形界面的应用程序和一些游戏。若没有这个文件&…...

安全防御之入侵检测与防范技术

安全防御中的入侵检测与防范技术主要涉及到入侵检测系统&#xff08;IDS&#xff09;和入侵防御技术&#xff08;IPS&#xff09;。 入侵检测系统&#xff08;IDS&#xff09;是一种对入侵行为自动进行检测、监控和分析的软件与硬件的组合系统。IDS通过从计算机网络或系统中的若…...

Leetcode2807. 在链表中插入最大公约数

Problem: 2807. 在链表中插入最大公约数 文章目录 题目思路注意点Code 题目思路 模拟插入流程&#xff1a; 检测当前节点是否有后置结点&#xff1b;将当前结点与后置结点的值做最大公约数处理得到新结点的值&#xff0c;然后插入到当前结点之后&#xff1b;再将检测结点向后…...

MySQL-DML

DML是数据操纵语言&#xff0c;用来对表中数据进行增删改操纵。 添加数据&#xff1a;INSERT 1.给指定字段添加数据&#xff1a;INSERT INTO 表名(字段名1,字段名2,...)VALUES(值1,值2); 2.给全部字段添加数据&#xff1a;INSERT INTO 表名VALUES(值1,值2) 3.给指定字段批量添…...

开源项目 | 完整部署流程、一款开源人人可用的开源数据可视化分析工具

&#x1f4da; 项目介绍 在互联网数据大爆炸的这几年&#xff0c;各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的 BI 工具。 借助这些 BI 工具&#xff0c;我们能够大幅提升数据分析效率、生成更高质量的项目报告&#xff0c;让用户通过直观的数据看到结…...

我建立了一个资源分享群

我建立了一个资源分享群 在为寻找资源犯愁&#xff1f; 在为分享资源犯愁&#xff1f; 一起加入分享资源群&#xff08;是wx群哦&#xff09;吧&#xff01;你可以分享自己的资源帮助他人。你可以在群组里需求资源获取别人的帮助。发广告请绕行&#xff0c;会被拉黑哦 微信…...

C++中几个常用的类型选择模板函数

std::enable_if<B, T>::type 如果编译期满足B&#xff0c;那么返回类型T&#xff0c;否则编译报错 std::conditional<B, T, F>::type 如果编译期满足B&#xff0c;那么返回类型T&#xff0c;否则返回类型F 下面是一个示例&#xff0c;展示如何使用 std::condit…...

【LeetCode】1321. 餐馆营业额变化增长

表: Customer ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name | varchar | | visited_on | date | | amount | int | ------------------------ 在 SQL 中&#xff0c;(custo…...

【网络技术】【Kali Linux】Wireshark嗅探(八)动态主机配置协议(DHCP)

一、实验目的 本次实验使用 Wireshark &#xff08;“网鲨”&#xff09;流量分析工具进行网络流量嗅探&#xff0c;旨在初步了解动态主机配置协议&#xff08;DHCP协议&#xff09;的工作原理。 二、DHCP协议概述 动态主机配置协议&#xff08; D ynamic H ost C onfigurat…...

算法29:不同路径问题(力扣62和63题)--针对算法28进行扩展

题目&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff0…...

openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位

文章目录 openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位188.1 磁盘满故障引起的core问题188.1.1 问题现象188.1.2 原因分析188.1.3 处理办法 188.2 GUC参数log_directory设置不正确引起的core问题188.2.1 问题现象188.2.2 原因分析188.2.3 处理办…...

kubernetes入门到进阶(5)

目录 镜像仓库&#xff1a;怎么用好docker hub这个宝藏 什么是镜像仓库&#xff08;Registry&#xff09; 什么是docker hub 如何在docker hub上挑选镜像 docker hub上进行概念股命名规则是什么 该怎么上传自己的镜像 离线环境该怎么办 小结 镜像仓库&#xff1a;怎么用好docke…...

【字典树Trie】LeetCode-139. 单词拆分

139. 单词拆分。 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "leetcode&q…...

pytest常用的第三方插件介绍

本节介绍了如何安装和使用第三方插件。如果你想要编写自己的插件&#xff0c;请参阅“编写插件”。 通过pip可以轻松安装第三方插件&#xff1a; pip install pytest-NAME pip uninstall pytest-NAME如果已经安装了插件&#xff0c;pytest会自动找到并集成它&#xff0c;无需手…...

【经验】VSCode连接远程服务器(可以使用git管理、方便查看和编辑Linux源码)

1、查看OpenSSH Windows10通常自带OpenSSH不需要安装。 Windows10下检查是否已经安装OpenSSH的方法: 1)按下快捷键Win + X,选择Windows PoweShell(管理员) 2)输入以下指令: Get-WindowsCapability -Online | ? Name -like ‘OpenSSH*’ 3)如果电脑未安装OpenSSH,…...

机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?

一、 引言 乳腺癌是女性最常见的恶性肿瘤之一&#xff0c;也是全球范围内女性死亡率最高的癌症之一。据统计&#xff0c;每年全球有超过200万人被诊断为乳腺癌&#xff0c;其中约60万人死于该疾病。因此&#xff0c;乳腺癌的早期诊断和风险评估对于预防和治疗乳腺癌具有非常重要…...

MySQL学习笔记1: 数据库的简单介绍

目录 1. 数据库是什么2. 数据库这一类软件中的一些典型代表2.1. Oracle2.2. MySQL2.3. SQL Server2.4. SQLite (lite 轻量版) 3. 数据库的类型3.1. 关系型数据库3.2. 非关系型数据库 4. 总结 1. 数据库是什么 数据库是一类软件&#xff0c;这一类软件可以用来管理数据&#xf…...

【Docker】安装ELK(Docker Compose)

一、创建挂载目录 mkdir -p /docker/elk/elasticsearch/{plugins,data} mkdir -p /docker/elk/logstash 二、给目录授权 chmod 777 /docker/elk/elasticsearch/data 创建logstash配置文件 vim /docker/elk/logstash/logstash.conf input {tcp {mode => "server" h…...

【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用

【机器学习&#xff1a;欧氏距离 】机器学习中欧氏距离的理解和应用 距离公式二维更高的维度点以外的物体属性欧几里得距离的平方概括历史 在数学中&#xff0c;欧氏距离’是指欧氏空间中任意两点之间的直线距离。这种距离可以通过应用勾股定理来计算&#xff0c;利用两点的笛卡…...

系统安全及应用

1、基本安全措施 1.1、系统账号清理 在Linux系统中&#xff0c;除了用户手动创建的各种账号之外&#xff0c;还包括随系统或程序安装过程而生产的其他大量账号。除了超级用户root之外&#xff0c;其他大量账号只是用来维护系统运作、启动或保持服务进程&#xff0c;一般是不允…...

Danil Pristupov Fork(强大而易用的Git客户端) for Mac/Windows

在当今软件开发领域&#xff0c;团队协作和版本控制是非常重要的方面。在这个过程中&#xff0c;Git成为了最受欢迎的版本控制工具之一。然而&#xff0c;对于Git的使用&#xff0c;一个好的客户端是至关重要的。 今天&#xff0c;我们要为大家介绍一款强大而易用的Git客户端—…...

最新GPT4.0使用教程,AI绘画,ChatFile文档对话总结+GPT语音对话使用,DALL-E3文生图

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画&#xff0c;文档对话总结DALL-E3文生图&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和…...

【ARM 嵌入式 编译系列 7.2 -- GCC 链接脚本中 DEFINED 函数与 “AT>“ 符号详细介绍】

文章目录 GCC 链接脚本中 DEFINED 函数DEFINED() 函数> (放置在哪个区域)AT> (加载地址) (填充字节) 在链接脚本中&#xff0c;组合示例 GCC 链接脚本中 DEFINED 函数 在 ARM GCC 链接脚本&#xff08;.ld 文件&#xff09;中&#xff0c;DEFINED() 是一种内置函数&…...

做国际贸易网站要什么条件/广西seo优化

一、系统总体构成地铁2号线正线信号系统采用基于无线通信的具有完整ATC功能的列车控制系统(CBTC)&#xff0c;同时还提供了连续式ATP功能丧失情况下的点式ATP列车超速防护系统。包括列车自动防护ATP、列车自动运行ATO、列车自动监控ATS、正线计算机联锁CBI四个子系统构成。信号…...

网站banner图最好多大合理/抖音信息流广告怎么投放

Mysql mode与 enum 类型作者:neeao | 2008-09-10 18:29:51 | 编程开发from:http://www.51CTO提醒您&#xff0c;请勿滥发广告!/viewthread.php?tid10154831.sql mode简介在Mysql中,sql mode可以用来解决以下问题(1).通过设置不同的sql mode,可以在不同严格程序进行数据校验.有…...

制作绘本怎么做简易/深圳seo推广

日期处理在各种语言中都会遇到。 Python 也不例外&#xff0c;其中主要涉及到的就是日期转换&#xff0c;日期比对&#xff0c;日期输出等。 不同的日期有不同的处理方式&#xff0c;有些日期可能有时区&#xff0c;有些日期可能没有&#xff0c;根据我们的一些考古来看&…...

wordpress主题 sen/上海知名seo公司

点击查看全文 10月12日&#xff0c;在2017杭州•云栖大会上阿里云宣布&#xff0c;未来将为1000万家企业提供智能时代的技术平台。阿里云副总裁李津表示&#xff1a;”2017年&#xff0c;阿里云8年的时候&#xff0c;80%的创新企业在阿里云上。再过八年&#xff0c;如果80%的企…...

手机网站怎么建设/seo推广专员招聘

如下例程ReflectTester类进一步演示了Reflection API的基本使用方法。 ReflectTester类有一个copy(Object object)方法&#xff0c;这个方法能够创建一个和参数object同样类型的对象&#xff0c;然后把object对象中的所有属性拷贝到新建的对象中&#xff0c;并将它返回。 这个例…...

长春本地网站制作/网站设计与开发

#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Huanglinshengfor i in range(10):if i < 5:continue #不往下走了,直接进入下一次loopprint("loop:",i)for i in range(10):if i > 5:break #不往下走了,直接跳出整个loopprint("loop:",i)…...