MacTalk 测评通义灵码,如何实现“微信表情”小功能?

news/2024/11/13 11:54:37/文章来源:https://www.cnblogs.com/yyds114/p/18400391

作者:池建强,墨问西东创始人

前段时间,我写了篇墨问研发团队放弃 GitHub Copilot 的文章,没想到留言区一些读者推荐我们试试通义灵码,说它效果很不错。我呢,一直没腾出时间折腾。

直到月中时,到阿里云参加一场直播活动,机缘巧合碰到了通义灵码的总负责人叔同,他说通义灵码智能问答能力已经升级到 Qwen2 模型,这也是目前国内最强的开源模型 ,问答效果全面升级。话里话外,我能感觉到他对自家产品的热爱,瞬间被他的热情感染了。

叔同介绍说,从去年 11 月上线至今,通义灵码已经是国内用户规模第一的智能编码助手了,插件下载量超过 350 万,每天推荐的代码超过 3000 万次。这个数据我着实有点意外,之前咱做过极客时间,知道中国的程序员数量也就 1000 来万的样子,以通义灵码目前这个用户体量,也怪不得当时评论区那么多用户推荐。

通义灵码官网:https://tongyi.aliyun.com/lingma/

昨晚和我们 CTO 田海聊天,他饶有兴致地和我讲,他很多工程师朋友早就在用通义灵码了。目前,AI 辅助编程已是大势所趋。从工程师的角度看,这样的工具确实可以极大提升开发效率,而从研发管理者的视角,更有意义的是,它还可以统一团队的代码规范。

只要做过技术 Leader 的人都知道,团队规模一大,必然需要统一大家的代码规范,比如变量怎么命名,异常日志怎么写,Git Commit 描述怎么写。要不然,老王一套风格,小李一套风格,他俩协作起来,不拧巴才怪。车同轨,书同文,只有这样才能提高协同效率。

之前 Leader 想统一团队代码风格,基本只有两个手段,第一,靠口头强调,一遍一遍和大家说。第二,靠人工或者插件检查,比如当年我们还用过 Alibaba Java 代码规范插件。但这两种方法,效果都不好,毕竟改变一个人的习惯没那么容易,后置的检查也很影响效率。

通义灵码有一个强大的功能就是企业知识库检索增强。我们只需要上传团队的代码规范文档,通过 #team docs ,就可以按照代码规范文档来优化代码,工程师也能在日常编码中获得相应的补全建议,让代码更贴近团队标准。

你看, 相比之前的检查和口头强调,现在通过新的工具,直接把规范揉到敲代码的环节,就更容易落地干巴巴的规范。

墨问是一家创业公司,很难一下子配齐像大公司那样的研发团队,这类 AI 编程辅助工具其实在一定程度上帮助我们的研发同学成长为全栈工程师,一个人就能顶上一个团队。

从我们团队的使用体验看,通义灵码有两个优点。第一,精准、快速的问答能力,它可以准确地捕捉提问的核心内容。并且我们发现,通义灵码在处理多轮对话时,上下文的关联性处理更加智能,能够连续理解多个问题并提供连贯的答案。

第二,对开发者友好。通义灵码的操作按键与日常的开发体验一致,没有任何学习成本。在编写代码过程中,它会自动出现浅灰色提示,如果需要补全,按 tab 即可。如果不需要补全,继续编写,提示也会智能更新,不影响编程,非常流畅。

除此之外,相比 GitHub Copilot 这样国外的 AI 编码工具,它对中文的支持更好。毕竟,我们和编程助手的交互主要还是使用中文。而对中文指令的遵循能力,直接决定了产品体验以及最终的代码生成质量。更重要的还是在安全性问题上,通义灵码能够更好地满足本地数据隐私和合规性要求。

当然,还有大家比较关心的费用问题,目前通义灵码个人版是完全免费的,除了部分面向企业级场景的高级别功能外,其它功能都可以免费使用,基本能满足开发者日常需要。

这么讲有点空,我还是以墨问的具体开发场景为例子给你演示下。上次从杭州回来后,我司前端夏老师在我的建议下,横刀策马,哐哐哐一通点击之后,麻溜地装上了通义灵码的插件,已经用它开发了几个功能。

其实相比后端,前端代码的生成难度更大。

因为前端是一个极度灵活的非标语言,其中 CSS 是规则集,JavaScript、TypeScript 是脚本语言,HTML、JSX、TSX 等是标签语言。具体的前端代码中,脚本语言中会混合标签语言和规则集合。并且,前端的代码主要以交互为主,很难预测。

那我们就在最难的场景里,看看通义灵码是如何帮助我们提升编码效率的。

上周,墨问便签发布了一个支持“微信表情”的小功能。在具体开发过程中,工程师需要写一个正则表达式,以将文本的[微笑],替换为 HTML 标签 <wechat-emotion />。你知道,正则表达式有一套自己的规则,从零开始写的话,对于不熟悉的人,还是有点时间。

但现在这种活儿我们完全可以交给通义灵码来干,你看下图,只需要不到 3 秒的时间,通义灵码就能够给出答案,并且还贴心地写了一个可以运行的例子。

紧接着,我们工程师发现实际场景更复杂,他还需要继续迭代刚刚给出的正则表达式。但这时候,他又不知道怎么描述,于是,直接把输入,以及预期的输出结果给到通义灵码,继续追问。

通义灵码很快给出了更加复杂的答案,测试了下,完美运行。但如果看不懂的话,我们还是不太放心把它用到生产环境里,怎么办呢?咱让通义灵码解释下。下图可以看到,它解释得特别细致,甚至精确到每个字符是干什么用的。

上面是问答的场景。墨问昨天还发布了 AI 语音笔记的功能,开发这部分功能的过程中,我们使用了小程序本地文件来做缓存。

下图你可以看到,敲了 fs. 之后,通义灵码可以根据上下文补全 writeFile 写文件的方法,其中 encoding 编码格式,通义灵码使用了 utf8 ;filePath 文件路径,通过前面两个函数,它拿到了文件目录,并且拼接了子目录 path;success、fail 回调中的 resolve 也是准确的,它应该是通过前面声明的 TypeScript 类型进行了推测。

再看看加注释的场景。墨问 AI 语音笔记的特性中,交互上要求用户录音时,必须展示具体的时长。写完这块的代码后,我们的工程师请通义灵码来帮忙加注释。

从下图中你可以看到,它按照 JSDoc 规范给函数增加了功能、参数类型和参数返回值的说明,并且,让人惊喜的是,在函数内部它还对每行代码都进行了细致的解释,大大提高了代码的可读性。

以墨问团队的使用经验来看,无论是代码生成准确率、问答响应速度还是 IDE 端用户使用体验,通义灵码丝毫不输 GitHub Copilot。

特别是基础模型全面升级至 Qwen2 后,在中文理解、反应速度、指令遵循上,灵码的能力甚至更好,而且针对企业级场景还可以提供个性化能力。如果你还在用其他AI编程工具的话,可以切换过来试试。反正我们公司的研发同学已经把通义灵码用的很溜了!

用习惯了智能编码助手,我们团队有两个感触:第一,不需要来回在 IDE 和 Google 之间切换了,因为通义灵码已经集成了问答的能力。第二,代码生成和补全能力,着实是一把效率利器。

这块你只要体验过一次,就再也不想回到过去的开发模式了。因为之前,你得一行一行地自己写,现在,直接敲 Tab 键就能哗啦啦生成一大段代码出来......

目前,通义灵码已经在阿里云、哈啰集团、一汽集团、中华财险等企业落地,下载量超 500 万,在国际权威机构 Gartner 测评中,拿到国内 AI 编码工具最高成绩。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/793105.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录BUUCTF 中 的一道hook掉函数地址的题目

题目 [Zer0pts2020]easy strcmp1 https://files.buuoj.cn/files/2961ba55f464e750aca703838dfca234/easy_strcmp_e1a6208fde4f52fd0c653c0b7e8ff614.tar.gz 刚开始在main函数中发现if ( !strcmp(a2[1], "zer0pts{********CENSORED********}") )puts("Correct!&q…

[C++ Daily] 虚继承与虚析构带来的变化

虚继承 在菱形继承中,若 Student 和 Teacher 继承于 Person, TS 继承于 Student 和 Teacher,则构造 TS 时会调用两次 Person 的 Construct 和 Destruct 函数,若为虚继承,则不会出现上述问题(此类问题主要解决继承带来的多次非法delete) 原继承:结果:虚继承:结果:虚析构 父类指针…

ARP详细介绍

ARP详细介绍,包括动态ARP(基本和“常用协议”博文内容一致)、静态ARP、免费ARP、路由式ARP代理ARP详细介绍 地址解析协议,根据IP地址获取MAC地址,还能检测地址是否有重复 动态ARP 广播ARP报文寻找目标IP的MAC地址主机1通过发送ARP Request报文获取主机2的MAC地址 ​ 由于不…

一个网络安全情报聚合网站《魔盒安全情报》

《魔盒》 一款专为网络安全领域提供服务的多端情报系统。 实时更新安全情报。内容包括威胁情报、数据泄露、漏洞预警、军事情报、安全博客情报等。地址网页端:https://mgb.abyssdawn.com/tg 推送频道 频道地址:mgb_sec_thread感谢 感谢以下大佬收集的安全订阅源https://githu…

mipi屏调试时序问题

mipi屏的时序大同小异,一般都跟以下差不多: 屏参配置如下:&dsi0 {status = "disabled";//rockchip,lane-rate = <1000>;dsi0_panel: panel@0 {status = "okay";compatible = "simple-panel-dsi";reg = <0>;backlight = <&…

java编译中出现 无效的目标发行版:17

java maven 编译中出现 无效的目标发行版:17 解决方法: 将 pom.xml 中的 <maven.compiler.release>17</maven.compiler.release>这段换成<maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.…

火影新版控制中心安装教程

1. 第一步卸载原有控制中心 搜索框搜索控制面板找到卸载程序点击搜索控制中心右键卸载卸载完选择YES重启 2、官网下载控制中心的压缩包 火影官网驱动下载 https://www.firebat.com.cn/index/serve/drive 根据自己是什么机器选择 (t6ax也是t6系,t6系的都选t6ad,处理器是什么就…

记录 ThreadPoolExecutor任务队列放入任务的方式

众所周知,ThreadPoolExecutor内部任务队列属性类型定义为:private final BlockingQueue workQueue; 而其有三种提交任务方式:add、put和offer,好奇其内部用的哪个,又不想查资料,故而跳到源码内部一看。结果如下:三种提交任务方式:put(E element):将指定元素插入队列,…

MCU驱动架构的初探究

最近在网上看到的MCU驱动的架构,让我感觉非常好,我对其整理和总结了一下Handler层 什么是Handler层 :Handler是将所有的资源聚集到一起的一层,包括用到的HAL硬件,队列,信号量,锁),包括挂载哪个硬件设备; 以温湿度传感器为例,handler结构体 typedef struct bsp_temp_…

基于Hutool技术Excel表格导出

今天分享一下基于Hutool技术Excel表格导出,我们先看看导出Excel表格的样子第1步:引入maven依赖<dependencies><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.3</version></…

jekins--- 通过jekins执行远程机器的shell脚本

jekins和脚本部署的不是在同一个机器,简单的来说说如何用jekins通过SSH连接执行远程机器的shell脚本 1:简单的看一下脚本的内容,自己写的一个简单的测试脚本,执行了就会打印一个脚本已执行成功在日志中#!/bin/bash# 日志文件路径 LOG_FILE="/dongguangshu/logfile.log…

[C++ Daily] 何时调用copy构造与copy赋值

<Effective C++>:"如果一个新对象被定义,一定会有个构造函数被调用,不可能调用赋值操作.如果没有新对象被定义,就不会有构造函数被调用,那么当然是赋值操作被调用."结果: