阿里 “通义灵码” 真的 “灵吗”,全保姆级实操

2024-09-01 00:20

本文主要是介绍阿里 “通义灵码” 真的 “灵吗”,全保姆级实操,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 最近很多朋友,都在关注阿里公测的“通义灵码”,我索性也安装了,准备看看它真的有说的那么“灵吗”?

图片

一、安装

官网:https://tongyi.aliyun.com/lingma/

安装方式:https://tongyi.aliyun.com/lingma/download

帮助手册:https://help.aliyun.com/document_detail/2590613.html

补充几个安装步骤:

1、我用的是IDEA,各位IDEA的小伙伴要注意从插件商店去安装,搜索“TONGYI Lingma”。

图片

2、安装完成后要重启,重启后可能会有一定的加载过程,比较慢。

图片

3、重启后,IDEA会提示你灵码要登录。

图片

图片

4、点击登录后会进入阿里云登录界面,登录自己的阿里账号。

图片

图片

图片

5、登录成功后,可以看看右边的栏目中找到“通义灵码”的插件,点击后即可对话。

图片

6、快捷键。

图片

二、初探

一)看看聊闲话的能力

安装这个的目的就是为了让它帮咱们写代码,现在一起来看看他写代码的能力,首先我尝试的问了一些题外话:

1、开发团队的问题

图片

回答很官方,哈哈。

2、看看它会多少种语言

图片

由于截图有限我把他的内容整理出来,能明确的是102种:

作为一款智能编码助手,通义灵码(TONGYI Lingma)具备处理多种编程语言的能力,能够理解并为用户提供以下主要编程语言的相关支持:

通用编程语言:

Java、Python、C、C++、C#、JavaScript、TypeScript、Rust、Swift、Go、Kotlin、Scala、Ruby、PHP、Perl、Objective-C、Dart、Erlang、Haskell、Lua、Julia、Groovy、R、Matlab

Web开发相关:

HTML/CSS、React、Vue.js、Angular、Svelte、jQuery、Bootstrap、Tailwind CSS、Webpack、Gatsby、Next.js、Nuxt.js、Jekyll、WordPress、Drupal、Laravel、Django、Flask、Express.js、Fastify、Node.js

移动开发:

Android (Java/Kotlin)、iOS (Swift/Objective-C)、Flutter、React Native

数据库与数据处理:

SQL (MySQL, PostgreSQL, SQLite, Oracle, SQL Server, etc.)、

NoSQL (MongoDB, Cassandra, Redis, Elasticsearch, etc.)、

GraphQL、Pandas、NumPy、SciPy、pandas-SQLAlchemy、dplyr (R)

脚本与自动化:

Bash、PowerShell、Ansible、Terraform、Chef、Puppet

数据分析与科学计算:

NumPy、Pandas、SciPy、Matplotlib、Seaborn、scikit-learn、TensorFlow、PyTorch、Keras、Theano、Spark MLlib、R Shiny

云计算与容器化:

Docker、Kubernetes、AWS SDKs、Azure SDKs、Google Cloud SDKs、OpenStack、Terraform、CloudFormation

其他工具与框架:

Git、Jenkins、Travis CI、CircleCI、GitHub Actions、Docker Compose、Makefiles、JUnit、pytest、Mocha、Chai、Jest、Enzyme、ESLint、Prettier、Black、Flake8、SonarQube、Jupyter Notebook

以上列举了通义灵码能够提供支持的部分编程语言、框架、库和服务。

3、是否能判断我当前的代码环境和开发环境

图片

嗯~意料之中吧。

三、看看发力点

一)代码补全

直接上干货,我在service中增加了一个方法,只给它把注释写好,让他来补写代码:

图片

组合键ALT + P:

图片

Tab键将代码做实,回车后会自动提示下面的代码:

图片

但是显然还没完成,我们在方法中间再让它补充一下:

图片

这次就完美了,哈哈总体来说,简单的代码还是可以写的。

图片

二)再看看查问题的能力

1、直白问题查找

图片

回答挺全面的,因为问题就很模糊,回答自不用说了。

三)选中代码进行bug查找

选中左边的文件认为有问题的代码,在右边的对话框中填入“/查找问题”,回车。

图片

图片

图片

从这些原因中进行分析和查找,多半能解决。

四)对问题进行搜索

解答大多数来自“stackoverflow”

图片

图片

四、尝试让他写个增删改查

下面我以Java为例,用rouyi框架做演示,让它来写一个增删改查试试:

一)先写Controller

图片

package com.example.app.controller.system;import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.example.app.common.annotation.Log;
import com.example.app.common.core.controller.BaseController;
import com.example.app.common.core.domain.AjaxResult;
import com.example.app.common.core.domain.entity.CustomUser;
import com.example.app.common.enums.BusinessType;
import com.example.app.common.utils.SecurityUtils;
import com.example.app.common.utils.StringUtils;
import com.example.app.common.utils.poi.ExcelUtil;
import com.example.app.system.service.ICustomUserService;/*** 自定义用户信息* * @author Your Name*/
@RestController
@RequestMapping("/system/customuser")
public class CustomUserController extends BaseController
{@Autowiredprivate ICustomUserService customUserService;/*** 获取自定义用户列表*/@PreAuthorize("@ss.hasPermi('system:customuser:list')")@GetMapping("/list")public TableDataInfo list(CustomUser customUser){startPage();List<CustomUser> list = customUserService.selectCustomUserList(customUser);return getDataTable(list);}@Log(title = "自定义用户管理", businessType = BusinessType.EXPORT)@PreAuthorize("@ss.hasPermi('system:customuser:export')")@PostMapping("/export")public void export(HttpServletResponse response, CustomUser customUser){List<CustomUser> list = customUserService.selectCustomUserList(customUser);ExcelUtil<CustomUser> util = new ExcelUtil<CustomUser>(CustomUser.class);util.exportExcel(response, list, "自定义用户数据");}// ... (省略导入功能相关方法,若需要请自行添加)/*** 根据自定义用户ID获取详细信息*/@PreAuthorize("@ss.hasPermi('system:customuser:query')")@GetMapping(value = { "/", "/{customUserId}" })public AjaxResult getCustomUserInfo(@PathVariable(value = "customUserId", required = false) Long customUserId){if (StringUtils.isNotNull(customUserId)){CustomUser customUser = customUserService.selectCustomUserById(customUserId);return AjaxResult.success(customUser);}return AjaxResult.error("Invalid custom user ID");}/*** 新增自定义用户*/@PreAuthorize("@ss.hasPermi('system:customuser:add')")@Log(title = "自定义用户管理", businessType = BusinessType.INSERT)@PostMappingpublic AjaxResult add(@Validated @RequestBody CustomUser customUser){if (!customUserService.checkCustomUserNameUnique(customUser)){return error("新增自定义用户'" + customUser.getUserName() + "'失败,登录账号已存在");}// ... (根据实际需求添加其他唯一性校验,如手机号、邮箱等)customUser.setCreateBy(getUsername());// ... (如有需要,进行密码加密或其他初始化操作)return toAjax(customUserService.insertCustomUser(customUser));}/*** 修改自定义用户*/@PreAuthorize("@ss.hasPermi('system:customuser:edit')")@Log(title = "自定义用户管理", businessType = BusinessType.UPDATE)@PutMappingpublic AjaxResult edit(@Validated @RequestBody CustomUser customUser){customUserService.checkCustomUserAllowed(customUser);if (!customUserService.checkCustomUserNameUnique(customUser)){return error("修改自定义用户'" + customUser.getUserName() + "'失败,登录账号已存在");}// ... (根据实际需求添加其他唯一性校验,如手机号、邮箱等)customUser.setUpdateBy(getUsername());return toAjax(customUserService.updateCustomUser(customUser));}/*** 删除自定义用户*/@PreAuthorize("@ss.hasPermi('system:customuser:remove')")@Log(title = "自定义用户管理", businessType = BusinessType.DELETE)@DeleteMapping("/{customUserIds}")public AjaxResult remove(@PathVariable Long[] customUserIds){if (ArrayUtils.contains(customUserIds, getUserId())){return error("当前用户不能删除");}return toAjax(customUserService.deleteCustomUserByIds(customUserIds));}// ... (省略其他自定义用户管理相关功能,如重置密码、状态修改、授权等,若需要请自行添加)/*** 获取自定义用户所属部门树列表*/@PreAuthorize("@ss.hasPermi('system:customuser:list')")@GetMapping("/deptTree")public AjaxResult customUserDeptTree(CustomUser customUser){// ... (实现或调用相应服务方法获取自定义用户的部门树列表)return success(customUserDeptTreeList);}
}

代码还不错,基本满足要求,接下来我给它数据表的sql,告诉它用ORM用的MyBatis,让他生成domain文件、service层文件、mapper文件和xml文件,结果就差强人意了:

二)domain

图片

三)service

有点拉跨,想使用就得不停的连续问

图片

四)Mapper

直接给了个空接口

图片

五)XML

应该是回答字数限制,突然停止了,然后我让它“继续”。。。。

图片

图片

嗯~~~~它开始别的操作了,应该是上下文衔接不好。

综合看,不如代码生成器来的方便,能节约开发量吗,能节约,但不是很大,没那么玄乎。

五、它适合来干啥?

1、简单的代码补全,前提是你能够有逻辑能力,有清晰的判断,并且告诉它,你会引入其他类或方法来辅助它。

2、查找明显错误(逻辑性强的难点儿)

3、生成固定写法和算法

例如这样的:

图片

4、生成注释和解释代码

六、总结

总的来说,灵码还是挺灵的,但是如果想从众多 AI编码工具中脱颖而出,还得做几点加强:

1、超时问题,我用了2小时,大概出现了10次左右。

图片

2、应加强上下文联动,尤其回答不够,需要“继续”时。

3、给出相应的提示词Demo,让程序员更快的了解专用的提示词。

4、增加文件上传对文件进行分析,然后根据要求修复代码或者,生成改写代码。

5、能够分析当前打开代码的语言和环境,能够快速识别,能够给使用者更好的体验。


怎么样今天的内容还满意吗?再次感谢观众老爷的观看。

最后,祝您早日实现财务自由,还请给个赞,谢谢!

这篇关于阿里 “通义灵码” 真的 “灵吗”,全保姆级实操的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125413

相关文章

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

为什么现在很多人愿意选择做债务重组?债重组真的就这么好吗?

债务重组,起初作为面向优质企业客户的定制化大额融资策略,以其高效周期著称,一个月便显成效。然而,随着时代的车轮滚滚向前,它已悄然转变为负债累累、深陷网贷泥潭者的救赎之道。在此路径下,个人可先借助专业机构暂代月供,经一段时间养护征信之后,转向银行获取低成本贷款,用以替换高昂网贷,实现利息减负与成本优化的双重目标。 尽管债务重组的代价不菲,远超传统贷款成本,但其吸引力依旧强劲,背后逻辑深刻。其一

阿里云服务器ces

允许公网通过 HTTP、HTTPS 等服务访问实例 https://help.aliyun.com/document_detail/25475.html?spm=5176.2020520101.0.0.3ca96b0b3KGTPq#allowHttp

LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

引言 模型概述 模型架构 训练方法 性能评估 实战演示 总结 引言 金山挂月窥禅径,沙鸟听经恋法门。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait,能根据用户提供的文本描述,快速生成既忠实于原图又能灵活调整的个性化人像,用户甚至可以通过简单的句子来描述多个不同的人物,而不需要一一指定每个人的位置。这种设计大大简化了用户的操作,提升了个性化生成的效率和效果。 UniPortrait以统一的方式定制单 ID 和多 ID 图像,提供高保真身份保存、广泛的面部可编辑性、自由格式的文本描述,并且无需预先确定的布局。

STM32 HAL CAN通讯 实操

1、简介 相比于串口通讯,对于刚接触CAN通讯的小白来说,CAN通讯相对复杂,看各种视频、帖子理论,总是一知半解。本次通过傻瓜式操作,先实现CAN通讯的交互,以提高小白的信心,也便于自己复习观看。本次以STM32CubeMX进行初始化配置,通过Keil 5软件进行软件设计,通过CAN盒实现进行数据的交互。该流程实际以STM32F0、F1、F3、F4、F7实测好用(理论上都适用),这三种型号单片机

Jenkins+Svn+Vue自动化构建部署前端项目(保姆级图文教程)

目录 介绍 准备工作 配置jenkins 构建部署任务 常见问题 介绍 在平常开发前端vue项目时,我们通常需要将vue项目进行打包构建,将打包好的dist目录下的静态文件上传到服务器上,但是这种繁琐的操作是比较浪费时间的,可以使用jenkins进行自动化构建部署前端vue 准备工作 准备vue项目,服务器,linux,ubuntu,centos等都可以,服务器上已经

SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)

上一章讲了 BAPI的概念,以及如何调用SAP里面的既存BAPI。 SAP学习笔记 - 开发01 - BAPI是什么?通过界面和ABAP代码来调用BAPI-CSDN博客 本章继续讲开发相关的内容,主要就是BTP的实际操作流程,比如账号注册,登录,BTP集成开发环境的搭建这方面。 目录 1,账号注册 2,BTP登录URL 3,如何在BTP上进行开发? 以下是详细内容。 1,账

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c