Baidu Comate助力成为软件开发的“钢铁侠”
一、背景介绍:
随着人工智能ChatGPT的发展,ChatGPT 的开放将推动人工智能在各个行业的应用,带来诸多的变革和提高,曾经一段时间也是担心对软件行业的影响,会不会以后就不需要这么多程序员了,实际上在当下,有了它的辅助,程序员的工作量大大减轻。
记忆中,在《钢铁侠》系列电影中,有一个不可或缺的角色,那就是“钢铁侠”的智能助手——贾维斯。贾维斯是一个人工智能管家系统,不仅能够帮助钢铁侠实时分析情况,还能帮助钢铁侠管理整个家庭,可以说是“钢铁侠”生活和战斗的好助手了。
当然,这些例子还有很多,比如《黑豹2》中的苏睿的管家(瓦坎达科技),看完电影后,除了满满的科技感震撼之外,时常会在脑海中构想,会不会随着时代的不断发展,在不久的将来,IT开发人员也是“动动嘴”,代码就能自己写出来呢?
看似不可思议的事情,在现在就可以先来体验v1版本的“贾维斯”,一款背靠文心大模型的聊天式编程辅助工具 – “Baidu Comate智能编码助手”!只需要简单的集成,就能实现打打字,就能帮助您提高编程技能和工作效率。
二、什么是“Baidu Comate智能编码助手”?
Comate取自Coding Mate,寓意大家的AI编码伙伴,Comate融合了百度内部多年积累的编程现场大数据和外部开源代码和知识,可以帮助工程师在编写代码的时候实时推荐和生成代码。
“Baidu Comate智能编码助手”是一个集成了基于文心大模型的AI编程工具,结合百度积累多年的编程现场大数据和外部优秀开源数据,为你生成更符合实际研发场景的优质代码,提升编码效率,释放“十倍”软件生产力。
“Baidu Comate智能编码助手”最大的优势是一站式服务,专注于提升程序员的编程效率,支持自然语言编程、代码编写、代码生成、代码补全等功能,无需过多配置就可以快速上手,从而全面提升开发效率。同时,Comate还结合了百度技术选型和编码规范,不仅可以帮助工程师更快的完成编码任务,代码的质量也更为出色。
2.1 “Baidu Comate智能编码助手”产品功能:
“Baidu Comate智能编码助手”是百度智能云推出的一项革命性代码辅助工具,它基于文心大模型的强大理解和推理能力,旨在提高开发者的研发效率。可以实现代码的快速补齐、自然语言推荐代码和自动查找代码错误等功能,为程序开发提供了全新的交互方式。
序号 | 产品功能 | 功能描述 |
---|---|---|
1 | 实时续写 | 在代码编写过程中,实时智能生成完整代码块 |
2 | 注释生成代码 | 在注释中描述所需功能,生成完整函数 |
3 | 对话式生成代码 | 通过交互式的自然语言对话,直接生成所需代码 |
4 | 生成单元测试 | 对单函数生成单元测试,也可以批量生成 |
5 | 生成注释 | 生成规范的文档注释、行间注释 |
6 | 代码优化 | 对坏味道代码进行优化,如将过长函数拆分为功能清晰、易于理解的合理大小的函数 |
7 | 代码解释 | 支持解释完整函数代码、解释选中代码 |
8 | 技术问答 | 在对话框中输入研发中遇到的问题,第一时间获得解答 |
2.2 “Baidu Comate智能编码助手”产品优势:
借助文心大模型的理解、推理能力,百度comate可支持代码解释、技术问答、实时续写、生成单元测试、代码优化与修复、智能cli等10余项编码功能,实现编程10倍速提效,助力企业研发全流程降本增效。
序号 | 产品优势 | 优势描述 |
---|---|---|
1 | 文心大模型加持 | 全面分析代码上下文、依赖文件、相邻文件的逻辑关系,智能生成所需代码 |
2 | 20 年+技术积累 | 百度 20 年+的技术积累、百度 80% 工程师的选择,更符合实际研发场景 |
3 | 简单易用 | 简洁的安装、极少的配置,无缝融入 IDE 内,开发体验丝滑自然 |
4 | 降本提效 | 花更少的时间敲击代码,有更多的时间解决更大的问题 |
5 | 支持多种语言和IDE | 支持 100+ 种主流语言,10+种主流IDE |
2.3 “Baidu Comate智能编码助手”语言与IDE支持:
序号 | 支持分类 | 分类描述 |
---|---|---|
1 | 支持 100+ 种主流语言 | 在C/C++、Java、Python、Go、JavaScript、TypeScript 等语言表现更为出色 |
2 | 支持10+主流IDE | 提供 VS Code、IntelliJ IDEA、GoLand、PyCharm、WebStorm、CLion、PhpStorm、Android Studio 等IDE插件,一键安装,即装即用 |
2.4 “Baidu Comate智能编码助手”提效场景:
由于现在很多公司是面对业务开发,导致大量从业人员涌入后,只是专注于业务代码开发,长期以往,软件质量并没有出现正比增长。
场景一:
接触过的很多前端开发者,可能甚至没有摸过Linux服务器,更不用说相关的运维命令,只是熟悉windows的软件安装的“下一步”、“下一步”,很多人也停留在html + css的开发模式下,好多人js还不太擅长,不妨提几个知识点,闭包、原型链、深拷贝、浅拷贝、CommonJS、AST等等知识点。
场景二:
很多框架将底层封装好了,Java的SpringBoot框架、前端的Vue或React后台管理系统模板、Python的Django框架、Php的Laravel、TP、Yii框架,已经帮助大家封装好了,不需要从0-1来搭建,直接开箱即用,按照文档提供的方法写代码即可,很多培训机构稍微普及一下用法,就让学员快速熟悉就开始写项目了。
场景三:
组件大多数网上也是有很多,拿来主义在项目中使用即可,很多时候,不需要自己去思考如何实现,比如,支付模块,相信大家都是用第三方组件,很少有人仔细读过微信相关文档,熟知里面运行的逻辑。
场景四:
在开发过程中会受到各种各样客观因素的影响(如工期太紧、实现太困难或者是缺少资源依赖),很多时候只能是先实现为主,后面再进行优化吧。有时,也会直接将外部代码放到自己的代码中。这些外部代码对项目来说可运行,但是并不具备可维护性。
有没有一种办法能不能帮助开发者更简单、高效地生成代码,提升研发效率呢?
“Baidu Comate智能编码助手”应运而生,“Baidu Comate智能编码助手”可以深度解读企业与个人私域代码库。开发者不仅能询问任何与代码库有关的问题,例如“当前代码的架构是啥”、“鉴权逻辑是怎么实现的”,还可以挂载公司开发文档、API文档等专属知识,让Comate按照文档描述拆解需求,生成新代码,减少人工阅读理解及开发文档时间。
“Baidu Comate智能编码助手”作为一个代码辅助工具,可以通过自然语言描述来推荐代码,方便使用者快速找到所需的代码片段,可以帮助处理代码中的错误,减少调试时间,提高代码质量。可以应用于多种场景,如开发、测试、部署等,为使用者提供全方位的支持。
“Baidu Comate智能编码助手”还支持多种编程语言,如java、python、c++等,适合各语言初学者使用,自动快速补齐代码和自动生成注释的功能,可以提高开发者的编码效率,同时,还包含单行/多行续写、多条推荐、注释生成代码、修复建议、长函数拆分、chat提问在内的全部功能已面向所有开发者使用,实现只要会说话,人人都会具备程序员的能力。
2.5 “Baidu Comate智能编码助手”实际落地行业:
据悉,百度Comate于2023年6月6日在文心大模型技术交流会(成都)上正式开放邀测,目前已服务近千家企业合作伙伴,在传统软件开发、金融、汽车、互联网应用等多个行业的研发项目中落地。
百度在2021年就开始基于文心大模型进行代码辅助工具的研究,2022年4月内测成效明显,目前已在百度内部大规模使用,整体采纳率达到40%+,头部用户采纳率达到60%+,由Baidu Comate每日生成的代码达到百度全公司每天新增代码的20%。
三、“Baidu Comate智能编码助手”安装配置指南:
安装之前,可以打开下载安装的页面,在VsCode中,打开插件市场功能,搜索“Comate”关键字即可进行插件的搜索,点击“安装”即可在VsCode中使用插件的形式来安装,可以看到下载的次数也是非常的庞大,达到了64k的下载量。
不到一分钟即可安装插件完成,根据插件的介绍,需要在官网申请或者在百度智能云购买License,然后在插件设置中配置该License和用户名称。
3.1 如何查找License呢?
打开Baidu Comate官方提供的登陆界面,支持账号与短信登录,这里和百度云盘的账号是一样的,现阶段属于免费试用,直接使用手机号短信登录即可。
注册登录成功后,可以在以下的“个人信息”中,进行查询License的相关信息。
个人信息中心,可以查看当前的License是多少,当然,这里也支持3种收费的模式,默认的话,是“免费个人版本”,只有一些基础功能是免费的,有一些高级功能是限免使用的。
当然,也可以申请“专业版本”,可以解锁无限制使用高级功能,十分具有性价比,推荐尝试一下,如果企业的开发人数比较多的话,可以推荐使用“企业版本”,可以有更好的客户支持服务,更专业的定制化需求,当然,最重要的是可以进行私有化部署,保证代码、数据的安全保护性。
更为详细的功能描述可以参考以下图片:
3.2 VsCode设置License:
复制个人信息中心的相关License,点击VsCode中的插件的“扩展设置”中,可以将License直接复制进来,并且设置用户名,注意,这里的用户名不一定是刚刚注册的账号。
设置License和用户名后,可以看到左侧就直接集成了“Baidu Comate智能编码助手”,点击后,就会出一个交互聊天式的窗口,可以在问答区输入一些问题,来体验一下AI的自助式聊天的功能,比如,输入一个“help”的指令。
通过以下3个步骤就可以在VsCode的IDE中进行使用“Baidu Comate智能编码助手”,基本上很简单,不用太过于复杂的配置。
接下来就开始体验一下,“Baidu Comate智能编码助手”如何给IT开发人员提高工作效率呢?
四、使用“Baidu Comate智能编码助手”如何快速学习Go语言?
本人工作中常用的技术栈是PHP、Python,对于Go语言一直想要学习与实践一番。今天就用“Baidu Comate智能编码助手”看看如何新手如何写出高质量的代码。
先简单尝试一下“Baidu Comate智能编码助手”的功能:
- 可以选择个人版本比较常用的免费功能,如果遇到限免的功能,可以进行专业版本的充值处理。
- 提问区,可以将需要搜索的问题输入进去。
- 点击“发送按钮”后,就可以提交问题的搜索了,此时,Baidu Comate即可根据相关的问题进行回答问题。
通过Baidu Comate,我们询问了2个与go语言相关的问题,可以看到回答比较快速,而且正确率也是比较高的,可以免去我们大量的搜索与检索相关的内容。
按照PHP类似的后端开发经验,刚刚入门实践的话,无非就是使用路由、数据库的CURD操作,下面我们就按这个目标计划来使用Baidu Comate一步一步完成Gin的代码。
4.1 如何使用gin写一个web项目,路由包含get、post请求:
通过进行询问得到以下很长的信息,接着在控制台中,创建一个目录专门存放gin框架相关的代码结构,这里有一个特别好用的功能是“插入到终端中“,可以直接将命令插入到我们的控制台上,免去了复制粘贴的烦劳,可以加快速度。
mkdir gin-go cd gin-go go get -u github.com/gin-gonic/gin # 报错信息 go: go.mod file not found in current directory or any parent directory. 'go get' is no longer supported outside a module. To build and install a command, use 'go install' with a version, like 'go install example.com/cmd@latest' For more information, see https://golang.org/doc/go-get-install-deprecation or run 'go help get' or 'go help install'.
不过,在使用“go get -u github.com/gin-gonic/gin”这条shell命令时,执行到第一步就报错了,从字面的意思提示“go.mod文件没有在当前目录中找到”,因为也是第一次接触go,没看明白,没关系,不如直接交给“Baidu Comate智能编码助手”来帮我们分析一下,现学现用。通过Baidu Comate给出的原因是“在Go 1.11之后,引入了Go模块化的概念,使用go get命令来获取依赖已经不再推荐使用。”。
go mod init github.com/gin-go go get -u github.com/gin-gonic/gin
如下图,也可以下接点击“新建文件”来创建一个文件,可以看到直接将代码写入到新的文件中,自动复制粘贴,可以进行快捷操作。
找到启动web服务器的代码“go run main.go”,可以看到提示没有这个main.go的文件或目录,查看文件名,才发现原来是package main.go这个文件名,修改为“go run package\ main.go”来启动gin的web服务器。不过,也可以将文件名修改为main.go(推荐方案)。
可以看到根据“Baidu Comate智能编码助手”搜索的方案,我们快速就启动了一个gin框架的,并且还开启了2个路由:
- 一个是get请求,使用postman请求工具访问 http://localhost:8080/hello
- 一个是post请求,使用postman请求工具访问发送POST请求到 http://localhost:8080/hello,并设置参数name的值
以下是从0到1利用“Baidu Comate智能编码助手”,通过聊天式输入想要的问题,就可以得到答复,从安装Gin,到创建main.go文件,再到运行,都是按照回答的方案进行实现的,期间也遇到问题,通过“Baidu Comate智能编码助手”可以轻松的进行排错解决,非常的方便、便捷。
五、使用“Baidu Comate智能编码助手”如何进行数据库的操作:
后端开发免不了跟数据库打交道,下面我们就使用“Baidu Comate智能编码助手”搜索“如何使用Gin进行数据库,用户登录表的操作”,马上就可以得到Gin使用gorm操作数据库的实例代码。
- 安装和导入所需的依赖包,这里我们选择MySQL的数据库
- 建立数据库连接和模型结构,这里会在数据库启动时默认创建好表,比较像PHP Laravel框架的Migrate,果然大家还是有异曲同工之处。
- 路由增加注册和登录的接口
go: unrecognized import path "gorm.io/drivers/mysql": reading https://gorm.io/drivers/mysql?go-get=1: 404 Not Found
go get -u gorm.io/gorm go get -u gorm.io/driver/mysql // 第一次多了一个s,写成了drivers
下面代码是实现用户注册、用户登录的逻辑,这次我们就不新建文件了,直接用复制功能来copy代码,然后,修改一下数据库的链接即可启动一个带数据库操作的web服务器,“Baidu Comate智能编码助手”也温馨提示了,为了安全,建议对密码进行哈希或其它安全措施,还能自动找出Bug,可以有效的避免新手遇到的问题。
那我们根据Baidu Comate返回的结果,同步到刚刚的ginweb项目中,以下是在本地起的docker,启动了一个MySQL容器,用于Gin对数据库的操作。
代码启动后,可以看到自动实例化了一张表结构,都不用使用create建表语句。
通过postman进行register接口操作,可以看到我们插入了MySQL数据库的users表一条数据,在login接口操作时,使用admin用户名,明显登录失败,使用david即可登录成功。
这里可以看到,我还没有自己写一行代码,就让“Baidu Comate智能编码助手”完全把代码写出来了,包括注释也添加了。
六、如何在k8s中部署:
公司目前所有的应用都是在k8s部署,我们可以尝试用“Baidu Comate智能编码助手”给出方案,初始化项目并且部署到测试环境中。
开发新技能,点击“知识”中,选择“当前文件”,即可直接将当前的文件添加到分析的源素材中,后续会针对性的对当前文件进行上下文分析,直接在问题描述区中,输入想要问的问题即可,比如:“写一份k8s部署的dockerfile和yaml文件”。
通过对当前文件进行问答,Dockerfile文件,可以把“Baidu Comate智能编码助手”生成的代码“新建文件”的方式分别新建到Dockerfile与deployment.yaml文件中,非常的快捷方便。
完成这2个文件的写入,我们准备将代码提交到Git仓库,并且在k8s上执行测试环境的部署工作。
七、提交Git信息并且发布到测试环境:
使用Git命令操作当前的目录的文件全部提交到,Git当前工作区的所有文件都加入暂存区。使用Baidu Comate自带的git bash,并没有玩明白,不如直接使用命令操作。
因为公司使用的是“云效”代码仓库,我们将这个项目初始化并推送到“云效”的仓库中,如下可以看到代码已经上传到“云效”的仓库中。
因为是公司的集群配置,一些敏感的信息就不方便透露。
接下来是配置流水线,通过对以下的三步进行操作:
步骤 名称 描述 第一步 流水线源 选择对应的项目,因为目前只有master分支,所以就选择master分支做为构建的分支。 第二步 Go镜像构建 这里需要设置一些参数:
(1). 标签为Docker镜像Tag。支持固定参数例如1.0,或者动态参数例如${DATETIME}。
(2). Buildkit 版本。
(3). 指定Dockerfile路径为Dockerfile文件相对于代码库根目录所在路径,如META/config/Dockerfile或Dockerfile。
(4). ContextPath为docker build命令执行上下文路径。填写相对于代码根目录的路径,如target,如果不填则为Dockerfile文件所在目录。第三步 Kubernetes发布 这里需要设置一些参数:
(1). Kubectl 版本为当前步骤中使用的kubectl客户端版本。请选择与集群适配的Kubectl版本。
(2). 命名空间为 Kubernetes 集群下的命名空间。例如"default"。
(3). YAML 路径为需要部署的 YAML 文件或者目录在源码中的相对路径。例如:“manifests”配置完后,通过打包,可以完美的进行构建成功。
通过使用“Baidu Comate智能编码助手”给出k8s部署的方案,新建了2个文件:Dockerfile和Deployment.yam文件,通过推送到代码到云效仓库,可以发现,从“Baidu Comate智能编码助手”给出的方案是完全可以通过的。
八、使用“Baidu Comate智能编码助手”进行Gin的单元测试:
8.1 关于为什么要写单元测试?
序号 项目 描述 1 提高代码可读性,降低理解成本 清晰的单元测试能够在不了解代码主要逻辑的情况下明确函数的功能以及关键输入输出。 2 降低调试成本 单元测试足够小,且case充分的情况下,会极大的缩短调试的时间,不需要再深入到函数内部一步步排查。 3 降低代码修改成本 在迭代开发过程中,难免会对以前的代码进行修改或者是重构,有个单元测试,做修改后能够及时验证是否对其他模块乃至整个系统有影响,及早发现问题,规避风险,同时只需要针对修改内容进行测试,研发效率相应提升。 4 缩短开发周期 尽早的发现bug,尽早修复,可以大大的缩短开发周期并且降低运维成本。 8.2 如何使用“Baidu Comate智能编码助手”来加速单元测试的开发?
在实际开发过程中,写单元测试的是比较费时间的,但是有些单元测试不得不做。那么我们使用“Baidu Comate智能编码助手”来写单元测试是一种什么样的体验呢?
首先在我们的main函数入口处,可以选择“生成单测”功能,可以看到很快就能进行AI分析,出给相关的单元测试的代码。
如果觉得这个单元测试的代码符合要求,可以直接点击是“采纳”按钮,直接可以创建一个新文件,并且将生成的单元测试的代码直接复制到文件中,可以减少人工重复的操作机率。
有了单元测试的代码后,我们可以直接运行单元测试的命令“go test”,但是发现有以下报错:
# github.com/gin-go [github.com/gin-go.test] ./main_test.go:14:6: User redeclared in this block ./package main.go:10:6: other declaration of User FAIL github.com/gin-go [build failed]
可以发现代码中,其实User已经在main.go文件中存在重复定义,关系不大,换个名字“UserModel”,把下次所有的User均需要换一下。
当然,也可以点击单元测试文件的函数左侧的位置也可以运行单元测试的代码。
替换之后,使用“go test”命令进行测试,发现单元测试通过,就可以看到自动帮我们创建了这段代码的单元测试,大概有80行代码吧,完全可以在1-2秒钟完成,就问一下效率提高了多少?如果像以前一样来自己写代码实现,这可不是一个小的工作量,如下是生成的AI单元测试代码,可参考:
package main import ( "github.com/gin-gonic/gin" "gorm.io/driver/mysql" "gorm.io/gorm" ) // User 模型定义 type User struct { gorm.Model Username string `json:"username"` Password string `json:"password"` // 在实际应用中,密码应该是哈希过的 } func main() { // 初始化数据库连接 dsn := "xxxxxxxx?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect database") } // 自动迁移,创建或更新表结构 db.AutoMigrate(&User{}) // 创建 Gin 路由引擎 router := gin.Default() // 登录接口 router.POST("/login", func(c *gin.Context) { var user User // 从请求体中解析 JSON 数据 if err := c.ShouldBindJSON(&user); err != nil { c.JSON(400, gin.H{"error": "Failed to bind JSON data"}) return } // 在数据库中查找用户 if db.Where(&User{Username: user.Username}).Attrs(User{Password: user.Password}).First(&user).Error != nil { c.JSON(401, gin.H{"error": "Unauthorized"}) return } // 用户验证成功,返回 token 或其他认证信息 c.JSON(200, gin.H{"message": "Login successful"}) }) // 注册接口 router.POST("/register", func(c *gin.Context) { var user User // 从请求体中解析 JSON 数据 if err := c.ShouldBindJSON(&user); err != nil { c.JSON(400, gin.H{"error": "Failed to bind JSON data"}) return } // 创建新用户 if db.Create(&user).Error != nil { c.JSON(500, gin.H{"error": "Failed to create user"}) return } // 用户注册成功,返回成功信息 c.JSON(201, gin.H{"message": "User registered successfully", "user": user}) }) // 启动 Gin 服务器 router.Run(":8080") }
总结:
以上是本人对“Baidu Comate智能编码助手”从0到1的体验过程,通过体验学习新技术Go语言,从开发到测试,再到项目的部署,在短短的不到10几分种,从刚刚接触Go语言就能完全写出符合项目规范要求的代码,效率非常的高,缩短了项目交付的周期,简简单单就能完成高质量软件开发需求。
九、使用“Baidu Comate智能编码助手”进行AutoWork私人定制功能:
“Baidu Comate智能编码助手”的AutoWork赋能到了研发的全链路,开发者仅需明确目标和需求,后续研发过程例如需求拆解、制定计划、生成代码、调试运行等步骤,不仅可以顺序执行,而且中间的任何一个步骤,都可以单独拆出来无缝集成到开发者现有的代码库/工作流中。
9.1 Git工具插件使用:
在平时开发过程中,Git是最常用的技能之一,在团队的管理中,往往Leader需要合并代码,需要将每次提交的commit message写清楚,方便来查看、或者后期的功能回滚,平时在提交的过程中,也是经常会为各种写commit message而烦恼,现在我们可以通过“Baidu Comate智能编码助手”的Git插件来AI辅助帮助我们生成Issues、提交信息。
可以使用内置的插件,可以支持创建GitHub、Gitee、GitLab Issues、生成提交信息等功能,可以使用AI的方式来管理Git相关的功能信息。
可以看到刚刚开始是没有git信息的,这里进行“生成提交”、“创建Issue”的操作时,发现会提示“看起来您的当前项目并不是一个Git仓库”,猜测是需要初始化一个仓库吗?
git init git commit -m “fix: 修改”
再进行操作,还是会提示“看来起您的当前项目并不是一个Git”,所以,是不是应该需要把这个仓库推送到gitee仓库中呢?
git remote add origin https://gitee.com/xxx/go-gin.git
将仓库绑定remote到git相应的仓库中,这时候,修改数据库的链接信息,再使用指令“生成提交”,可以看到Git插件开始分析项目中改动的代码逻辑,并且进行AI自动分析生成git commit message信息,因为项目只修改了数据库的连接信息,可以看到智能的给我们生成了一段提交代码的信息。
在点击“插入到终端中”,可以看到会直接将命令插入到终端控制台中,回车后,发现并没有反应,忘记输入git add .命令了,建议左侧命令增加这一条,通过相关命令操作后,将更改过的代码推送到远程Gitee仓库中。
git add . git commit -m 'fix: 更新数据库连接信息。' git push --set-upstream origin master
在Gitee远程仓库界面中,可以看到刚刚推送过的信息。
如何更快捷的生成Issue呢?
通过修改点内容之后,我们点击指令“创建Issue”,发现有一个提示“创建issue失败,请检查是否为支持的平台和插件相关的token配置”。
点击“打开插件配置面板”功能,可以直接在VsCode中打开“插件配置中心”,不需要再去登录web页面版本的“插件配置中心”,十分的方便快捷。
在Gitee网站需要创建一个token来让Baidu Comate插件使用,当然,如果有一些权限的限制,你可以看一下是否勾选,如下为了实验,就全部勾选一下,创建成功后,会有一个私人令牌生成好。
找到“默认的配置集”,选中到Git这个插件,找到“应用授权”,使用发现这里不能进行编辑,会不会是不是因为IDE的关系,是不是要在web页面进行设置?
登录到“个人中心”中,同理,找到“插件配置中心”,找到应用授权,同样,也不能进行编辑,会不会需要新建一个自己的配置?
我们依葫芦画瓢,添加一个属于我们自己的配置集,用于设置属于个人定制化的操作,以下添加一个go相关的配置集。
点击进入“go相关的配置集”中,翻到Git插件相关的位置,可以看到现在可以进行编辑了,将上面申请的私人令牌token,填写到以下的“Gitee Access Token”中即可。
配置token完成后,我们需要将当前的“go相关的配置集”进行切换为生效的那个,点击右上解的switch按钮,会提示“配置集同时只能生效一个,确认生效当前配置集吗”,点击“确定”即可,将我们自己生成的配置集生效。
现在我们再来点击“创建Issue”即可成功创建一个Issue,并且给我们生成了至少500字的文档说明,非常不错的一个功能,对于理科生的我,简直就是福利。
在Gitee项目管理中,可以看到Issues已经推送到Git仓库中了,1分钟即可完成Issues从创建到上传。
9.2 知识库:
随着业务的不断发展,越来越多的SQL会形成慢日志查询,很多时间需要写大量复杂的SQL来满足业务多个纬度的需求满足,下来可以借助知识库来让“Baidu Comate智能编码助手”实现AI写SQL。
“Baidu Comate智能编码助手”能够极大提高跟数据和数据库打交道人员(e.g. 数据分析师、数据科学家、数据库管理员、开发者)的效率和生产力,比如可以根据自然语言输入自动生成 SQL 查询(非技术用户也能轻松访问和分析数据了!)、优化查询性能、加强数据探索。
同理,点击“打开插件配置面板”功能,切换到“知识中心”中,点击“新增知识集”,新建一个数据库相关的知识集,里面用于存放一些sql的样本数据,方便以后帮我们生成一些SQL语句。
新增知识集完成后,可以看到知识集列表有显示,这里可以看到官方也默认给我们创建了3个知识集,里面有不少文件。
点击“数据库知识集”后,跳到详情页面,这里可以点击“知识”新增我们需要AI分析的文件,比如我们想要把数据库中的一些xx.sql放到知识集中,但是貌似不能添加.sql后缀的文件。
只能另想他法,把所有的文件全部修改为.md的文件格式,就可以提交上去,这里也有文件名去重的功能,会判断是否有文件重新上传了。
在操作窗口中,选择“知识 -> 数据库知识集”就可以把当前的分析环境切换到刚刚创建的知识集中,相当于针对后续的操作有一个作用域的范围。
问第一个问题“帮我分析一下这些文件有什么作用”,很遗憾,没有分析了所在的问题,我们只能将IDE重启一下,看看是否会有效果?
果然,将IDE重启后,可以发现“帮我找一下订单的表”,可以自动分析我刚刚上传的文件,有哪些表是与订单有关联的,非常的方便,比如这个项目有几百张表,我们可以通过“Baidu Comate智能编码助手”快速的分析有哪些信息,对于不熟悉的项目帮助十分的可观。
尝试着让Comate“帮我以tb_order订单表生成一个月订单的销量查询sql”,可以看到可以快速的给我们生了一条Sql语句。
如下,我们将Sql语句放到数据库查询工具中进行查询,可以看到是可以查出相关数据的。
“Baidu Comate智能编码助手”可以实现自然语言转SQL、SQL解释、SQL优化和SQL转换的技术,通过充分利用这些技术,可以提高工作效率、降低错误率、优化性能,从而更好地满足业务需求。
十、 “Baidu Comate智能编码助手”AutoWork有什么优势?
随着LLM的不断发展,很多插件都可以去实现单独的代码补全、代码生成,但是想要生成符合企业应用就需要借助RAG技术,RAG(Retrieval Augmented Generation,检索增强生成 )方法是指结合了基于检索的模型和生成模型的能力,以提高生成文本的质量和相关性。
“Baidu Comate智能编码助手”的AutoWork联合了⽂⼼大模型思维链能力+RAG技术的代码智能检索技术,共同打造一个能在在研发全链路提效的产品。
基于⽂⼼大模型超强的思维链能力, AutoWork 能够像一个智能体一样来思考和执行任务,能够听懂人的需求,然后顺序执行需求拆解、制定计划、生成代码、调试运行等步骤,可以深度的解读代码库,独立分析产品需求,匹配最佳解决方案并生成代码,特别是在私域知识增强场景中。
RAG检索增强生成(Retrieval Augmented Generation)技术简单来讲就是将用户输入的知识库信息补充到大语言模型中的过程。然后,大语言模型就可以在用户提问时,检索这些知识库信息来增强其生成的回答。
Comate 基于RAG技术,专门为编程领域设计研发了RAG智能代码检索技术,能够让用户从代码库中检索可能回答问题的最相关内容,从而解决LLM的幻觉等问题,用过Comate之后,发现它的响应非常快速,百度飞桨对文心大模型推理效率优化是Comate为开发者提供丝滑开发体验的后盾保障。
十一、对比团队中目前开发的AI小工具:
现在AI很火,好多人都在玩GPT,公司的小伙伴也是蹭了一波热度,开发了一些小工具,供大家来玩耍,可以看到基本的功能还是有的,但是“Baidu Comate智能编码助手”可以嵌套在VsCode做为插件使用,可以完美的做为VsCode一部分,不用来回切换,而且更精准的可以理解上下文关系,给出更为精确的答复。
十二、总结:
通过上面对“Baidu Comate智能编码助手”深度的体验,可以发现在开发与测试的整个流程都可以帮助我们提高工作的效率,让我从一个go小白,不需要写很多的代码就能完成gin框架的搭建、开发、单元测试、上线部署等整个开发的生命周期支撑,Baidu Comate 提供多轮对话智能问答功能,拒绝跳转和打扰,直接在 IDE 中解决您的研发问题,打造沉浸式的高效编码体验。
“Baidu Comate智能编码助手”是基于文心大模型,结合百度积累多年的编程现场大数据和外部优秀开源数据,打造的新一代编码辅助工具。拥有代码智能、场景丰富、创造价值、广泛应用等多重产品优势,可实现“帮你想、帮你写、帮你改”的场景应用形态。提升编码效率,释放“十倍”软件生产力。
“Baidu Comate智能编码助手”基于文心大模型和飞桨能力,可以通过自然语言生成代码,可以问任何想问的技术问题,目前内置AutoWork、Git、飞桨、百度智能小程序官方插件,不仅满足你在编程时的需求,它更致力于在整个软件开发生命周期中为你提供全面支持。
- 智能补全:根据上下文环境结合,深入业务逻辑的智能补全。
- 智能生成:支持注释生成代码、增强生成代码、生成单元测试、代码生成doc注释、代码解释、生成行间注释、长函数拆分等多种强大的智能生成功能,旨在全面满足多样化的研发场景需求,全方位提高研发效率。
- CLI的集成:提供最佳的命令建议,大大提升你的工作效率,使命令行操作变得前所未有的简单和高效。
比如百度智能小程序业务插件,不用再像过去一样,手动来回翻开业务相关官方文档查阅;现在,在Comate里直接调用插件,通过它,你可以生成更加准确的相关代码,不知道框架代码怎么写?快来Comate问问技术专家帮你想,帮你写,帮你改!
一、“Baidu Comate智能编码助手”的出现可以节省软件代码编写时间。众所周知,程序员并不是完全机械化的敲代码,实际写代码的时间占比仅有20%左右,80%的时间是在调试修改和沟通协调以及一些客户需求信息同步。所以“Baidu Comate智能编码助手”的出现可以帮助程序员解决一些简单的代码编写工作,减少代码编写时间,提高软件开发工作效率。
二、“Baidu Comate智能编码助手”可以让软件开发的逻辑性更强,优势就在于自身强大的逻辑推理能力,是算力和虚拟训练的结合,通过对训练数据的统计发现所蕴含的规律。进而让编写出来的代码更具逻辑性。但是需要注意的是,虽然“Baidu Comate智能编码助手”编写出来的代码逻辑性较强,但是还是需要专业的程序员进行校对的,避免出现错误。
三、对简单的代码帮助更大,“Baidu Comate智能编码助手”的出现会提高聊天应用的自动化水平,使其能够快速有效地回复用户的消息,这可能会对一些简单的聊天应用程序开发工作造成冲击,但并不会导致底层程序员失业。
四、有助于整个行业的发展,“Baidu Comate智能编码助手”的出现会提高聊天应用的自动化水平,但不会导致底层程序员失业,它的出现可能会带来新的工作机会,并对一些程序员造成冲击,但最终会有利于整个行业的发展。
综合来看,“Baidu Comate智能编码助手”的出现,可以让开发效率提升数百上千倍,拥抱百度文心大模型,这种新型的软件开发范式,势必会成为以后开发的主流。
以下是个人的一些优化与建议:
- 希望git插件可以增加指令“一键初始化仓库”、“一键创建tag”等功能。
- 希望能支持.sql文件的上传。
- 希望能支持更多的仓库的token,比如云效。
- 希望对于生成的AI答案,有一个纠错的功能,可以让广大的开发者一起来更完善。
“Baidu Comate智能编码助手”官方链接