腾讯云 AI 代码助手编程挑战赛 + 构建开发板垃圾图片识别AI对话的Copilot
“腾讯云AI代码助手”是基于腾讯混元代码模型打造的新一代智能编程工具,借助混元代码模型的理解、推理能力,可支持代码解释、技术问答、实时续写、生成单元测试、代码优化与修复、智能CLI等10余项编码功能,助力企业研发全流程降本增效。
一、前言:
最近公司有一个项目需求需要使用到AI智能识别的功能《垃圾智能AI识别系统》,本人一直从事Web领域开发工作,也没接触过人工智能这个赛道,刚好现在借这个“腾讯云 AI 代码助手编程挑战赛”来了解一下AI写代码相关的流程。
刚好也是接触新的技术领域,经过“腾讯云AI代码助手”来帮助我从0到1来实现这个《构建开发板垃圾图片识别AI对话的Copilot》的项目,在很多地方帮助程序员开发人员更好地理解和优化代码,提高软件的可维护性和可靠性、安全性。
上图是通过“腾讯云AI代码助手”从硬件到软件、模型的应用、生成Flask Web API服务,再到最后工作中的最佳实践,通过本人测试了Vue、Js、Python、Go等语言的实际场景,“腾讯云AI代码助手”提供了智能代码补全、单元测试生成、问题修复等多项AI驱动的功能,使开发者能够专注于创造性工作而非繁琐的设置。
【可以来看看我在B站录的一个视屏】:
【腾讯云 AI 代码助手编程挑战赛】+构建开发板垃圾图片识别AI对话的Copilot
在实际使用中,我深刻体验到“腾讯云AI代码助手”的便利,特别是在代码质量的提升方面展现了其独特优势,自动代码注释、智能问题解决建议,以及对话式AI视图的应用,不仅简化了日常开发中的繁琐任务,还显著提高了代码的可读性和可维护性。这些功能不仅仅在我忙碌的开发过程中节省了大量时间,还让我的开发工作更加高效和愉悦。
总的来说,“腾讯云AI代码助手”不仅仅是一个工具,更是现代软件开发中不可或缺的助手。它的出现不仅推动了开发工具的技术进步,更为开发者们带来了全新的开发体验和工作方式。期待未来“腾讯云AI代码助手”在AI驱动开发领域持续创新,为全球开发者提供更多实用且强大的功能。
1.1 项目需求描述:
客户有一个自动化垃圾分拣设备,需要装一个开发板,在AI技术加持下,作业单位可以通过识别不同的生活垃圾图片进行实时分析处理,来决定这个垃圾将要分拣到哪个区域。将AI识别技术用于垃圾分类质量来提高人工的效率,以实现对湿垃圾分类品质的智能管理和监督,接下来我们可以借助“腾讯云AI代码助手”先构造一个垃圾图片识别的Copilot。
1.2 技术挑战:
与之前接触的Web领域不同,这次的项目是通过开发板将垃圾的图片识别出来进行分类合到结果的数据,因为也是刚刚接触硬件相关的开发,所以,下面大概列举一下这次挑战的技术点:
- 硬件开发板(基于香橙派的OrangePi AIpro(8-12T))
- 图片智能识别领域(基于Python)
- 环境部署(Linux Ubuntu)
因为本人一直从事使用PHP进行Web相关的开发,接下来,就由“腾讯云AI代码助手”边问边做,来一步一步的实现完成《构造一个垃圾图片识别的Copilot》的项目。
1.3 AI海报与分享文案Copilot生成:
在公司的业务中,经常会遇到运营单位需要做各种营销类的活动,需要大量的文案编辑工作,在传统的工作方式,只能依靠人力来增加产出,工作量较大,产出也比较低效,人力成本比较高,岗位增加。
通过基于腾讯混元模型结合提示词文案Copilot解析再生成相关内容,可以通过AI生成海报与分享文案提高文案编辑人员的效率,降低人力成本。
二、腾讯云AI代码助手,让开发更轻松:
腾讯云 AI 代码助手是由腾讯云自研的一款开发编程提效辅助工具,开发者可以通过插件的方式将 AI 代码助手安装到编辑器中辅助编程工作(VS Code 或者 JetBrians 系列 IDE);而 AI 代码助手插件将提供:自动补全代码、根据注释生成代码、代码解释、生成测试代码、转换代码语言、技术对话等能力。
腾讯云AI代码助手可以使开发人员能够更有效地将人工智能集成到代码生成和文档中,为开发人员提供了一种非常实用和有效的方式来与大型语言模型(LLM)进行交互和协作,通过腾讯云 AI 代码助手,开发者可以更高效地解决实际编程问题,提高编程效率和代码质量。
腾讯云AI代码助手官网
腾讯云AI代码助手插件下载
腾讯云AI代码助手在线体验
Cloud Studio(云端 IDE)内置腾讯云AI代码助手
本文是基于Vscode的IDE进行使用“腾讯云AI代码助手”的使用,可以打开官网安装指南进行插件的安装,过程也是比较简单,只需要简简单单的四步操作即可将IDE武装到牙齿,不惧怕各种需求、各种Bug、各种语言,接下来,让我们一起来体验一下“腾讯云AI代码助手”。
三、基于“腾讯云AI代码助手”实现《香橙派垃圾识别的AI项目》的最佳落地实践:
开发板的主要目的是帮助开发人员快速搭建嵌入式系统原型,进行软硬件联合调试和测试,从而提高开发效率和减少开发成本。
本人也是刚刚接触开发板,从“腾讯云AI代码助手”给出的解释是:开发板(Development Board)是一种用于嵌入式系统开发的硬件平台。它通常包含一个或多个微控制器、微处理器、存储器以及其他硬件组件,如传感器、通信模块等。开发板提供了一个方便的环境,让开发者可以在实际硬件上测试和调试他们的代码。
在我个人的理解中是相当于一个小型的主机,由于成本比较低、体积比较小,可以在智能家居、物联网、机器人等项目中,开发板作为核心硬件平台,支持项目的快速开发和部署,本文中我们使用香橙派的OrangePi AIpro(8-12T)开发板来开发运行的环境。
3.1 开发板开机准备:
先让“腾讯云AI代码助手”帮我们看看香橙派的OrangePi AIpro(8-12T)开发板如果需要开机的话,需要使用到哪些配件,需要准备哪些配件:
- Type-C电源线、插头
- SD卡、SD卡读卡器
- HDMI插头
- 散热风扇
通过上面提到的准备的配件后,我们组装在一起,可惜回答没有提供相关的图片,这里建议后面AI能够生成图片,这里无奈只能去看看官方提供的PDF文档,可以看到如下图所示,基本上使用了4个位置的地方:键盘和鼠标USB插头、显示器HDMI插头、电源Type-c插头、SD卡插槽,这里不知道官方通过自定义知识库,定制企业私有 RAG是否可以解决这个问题呢?
插入USB的鼠标和键盘、显示器HDMI线、自带的type-c电源线后,即可以去插上电源了,经过上面配件的组装后,一插入就自动启动了,没有什么开机键,即一通电就自动启动了。
但是有一个问题,等了5分钟除了风扇一直响外,只有一个灯在闪,但是显示器不显示画面,因为开发板肯定是刚买的,大概率问题不大,而且显示的线也是在当副屏幕在使用,所以,硬件坏掉的可能性比较低,让“腾讯云AI代码助手”帮我分析一下是有什么原因导致的?从哪些方面入手处理?
结合“腾讯云AI代码助手”给出的原因与定位的问题点,我们可以使用排除法来确认不能开机的原因:
序号 | 可能存在问题点 | 解决方案 | 难度 |
---|---|---|---|
1 | 检查电源适配器和电源线是否有异常 | 检查无问题 | 1星 |
2 | 按照开发板的文档说明,检查 BOOT1 和 BOOT2 拨码开关的设置。例如,如果想要使用 TF 卡启动,确保 BOOT1 和 BOOT2 开关准确设置为 TF 卡启动模式。 | 检查无问题 | 2星 |
3 | 使用专业的工具(如 Etcher 等)将镜像文件准确无误地烧录到 TF 卡或 eMMC 模块上,并重新尝试启动。 | 可以尝试重新烧录一下 | 3星 |
4 | 可能开发板子存在问题 | 这个需要专业人员来解决 | 4星 |
因为检查开发板子的难度太大,只能通过第三种方案重新进行烧录试试。
首先打开balena烧录工具地址,因为个人办公是Mac电脑,借用了同事的Windows电脑来进行此次的测试,我们选择OS为“WINDOWS”的X86|X64版本下载。
打开下载的balena烧录工具,不用安装,直接就打开了,非常的方便,不用在电脑上安装软件:
- 点击“从文件烧录”选择好我们提前下载的Linux镜像(百度云真的慢)
- 点击“选择目标磁盘”选中我们插入的TF卡(我提前格式化了)
- 点击“现在烧录”就可以开始进行烧录了
经过2个阶段,一个是验证阶段,一个是烧录阶段,最后烧录提示“出了点问题”,这里不用管,下面会解释为什么。
小细节:
- 烧录时,提示U盘找不到,需要重新插入,此时,不用管他的提示。
- 在烧录完成后,提示要格式化,也不需要管,因为在烧录时,就已经开始写成Linux的启动镜像盘了,此时,在windows系统是无法识别的,是正常的。
通过重新烧录系统之后,我们的系统就可以正常启动了,但是界面显示需要输入一个用户名和密码,才能进入系统。
通过使用“腾讯云AI代码助手”查找马上给我们得到了结果,并且经过测试,输入以下这组用户名与密码之后,即可正常进入系统的桌面。
- 用户名:HwHiAiUser
- 密码:Mind@123
以上就是通过“腾讯云AI代码助手”帮助我快速熟悉开发板的组装、刷固件、开机,虽然期间在刷固件花了点时间,但是我不需要面对冗长复杂的技术手册,往往需要花费大量时间阅读和理解,占用了开发者大量精力,也会拖慢项目开发进度,只需要通过“腾讯云AI代码助手”问答式几秒钟就能给结果或者给出一些建议。
有机会可以尝试一下“构建企业专属知识库”,看看通过挂载这些文档,开发者不再需要花费大量时间去翻阅文档、理解新业务逻辑,“腾讯云AI代码助手”直接利用这些现有文档资源,完成理解和分析,加速代码生成,快速实现开发需求。
3.2 开发版本远程链接:
远程连接就是在远程连接另外一台计算机,当某台计算机开启了远程桌面连接功能后,就可以在网络的另一端控制这台计算机了,通过远程桌面功能就可以实时的操作这台计算机,在上面安装软件,运行程序,所有的一切都像是直接在该计算机上操作一样。
如何查看Linux wifi地址,在开发板上如何寻找到IP地址,这样才可以使用SSH来进行登录。
一般来说,像开发板的话,会使用使用远程连接来提高工作效率、促进团队协作和资源共享,在询问“腾讯云AI代码助手”如何进行开发板的远程链接,结合总结出以下方案:
- ①. 由于办公环境没有网线,用的是Wifi,所以,先将开发板连上Wifi
- ②. 查看IP地址,使用ip addr命令来查看eth0网卡的IP地址,因为在同一个Wifi中,算是同一个局域内网,可以进行通信
- ③. 开发板上的环境是Linux环境,所以我们使用SSH进行登录
- ④. 登录上开发板环境
上面通过“腾讯云AI代码助手”帮助我们检索想要的答案,将开发板从组装、烧录、开机等阶段的辅助,当然,其中,也会存在一些问题,只有一些文案的描述,如果里面能生成图片就更好了。
3.3 准备开发环境:
因为本人一直是使用PHP和vue在开发项目,没有接触过其它的语言,这次首先使用“腾讯云AI代码助手”帮助查询一下用什么语言开发一个垃圾识别的项目,以下在“腾讯云AI代码助手”帮我们推荐一下使用什么语言来进行开发?
从“腾讯云AI代码助手”的回答提示来看,可以看到基于当前AI和机器学习领域的流行趋势,推荐使用Python语言。
“腾讯云AI代码助手”搜索一下,如何查看环境python版本,可以判断一下我当前的环境中是否有python环境,给我推荐了一条shell命令行“python --version”,经过在开发板中查看,发现确实没有python运行环境,需要进行手动安装一下环境。
搜索“怎么在Ubuntu安装ptyhon环境”,根据提示的在开始安装之前,建议先更新一下Ubuntu软件包列表,以确保安装的最新的版本的软件包,需要输入shell命令“sudo apt update”,可以看到命令执行,开始下载和更新软件列表,但是在这个过程中,更新很缓慢,等了10几分钟也没更新完,在我的笔记中有更新镜像源的方法,但是查找的过程中还需要找笔记,让“腾讯云AI代码助手”来几秒回答我。
“腾讯云AI代码助手”给出的答案,可以分为4步来进行手工来操作切换镜像源:
- ①. 需要备份源文件,因为怕误操作,还可以还原回来,备份/etc/apt/sources.list文件。
- ②. 编辑sources.list源文件,但是给出的答案是使用nano来操作,不过,我个人比较常用vi来进行编辑文件(不过,看个人的喜好)。
- ③. 复制阿里云的镜像源,也可以是清华源。
- ④. 保存文件后,再使用apt-get update命令进行更新Ubuntu软件包列表,来获取最新的版本的软件包。
更新完软件包列表后,继续进行安装python环境,因为现在都是使用python3的版本了,所以,建议使用python3的环境,安装完成后,使用python3 –version查看版本为3.8.0,表示python3的环境是安装成功了。另外,也更新安装一下pip的包管理工具的安装,最终也是安装成功了。
【新知识扩展】:
这里不得不学到一个新的知识,就是虚拟环境,按照理解,就相当于docker一样,会启动一个隔离项目依赖的轻量级环境,非常适合刚入门的开发者,避免环境的问题导致排错困难,弄坏了一个环境,再新建一个虚拟环境即可。
小提示:如果刚接触Python的同学,可以参考一下,Python相当于Node是一个开发语言的环境,而Pip相当于Npm是一个包的管理工具,可以通过pip来安装一些包。
3.4 AI项目智能调试工具 – Jupyter:
在以前跟朋友交流的时候,了解到python有一个Jupyter的在线调试工具,非常的方便,只需要装个软件,就能以web的方式进行访问,然后,可以在web页面进行调试工具,而不需要每个人登录到命令控制台,这样可以减少服务器登录的次数,并且提高了安全的风险,接下来,就让我来使用“腾讯云AI代码助手”来了解并使用Jupyter。
Jupyter是一个开源的、基于Web的交互式计算环境,它允许用户创建和共享包含实时代码、数学方程、可视化和文本的文档。Jupyter最知名的组件是Jupyter Notebook,它是一个允许用户编写、运行和分享包含实时代码、方程、可视化和文本的交互式笔记本的Web应用程序。
Jupyter是一个功能强大、易于使用的交互式编程环境,它非常适合数据科学家、研究人员和教育工作者等人群使用。
3.5 安装Jupyter:
安装Jupyter Notebook通常很简单,用户可以通过Python的包管理器pip来安装。不过,在安装过程中可能会遇到一些常见问题,如网络连接问题或版本兼容性问题等。为了解决这些问题,用户可以尝试使用国内的镜像源来加速下载,或者更新pip到最新版本。
使用“pip3 install jupyter”命令后,等待几分钟后,提示报错:“pip install jupyter时,提示HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out.”,网络超时了,使用“腾讯云AI代码助手”搜索的答案,给了3种方案,可以根据自己的情况来逐一排查,在我这里我觉得第2个方案是最适合的方案。
pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple -vv
前面3个步骤,因为在上面安装Python3环境时,已经更新过软件包列表和安装过Pip3了,这里可以直接省略不需要再次重复安装一遍,在安装Jupyter时,使用“pip3 install jupyter”时,发生了报错Timeout超时的情况,我们可以看到上面通过后面加镜像源解决了这个问题。
当然,这里其实还是推荐上次“腾讯云AI代码助手”提到的python3虚拟环境,这样可以隔离安装的环境依赖。
3.5.1 使用Jupyter:
如果想要运行Python,通常有两种方式,第一种方式就是在Python或者IPython的解释器环境中进行交互式运行,还有一种方式就是程序员最喜欢的编写.py文件,在文件中编写python代码,然后运行。
Jupyter是一个基于网页的交互式计算环境,主要用于Python开发,适合数据分析和机器学习,上面已经安装了 Jupyter软件,接下来就让我们来就启动Jupyter软件,根据上面的问答,直接使用以下命令,启动一个Web的服务:
jupyter notebook
在浏览器中进行代码编辑,从浏览器执行代码的能力,并将计算结果附加到生成它们的代码上,打开如下图的“Python 3”,就可以得到一个网页形式的“Python环境”,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示,同时,如果想要在编程过程中编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
Jupyter提供了一个环境,可以在其中记录代码,运行代码,查看结果,可视化数据并在查看输出结果。这些特性使其成为一款执行端到端数据科学工作流程的便捷工具 ,可以用于数据清理,统计建模,构建和训练机器学习模型,可视化数据以及许多其他用途,详细的功能可以自己摸索一下。
四、“腾讯云AI代码助手”最佳实践 - 基于“MobileNet V2”的模型的训练:
上面通过“腾讯云AI代码助手”,从开发板子的组装到开机、再到安装环境,已经基本上具备了项目的开发,接下来,再接再厉,让“腾讯云AI代码助手”继续给我们生成基于“MobileNet V2”的模型的训练模型。
为了在香橙派的开发板子上,先体验一下图像识别的项目,让“腾讯云AI代码助手”帮我们推荐一款适合香橙派Python的垃圾识别图像分类的模型,可以看到推荐了一个“MobileNet”的模型,通过“数据准备”、“模型训练”、“模型部署”和“图像分类”4个大块,可以完成一个垃圾识别系统的开发。
顺藤摸瓜,上面“腾讯云AI代码助手”推荐了一个非常适合在资源有限的设备如香橙派上运行 – “MobileNet”模型,通过上下文有效的结合后,帮我生成一个“MobileNet”模型垃圾分类的项目,大概分为5个步骤来实现:“数据准备” -> “数据预处理” -> “模型搭建” -> “模型训练” -> “模型测试”。
上面通过“腾讯云AI代码助手”生成的《基于MobileNetv2的垃圾分类》的代码,可以将代码复制到JupyterLab中执行,发现报错:
ModuleNotFoundError: No module named 'tensorflow'
提示’tensorflow’模块没有找到,通过“腾讯云AI代码助手”的分析是开发板中的Python环境中没有安装tensorflow这个模块。
TensorFlow是一个开源的机器学习库,由Google Brain团队开发,用于研究和生产中的各种机器学习和深度学习任务。它支持多种编程语言,但最为人所熟知的是其在Python中的应用。
解决方案:可以通过Python的包管理工具pip来安装tensorflow模块,安装成功后,会显示“Successfully installed”,表示安装成功了。
pip install tensorflow
安装模块后,再将生成的代码,复制到Cell中,再进行执行,发现提示“FileNotFoundError: [Errno 2] No such file or directory: ‘path_to_dataset’”,这个问题还是比较简单的,就是没有找到文件与目录,就是找不到对应的文件与目录,此时,需要去找一下需要的数据集,包括2个部分:
- 需要训练的数据集
- 需要测试的数据集
从“腾讯云AI代码助手”中,找了不少的方案也没有提供相关的现成的数据集(垃圾图片相关的),没有办法,只能通过在网上和群里询问大家,最后得到了一个公开的垃圾分类相关主题的数据集,里面包含训练和测试的数据集,一共有26个分类的样本图片。
将这些图片直接拖动到JupyterLab中即可上传到开发板中,还是比较方便的,否则只能靠FTP的工具来进行上传了,顺便将以下代码修改为对应正确的路径:
# 假设你已经有了train_generator和validation_generator
train_generator = train_datagen.flow_from_directory(
'/root/workspace/data_en/train', # 替换为你的数据集路径
target_size=(224, 224),
batch_size=32,
class_mode='categorical',
subset='training')
validation_generator = train_datagen.flow_from_directory(
'/root/workspace/data_en/test', # 替换为你的数据集路径
target_size=(224, 224),
batch_size=32,
class_mode='categorical',
subset='validation')
将修改的代码,再复制到Cell中,再次执行,会提示“ImportError: This requires the scipy module. You can install it via pip install scipy”,如图,这个提示也是比较简单的,安装一下即可。
将修改的代码,再复制到Cell中,再次执行,发现又报错“ValueError: Arguments target and output must have the same shape. Received: target.shape=(None, 26), output.shape=(None, 4)”,表示目标的索引值超过了范围。
通过“腾讯云AI代码助手”分析,是因为训练集或者测试集包含了超过4个不同的文件夹名称,才会导致目标标签的索引超出了模型输出类别的范围,同时,经过查看文件夹,确实有26个子文件夹,找到问题发生的原因了。
将修改的代码,再复制到Cell中,再次执行,发现又报错“IndexError: list index out of range”,表示目标的索引值超过了范围。
通过将类别修改为26种类型后,这里对应的是数据集中的类别:
# 垃圾分类的类别标签
class_labels = ['Seashell', 'Lighter','Old Mirror', 'Broom','Ceramic Bowl', 'Toothbrush','Disposable Chopsticks','Dirty Cloth',
'Newspaper', 'Glassware', 'Basketball', 'Plastic Bottle', 'Cardboard','Glass Bottle', 'Metalware', 'Hats', 'Cans', 'Paper',
'Vegetable Leaf','Orange Peel', 'Eggshell','Banana Peel',
'Battery', 'Tablet capsules','Fluorescent lamp', 'Paint bucket']
当解决完所有的错误后,我们的模型也开始进行训练了,可以看到loss在不断提高,Accuracy在不断下降。另外,在模型训练完成后,代码会将“garbage_classification_model.h5”模型保存到本地。
五、“腾讯云AI代码助手”最佳实践 - 基于“MobileNet”的模型的推理:
> 基于MobileNet的模型进行推理测试主要涉及几个关键步骤,包括模型加载、预处理输入数据、执行推理以及结果输出。
上面我们通过将基于MobileNet的模型进行了模型的训练,接下来,我们通过一些图片来实际测试一下,根据我们的图片能否检测出来一些垃圾的分类。
以上就是通过“腾讯云AI代码助手”,使开发人员能够更有效地将腾讯自研的混元助手大模型集成到代码生成和文档中,通过对基于“MobileNet”的模型垃圾图片的识别项目,打破传统的以代码为中心的范式,利用“腾讯云AI代码助手”为开发人员提供了一种非常实用和有效的方式来与大型语言模型(LLM)进行交互和协作,可以看到在超越简单的代码自动完成和对代码片段的有限操作。
六、“腾讯云AI代码助手”最佳实践 – Tdesign框架与Flask Web API集成:
上面借助了“腾讯云AI代码助手”完成了最重要的一块,可以将图片进行AI的分类,接下来,使用官方提供了一个Tdesign框架模板,将它在开发板中跑起来,可以看到这是一个前端Npm包的项目。
对于我来说,前端接触比较多的就是Element、Vant、Antd等UI组件库,搜索了一下,也是腾讯出品的比较不错的UI框架,本人也是第一接触,刚好使用“腾讯云AI代码助手”来搜索一下。
可以看到比常见的UI库多了图表和地图的组件,同时,也是支持typescript的代码,使用React和Vue的代码都能支持,平常本人也是常用这2个技术栈语言,不过,在生成时不加详细一点,生成的答案比较简短,可以内容稍微丰富一点,另外,可以支持一些官网的一些架构图,看起来内容更丰富一点。
代码如何同步到开发板上呢?通过进行搜索,我们找到了SCP的命令,并且通过SCP命令将本地的zip压缩模板包上传到服务器上面,再使用unzip进行解压缩。
unzip TD-AI-Chat-demo.zip
另外,我在开发板上查询了一下,看到环境中并没有Node相关的开发环境,使用“腾讯云AI代码助手”搜索在ubuntu上安装Node.js系统。
这里因为本人平时开发也是使用的18版本的环境,所以,这里搜索也是相关的版本输出,安装完成后,也可以看到“node -v”版本为18.20.5,到这里Node相关的环境就安装完成了,通过安装依赖和执行开发环境,如下跑起来一个项目:
yarn install
yarn dev
可以看到,我们在默认的模板中,输入一些想要搜索的信息,通过请求接口,会返回一些流式的数据结果,再渲染到页面中。
【方案实现思考】:
回想一下,上面我们实现了通过一张本地的图片就可以识别这个图片是什么类型的垃圾,只需要在提供的模板文件进行图片上传即可,然后拿到识别后的信息,再根据这个信息,查询一下这个垃圾分类的一些危害。
6.1 安装上传组件:
搜索“Tdesign框架如何增加一个图片上传的功能”,UI库本身是有上传组件的,而且可以看到引入组件的方式也是按需引入,比较推荐这种方式。
接下来第二步来看,直接提供了一个可执行的vue文件,包含Html和js这块代码,不过这里挺厉害的是,居然直接生成就是Vue3的代码文件(好奇它怎么知道我是Vue3的项目?),需要注意的:
- ①. html里面的代码包含//,在复制之后还需要手工去删除一下。
- ②. 生成的上传最好携带一些参数,比如有些场景下,需要在上传接口时,需要选择一些参数上传到后端。
接下来是图片上传完成后,可以进行图片的回显功能,但是这里是可选,看自己需要是否回显。
将生成的代码依次复制到模板代码中,可以看到逻辑上没有问题,接口请求也成功了,只不过,这里后端的地址因为是示例代码的,所以肯定会报错,另外,看到上传的Form Data中包含一个file(文件的二进制数据)。
6.2 使用Python写一个Web服务的上传图片API:
上面上传的功能写好了,只需要有一个接口能够接收到图片,然后,再将图片给上面AI图片识别后,返回对应的类别即可,因为我们用的就是Python语言,所以,让“腾讯云AI代码助手”帮我生成一个Python的Web服务,这里在刚开始询问的时候,发现会生成html代码,后面加了一句话,只用来提供API服务,就会只生成API的相关代码。
但是将代码放到python代码里面发现,并不知道怎么去执行这个脚本代码,进行了上下文的一个关联搜索,原来是使用“pyhton +文件名”的方式来执行这个脚本文件,结果发现报错:“ModuleNotFoundError: No module named ‘flask’”,根据上面的经验,可能是没有安装这个flask包:
pip install flask
启动后,发现监听的端口是5000,并没有跟其它的端口有冲突,代码可以完美的跑起来。
接下来,我们使用postman进行访问,发现接口也是能成功,基本上没有代码的修改,非常的快速的就搭建了一个可执行的web项目,并且测试接口无问题。
6.3 集成MobileNetV2与Flask Web API接口:
上面通过“腾讯云AI代码助手”生成了基于MobileNetV2相关的代码,和Flask生成了Web API相关的接口,可以将两份代码进行合并操作,通过简单的调试一下,并完成了一个服务的部署。
通过配置一下代理的功能,就能访问后端的服务,不过,这里需要注意一下,因为我是复制上面的代码,结果是https,postman请求成功,但是页面请求不成功,调试了半天,可以注意一下。
上面上传了一个图片后,发现请求后端服务器是成功的,并且返回了图片分类的名称,此时,《构造一个垃圾图片识别的Copilot》就可以进行完成了,可以发现从头到尾,基本上自己没有写太多代码,而且对于不熟悉的领域也比较可以通过“腾讯云AI代码助手”快速进行了解。
由于时间关系,大致的思路已经完成,后续就是一些样式的修改。
七、思考工作中传统模式团队开发的痛点:
随着AI人工智能、机器学习的不断发展,开发者的编程领域也在经历着一场前所未有的变革,在这个过程中,AI智能编程工具的出现为开发者们提供了一种全新的编程方式,AI辅助代码编程也已经成为了一个十分备受关注的领域。
作者也是经过了以上几个阶段的软件开发历程,从Web时代编程、到云时代分布式编程,到如今的AI时代,传统编程是人类程序员手动编写代码来实现特定的功能。
而通过使用AI辅助代码编程可以半自动化或全自动化的生成代码,从而提高编程效率和代码和质量,接下来分析一下我们在工作中会遇到有哪些问题点,以及这些问题点如何的使用“腾讯云AI代码助手”来优化解决?
7.1 公司团队管理痛点:
如下为公司团队管理工作过程中,在开发的过程中,会存在很多团队管理的问题,比如接手不熟悉的业务代码、紧急处理其它业务的Bug、大量的命名、写大量的注释、有限的时间周期完成新技术的开发、代码阅读比较困难、代码无法做优化处理、文档与项目需求丢失。
以下是在多年开发中,遇到的团队管理问题,你是否也会跟我一样也会遇到呢?
- ①. 同事临时请假,领导安排我接替同事的任务继续开发。
- ②. 一个好几年不维护的项目,突然系统出Bug了,领导安排我紧急处理。
- ③. 只给了半个工作日时间,一个中等模块的功能需求紧急上线。
- ④. 很多项目因为工期给的少,导致缺失大量的单元测试,容易线上出Bug。
- ⑤. 突然项目需要使用地图功能,之前没有接触过,需要紧急上线,查阅大量的资料,很多都是错误的、过时的。
- ⑥. 某个项目经过几波人离职,没有任何文档、项目需求,继续开发新功能。
7.2 技术开发痛点:
以下是本人在技术开发中,遇到的一些主要问题点,很多重复的工作,其实可以使用AI的工具来代替。
场景一:当需要重复地编写相似的代码,很容易出错。
- ①. Java开发,为了符合DDD领域驱动,写大量的Bean、Dao、Pojo、Service、Controller、Mapper、BO、VO、PO、Domain、Entity、Repository等比较重复的命名文件。
场景二:无法使用自然语言描述生成代码。
-
②. 只需要写一句注释,简单描述自己的需求,就能让”腾讯云AI代码助手”贴合上下文的编程语言习惯,生成相应的代码,参考这个注释、贴合上下文的编程语言习惯,自动生成相应的代码,程序员只需稍作修改就可以满足需求。
-
③. “腾讯云AI代码助手”根据注释来续写生成新代码的能力,大大提高了程序员的开发质量与效率,减少了重复编写代码所需的时间以及会遇到的错误。
场景三:当进行代码Review或者接手离职人员、请假临时对接功能,无法快速接入。
- ①. 面临很多缺乏注释的复杂代码时,理解代码逻辑非常困难。
- ②. 特别是有些写if狂的人,或者有些为了秀技术的,把简单的代码复杂度增加N倍的人,代码的调试变的非常难以阅读。
- ③. 大部分人会重写该模块,增加重构的时间成本,还可能会产出额外的Bug。
- ④. 选中某段复杂的代码片段,让 “腾讯云AI代码助手” 帮你解释、生成注释、拆分函数优化代码和生成单元测试等多种操作,帮助理解代码逻辑,提高代码的可读性和可维护性。
- ⑤. 新入职的实习生也能进行软件工程最佳实践落地,新手也能写出成熟代码,让”腾讯云AI代码助手”成为新人成长路上的好助手。
7.3 比较团队中已有的AI方案痛点:
团队中也有人在使用GPT-4,但是在技术整个团队的普及率比较低,推行也比较困难的,因为使用的成本较高,需要接收海外的短信、海外的银行卡(如VISA卡)、访问OpenAI网站(需要访问外面),而且使用不当还非常容易封号,并且是重要的一点是ChatGPT 4.0是收费的,必须开通plus会员才可以用。
而现在腾讯云AI代码助手,背后对接腾讯自研的混元助手大模型,只需要简单的微信扫码,就能把腾讯云AI代码助手嵌入到VsCode IDE(还支持JetBrains IDEs)中,就可以突破上面这些限制,即可在团队中免费无缝体验AI辅助编程,还在犹豫啥?
八、企业项目“帮我想”的最佳落地实践 – 精确的分析代码上下文能力:
上面我们体验了“腾讯云AI代码助手”强大的搜索与回答功能,可以让开发的效率变的事半功倍,那在平时的企业项目中,如何来最佳实践使用呢。
大家会不会跟我一样,在公司是负责好几条产品业务线,经常会遇到同事请假、代码评审、员工交接、核心模块业务等情况:
- 不得不去阅读别人的代码
- 有时候没有太多的注释,只能是先理解再去加功能修改
- 线上紧急Bug修复,往往只能依托测试需要怎么改就怎么改?
虽然,我在公司也导入了不少代码检查工具,如各种lint插件、sonarQube平台,来尽量减少代码的容错性、增加代码的健壮性。
但是,这些解决方案只能解决一些基本、简单的一些错误,比如一些语法错误、格式错误,遇到一些非语法性的错误,比如进行逻辑分析明显就比较吃力了,今天给大家来介绍一下“腾讯云AI代码助手”的上下文控制,你就知道有多么方便和高效了。
8.1 代码分析解释功能:
以下是框架中发送数据的比较核心的代码,一大堆代码,看着都头晕,那我们如何使用“腾讯云AI代码助手”来进行代码的逻辑分析呢?在方法或者函数上会出现“解释代码”,选择即可进行”腾讯云AI代码助手”会话分析。
使用“腾讯云AI代码助手”可以直接在代码中的函数或方法上面有“代码解释”的按钮,直接复制当前代码并在“腾讯云AI代码助手”中进行搜索给出代码的相关注释,再也不用像GPT4一样,复制一段代码到网页上,再进行搜索,大大的节省了来回切换的操作时间。
8.2 代码Review与优化:
随着业务的增长和开发团队的成员快速增加,其中很多团队成员来自各个门派,在编码的风格和习惯中也出现各异,而且团队成员的技术水平和知识储备量也是会不一样,根据项目工期的时间产出的结果也是不一样,所以,公司会进行代码Review这个环节,通常在相互 CodeReview 时发现很多代码上的问题,久而久之代码出现了代码难以维护的问题,甚至还会出现低级错误,以下是在给团队成员提出的建议。
经常进行代码Review的同学会发现,这是一个比较耗时又费力的过程,即要了解当时的业务逻辑,又要去排查是否存在逻辑问题,是否有Bug的存在,接下来让我们使用“腾讯云AI代码助手”的调优建议来尝试一下,AI帮我们优化代码。
点击“代码评审”即可将这段代码自动添加到”腾讯云AI代码助手”中,可以发现会自动进行分析,然后给出结果,可以看到结果也是会很快就出来了,给腾讯自研的混元助手大模型点赞。
“腾讯云AI代码助手”根据上下文进行AI分析后,类似大家来找碴的功能,很快就帮我们分析出存在2个问题点,如下:
1. 对于Problem 1,我将每次处理的数据块大小从1增加到了10(您可以根据实际情况调整这个数值),这样可以减少slice操作的次数,提高性能。
2. 对于Problem 2,我在catch块中添加了异常信息的记录,使用console.error打印错误信息。同时,我调用了this.controller.error(error)来通知流的使用者发生了错误。这样可以方便您调试和排查问题。
之前需要花费10分钟才能完成的Code Review工作,现在交给“腾讯云AI代码助手”进行AI分析后,只需要3秒就能生成结果,再根据结果进行分析一下,效率可以提高90%,而且还有一些建议是自己没想到的功能优化,非常适合在团队中使用,有利于软件工程最佳实践落地,新手也能写出成熟代码。
九、企业项目“帮我改”的最佳落地实践 – 写好Prompt,更懂、更知、更精准:
原来需要2小时的工作,用“腾讯云AI代码助手”只需要几分钟就能完成,剩下的时间摸鱼不香吗?Prompts到底是个什么东西?提示词?指令?是不是感觉很拗口,很陌生?
大家都看过《龙珠》吧,Prompts其实就相当于咒语,召唤时只需要大喊:“出来吧,神龙。”,就可以召唤出不同的“神龙”, “腾讯云AI代码助手”就是扮演这样的角色,用来更好的回答你的问题。
使用中文提示词可能会得到不错的结果,但是当你再次输入相同的中文提示时,结果可能与之前大相径庭。因为“腾讯云AI代码助手”背后的腾讯混元大模型大模型对中文的理解每次都不同,以保证输出效果。
Prompt,也称为指令或提示语,是人工智能和自然语言处理领域中常用的术语。它指的是输入到计算机系统中的一段文本,用来激活代码模型对用户问题进行回答或执行某些任务。Prompt的作用是把用户的问题或需求转换为模型可以运行的指令。
通过进行左右两种Prompt的对比,我们在对于功能场景的描述中,尽可能的具体化、明确化,而不仅仅是简单地将问题转换为指令,而且要考虑到上下文、语法和语言风格等多个方面。
十、企业项目“帮我写”的最佳落地实践 – 一键生成单元测试,提高代码健壮性:
还有一个最直观的提效功能,就是可以利用“腾讯云AI代码助手”的能力写代码、写注释、写单元测试、检测及修复bug、解释代码含义、提高代码可读性,以及对代码进行性能检查、安全性检查、代码风格检查,问各种技术问题等,可显著提高开发效率。
常常我们的工具库,一般会复用到很多的项目中,一般来说,基本上都需要写单元测试,保证基础服务的一个稳定性,“作为最底层的类库,测试管不了的我要管,开发不管的我也要管”,在实际工作中,都知道单元测试的重要性,写单元测试也是比较占开发工作量的。
- ①. 开发因为项目周期的原因是不会写单元测试的。
- ②. 开发工程师写的单元测试用例也不够全面。
- ③. 软件测试工程师很多时候因为技术能力达不到。
今天,这些条件统统都不存在了,我们可以利用“腾讯云AI代码助手”来进行单元测试,只需要在函数上将需要生成单元测试的代码使用“生成单测”,即可直接上传代码,并生成了单元测试的代码,非常的快速,比人为的开发效率还要高保存即可。
对于上面我生成好的API接口,我们可以使用自带的“单元测试”,就可以针对某个文件来生成单元测试的代码,可以看到python是使用unittest框架来进行单元测试的,之前也没怎么接触过,测试的方法也帮我生成了6种不同的测试场景,分为成功、失败的。
但是在执行的时候,发现报错了,提示“TypeError: FileStorage.init_() got an unexpected keyword argument ‘data’”,但是因为Python代码我也是刚学习,也不太懂,也交给腾讯云AI助手来进行查看。
可以看到进行搜索原因后,会分析错误的原因,可以使用stream参数来传递文件内容,并且关联上下文,并且将单元测试的代码进行更新,最后给出关键信息更改的说明,复制代码后,直接运行成功。
可以看到“腾讯云AI代码助手”可以在几分钟内就帮我们生成好单元测试的代码,再也不用自己去写逻辑,想场景,对于不同的报错,AI也可以有效的帮助我们来修复。此外,还有还可以进行安全检查、代码风格检查、清洁代码等功能,可以看到利用此插件可显著提高开发效率和代码质量,感兴趣的程序员们赶快试试吧。
“腾讯云AI代码助手”在自动化编写和执行单元测试方面具有巨大的潜力,通过使用文心大模型,可以提高测试效率和代码质量,解放开发人员的生产力。在未来,随着人工智能技术的不断发展和完善,相信AI大模型在软件开发领域的应用将越来越广泛。
十一、“腾讯云AI代码助手”推动企业降本增效SWOT分析:
“腾讯云AI代码助手”丰富的插件基础能力,可以更好地满足企业定制化开发需求,助力企业低成本打造更加适合组织的自有智能代码助手,进一步大幅提升软件研发体验和效率。
“腾讯云AI代码助手”是一款辅助编码工具,基于混元代码大模型,提供技术对话、代码补全、代码诊断和优化等能力。为你生成优质代码,帮你解决技术难题,提升编码效率。
在企业项目中也实际使用起来了,完全可以满足业务的开发,而且门槛也比较低,基本也没有太多的风险点,下面是个人总结的SWOT,可仅大家参考一下。
“腾讯云AI代码助手”拥有强大的 AI 能力,通过代码补全、代码推荐、单测生成等能力,在编程的各个阶段提供协助支持,可以为整个函数或每行代码生成注释,提升代码可读性,方便协同开发。还能快速发现代码中的问题并给出智能优化建议,提升代码质量。
上面通过对“腾讯云AI代码助手”的最佳实践体验的过程中,基于腾讯混元助手大模型,提供代码智能生成、研发智能问答能力,可以让代码智能生成,完成工作更高效,特别是可根据当前代码文件及跨文件的上下文,预测出可能的代码走向,给出合适的代码片段,极大地提高了编程效率,让你更专注在技术设计,高质高效地完成编码工作,如下是个人在体验中比较直观的感受:
11.1 “腾讯云AI代码助手”全链路、全流程辅助:
“腾讯云AI代码助手”是一款AI值得信赖的编程助手,使用起来简单方便。“腾讯云AI代码助手”能够帮助开发者更快速、更高效地进行编程工作,是一款非常值得推荐的工具,在IDE之外的其他研发环节,还可通过生成自动化用例、在CLI中智能获取所需命令等能力,帮助开发者全面提升研发效率。
11.2 “腾讯云AI代码助手”版本选择:
个人版本提供业务代码与测试代码的生成、代码优化与修复、自然语言对话式技术问答等多维度辅助编码能力,同时支持 100+ 语言与多种主流 IDE,让你的编码更快、更好、更简单,本人推荐团队管理可以使用“企业旗舰版本”。
当然,企业版本在个人版本的基础之上,同时提供完备的数据报表能力,助力企业分析应用效果、定位效能瓶颈,一站式赋能研发过程降本提效,私有化部署版本涵盖企业版本全部能力,同时支撑大型企业规模化部署与应用,保障使用效果,维护数据安全。
11.3 “腾讯云AI代码助手”能带来什么样的提升:
-
①. 代码智能生成,完成工作更高效:
可根据当前代码文件及跨文件的上下文,生成行级/函数级代码、单元测试、代码注释等。沉浸式编码心流,秒级生成速度,让你更专注在技术设计,高质高效地完成编码工作。 -
②. 研发智能问答,解决问题更轻松:
基于腾讯混元大模型(Tencent Hunyuan)由腾讯公司全链路自研,在高质量内容创作、数理逻辑、代码生成和多轮对话上性能表现卓越,处于业界领先水平。通过整合腾讯优质的内容生态,提供强大的时新、深度内容获取和 AI 问答能力,为你答疑解惑,助你轻松解决研发问题。
11.4 “腾讯云AI代码助手”企业导入可行性分析:
如下是根据“腾讯云AI代码助手”体验后,对于企业级项目使用的一些评估项目,可以看出目前前端团队都是使用VsCode,可以零成本进行导入,后端或运维同学,可能比较偏向于其它的IDE工具,如PhpStorm、GoLand、PyCharm,也可以快速的全面的使用,覆盖了前、后、移动端,软、硬件等不同的开发场景,可全面满足业务的多样性。
另外,继支持 VS Code、JetBrains 全系列等主流 IDE 后,“腾讯云 AI 代码助手”在DevEco-Studio IDE和微信开发者工具也上线了,最近公司正在转型鸿蒙业务的开发,非常的福利。
十二、总结:
相信大多数人看过《校花的贴身高手》吧,其中前期玉佩元神“焦牙子”,帮助林逸在修炼上引路者,使得人生就像开挂一样。在未来AI作为桥梁纽带的情况下,我们或许可以期待一个“开源软件、代码编辑器、可视化编辑器和低代码”更加无缝整合的新时代。
“腾讯云AI代码助手”是基于腾讯混元代码模型打造的新一代智能编程工具,借助混元代码模型的理解、推理能力,可支持代码解释、技术问答、实时续写、生成单元测试、代码优化与修复、智能CLI等10余项编码功能,助力企业研发全流程降本增效。
“腾讯云AI代码助手”是一个VsCode等IDE的插件,通过上面的了解与实践,也像“布道师”一样,能够发现对团队的开发工作有着明显的提升开发效率的效果,就像一个“智能编程助手”,帮助开发者更快、更好地解决问题,也让IT开发人员也能开挂一样。
当然,上文没有全部演示完“腾讯云AI代码助手”所有好用的能力,在项目开发中,使用VsCode插件和Web页面的GPT会存在很大区别,“腾讯云AI代码助手”就像把腾讯混元代码模型直接嵌入到VS Code中,但并不是简单的嵌入,通过许多一键式交互,直接将代码与AI智能大模型完美的兼容起来,加快代码开发的规范性、效率性、便捷性、低门槛。
“腾讯云AI代码助手”可满足开发者代码生成全周期、全场景需求,真正实现 “帮你想”、“帮你写”、“帮你改” 的多场景应用形态。
“帮你想”——为了帮助开发者快速上手新代码,“腾讯云 AI 代码助手”的代码解释功能,可以对完整函数代码或一段选中代码的解释,帮助开发者迅速理解新代码,以各种方式向 AI 代码助手进行技术对话咨询,所获取的代码内容可以一键插入IDE当中。
“帮你写”—— “腾讯云 AI 代码助手”具备自动补全代码、根据注释生成代码、代码解释、生成测试代码、转换代码语言、技术对话等能力。此外,“腾讯云 AI 代码助手”能够全面分析代码上下文、依赖文件、相邻文件的逻辑关系,使代码语法更规范、逻辑更缜密。
“帮你改”—— “腾讯云 AI 代码助手”支持辅助补全、BUG 诊断、生成测试,也可识别代码中潜在错误并自动修复,可以释放机械性工作, 专注代码创作,极大地助力企业研发工作的脚本提效。
更多推荐
所有评论(0)