综述由AI生成利用腾讯云 AI 代码助手从零构建垃圾图片识别系统的过程。项目基于香橙派开发板,使用 Python 环境及 MobileNet V2 模型进行图像分类训练。通过 Jupyter Notebook 调试,结合 Flask Web API 与 TDesign 前端框架实现交互。文章涵盖了硬件准备、环境部署、模型训练推理及前后端集成等关键步骤,展示了 AI 辅助编程在嵌入式与机器学习项目中的实际应用效果。
宁静36 浏览
一、前言
最近公司有一个项目需求需要使用到 AI 智能识别的功能《垃圾智能 AI 识别系统》。本人一直从事 Web 领域开发工作,也没接触过人工智能这个赛道,刚好现在借这个'腾讯云 AI 代码助手编程挑战赛'来了解一下 AI 写代码相关的流程。
经过'腾讯云 AI 代码助手'的帮助,我从 0 到 1 实现了《构建开发板垃圾图片识别 AI 对话的 Copilot》的项目。在很多地方帮助程序员开发人员更好地理解和优化代码,提高软件的可维护性和可靠性、安全性。
上图是通过'腾讯云 AI 代码助手'从硬件到软件、模型的应用、生成 Flask Web API 服务,再到最后工作中的最佳实践。通过测试 Vue、Js、Python、Go 等语言的实际场景,'腾讯云 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》的项目。
本人也是刚刚接触开发板,从'腾讯云 AI 代码助手'给出的解释是:开发板(Development Board)是一种用于嵌入式系统开发的硬件平台。它通常包含一个或多个微控制器、微处理器、存储器以及其他硬件组件,如传感器、通信模块等。开发板提供了一个方便的环境,让开发者可以在实际硬件上测试和调试他们的代码。
在以前跟朋友交流的时候,了解到 python 有一个 Jupyter 的在线调试工具,非常的方便,只需要装个软件,就能以 web 的方式进行访问,然后,可以在 web 页面进行调试工具,而不需要每个人登录到命令控制台,这样可以减少服务器登录的次数,并且提高了安全的风险。接下来,就让我来使用'腾讯云 AI 代码助手'来了解并使用 Jupyter。
Jupyter 是一个开源的、基于 Web 的交互式计算环境,它允许用户创建和共享包含实时代码、数学方程、可视化和文本的文档。Jupyter 最知名的组件是 Jupyter Notebook,它是一个允许用户编写、运行和分享包含实时代码、方程、可视化和文本的交互式笔记本的 Web 应用程序。
安装模块后,再将生成的代码,复制到 Cell 中,再进行执行,发现提示'FileNotFoundError: [Errno 2] No such file or directory: 'path_to_dataset'',这个问题还是比较简单的,就是没有找到文件与目录,就是找不到对应的文件与目录,此时,需要去找一下需要的数据集,包括 2 个部分:
需要训练的数据集
需要测试的数据集
从'腾讯云 AI 代码助手'中,找了不少的方案也没有提供相关的现成的数据集(垃圾图片相关的),没有办法,只能通过在网上和群里询问大家,最后得到了一个公开的垃圾分类相关主题的数据集,里面包含训练和测试的数据集,一共有 26 个分类的样本图片。
将修改的代码,再复制到 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',表示目标的索引值超过了范围。
以上就是通过'腾讯云 AI 代码助手',使开发人员能够更有效地将腾讯自研的混元助手大模型集成到代码生成和文档中,通过对基于'MobileNet'的模型垃圾图片的识别项目,打破传统的以代码为中心的范式,利用'腾讯云 AI 代码助手'为开发人员提供了一种非常实用和有效的方式来与大型语言模型(LLM)进行交互和协作,可以看到在超越简单的代码自动完成和对代码片段的有限操作。
六、'腾讯云 AI 代码助手'最佳实践 – Tdesign 框架与 Flask Web API 集成
上面借助了'腾讯云 AI 代码助手'完成了最重要的一块,可以将图片进行 AI 的分类,接下来,使用官方提供了一个 Tdesign 框架模板,将它在开发板中跑起来,可以看到这是一个前端 Npm 包的项目。
对于我来说,前端接触比较多的就是 Element、Vant、Antd 等 UI 组件库,搜索了一下,也是腾讯出品的比较不错的 UI 框架,本人也是第一接触,刚好使用'腾讯云 AI 代码助手'来搜索一下。
将生成的代码依次复制到模板代码中,可以看到逻辑上没有问题,接口请求也成功了,只不过,这里后端的地址因为是示例代码的,所以肯定会报错,另外,看到上传的 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 相关的接口,可以将两份代码进行合并操作,通过简单的调试一下,并完成了一个服务的部署。
'腾讯云 AI 代码助手'拥有强大的 AI 能力,通过代码补全、代码推荐、单测生成等能力,在编程的各个阶段提供协助支持,可以为整个函数或每行代码生成注释,提升代码可读性,方便协同开发。还能快速发现代码中的问题并给出智能优化建议,提升代码质量。
上面通过对'腾讯云 AI 代码助手'的最佳实践体验的过程中,基于腾讯混元助手大模型,提供代码智能生成、研发智能问答能力,可以让代码智能生成,完成工作更高效,特别是可根据当前代码文件及跨文件的上下文,预测出可能的代码走向,给出合适的代码片段,极大地提高了编程效率,让你更专注在技术设计,高质高效地完成编码工作,如下是个人在体验中比较直观的感受:
11.1 '腾讯云 AI 代码助手'全链路、全流程辅助
'腾讯云 AI 代码助手'是一款 AI 值得信赖的编程助手,使用起来简单方便。'腾讯云 AI 代码助手'能够帮助开发者更快速、更高效地进行编程工作,是一款非常值得推荐的工具,在 IDE 之外的其他研发环节,还可通过生成自动化用例、在 CLI 中智能获取所需命令等能力,帮助开发者全面提升研发效率。
②. 研发智能问答,解决问题更轻松:
基于腾讯混元大模型(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 诊断、生成测试,也可识别代码中潜在错误并自动修复,可以释放机械性工作,专注代码创作,极大地助力企业研发工作的脚本提效。