比 Copilot 快两倍以上!在我的开源项目 AI Godot 桌宠中用通义灵码解决问题

本文作者:plzpj6bp7mjr4,内容选自通义灵码超级个体创新实践大赛,并对部分内容做了微调,感谢作者分享的最佳实践!

最近,阿里的开源大模型刷屏了,我一直都是通义的用户,也本地部署过 Qwen 系列模型,自己也是 AI 代码助手的高度依赖用户,同时也是 AI 项目的开发者。

Qwen 开源模型在开源榜单上大杀四方,所以不得心生几分好感,通义灵码底层基于 Qwen2.5 最新模型,代码补全和问答能力全面升级。

正好最近我正在开发一款开源桌宠软件,链接地址如下:
https://github.com/jihe520/Desktop-Pet-Godot

项目简介:🤖👾🐶一款由大语言模型驱动、Godot 制作的 AI 桌宠,旨在提供一个全能的、丰富的桌面 AI 宠物。

项目使用的是开源的 Godot 游戏引擎,使用的语言是自带的 gdscript,语法类似 Python 但是和游戏引擎绑定更紧密,这个项目对 Copilot 来说,还是有很多难度。

因为该语言语法 API 变化快,godot3 和 godot4 的语法发生大变化,许多 LLM 都是给的 godot3 淘汰的语法,不能给出最新的语法,该语言也比较小众,缺少训练资料,让我来测测通义灵码能力。

难点:

  • 更好的泛化能力,对小众语言学习能力强
  • 对整个大项目理解程度高
  • 训练数据集是否及时更新,能否适应语法 API 的更新变化

以上考察的难点,也是我最关心的点,也算是技术难点吧。

废话少说,接下来开始使用。

首先,我在 VSCode 里装上通义灵码插件,操作很简单,点击扩展-搜索 Tongyilingma,点击下载安装即可。

项目结构

为方便演示,我先让通义灵码整体认识我的项目,这里我使用的是通义灵码本地工程问答能力 @workspace。

当你需要快速了解一个工程、查找工程内的实现逻辑,或有新诉求需要进行代码变更时,可以在通义灵码智能问答窗口中通过@ 可唤起 @workspace,选中后输入你的问题或诉求,通义灵码可快速结合当前仓库进行工程理解、代码查询、代码问答等,同时可以通过自然语言描述需求,结合当前工程生成简单需求或缺陷的整体修改建议和相关建议代码。

@workspace 怎么用?

1)快速上手熟悉新的代码工程

可以询问当前项目的任何细节,如“项目的结构和功能是什么?”,“订单管理的代码实现在哪”,“如何构建和运行当前项目”。与灵码对话,消除陌生感,快速上手新项目。

2)头脑风暴,协助实现新需求

可以结合当前代码工程,分析用户的需求问题,提供实现代码或头脑风暴。如“如何增加用户鉴权逻辑”,“实现一个功能,批量添加我的收藏里的商品到购物车”,“增加删除文章的接口,包含后端 controller,service,mapper前端 vue 的变更”等,让灵码快速提供解决方案及代码。

解释代码

我忘记了 Globals.gd 里面的逻辑关系,我便让通义灵码给我解释下,它出乎我的意料,还给出了相关流程图,帮助我更好的理解。开发者用通义灵码可以提高代码理解和调试效率,简化复杂代码、提高协作效率、节省时间。

通义灵码支持代码逻辑可视化,可以把你的每段代码画成流程图,帮助程序员清晰地展示代码逻辑、业务流程、系统架构,还可以绘制时序图、类图、状态图等。通过简单的文本描述生成图表,更直观地展示代码结构、流程和关系。

30秒!用通义灵码画 SpaceX 星链发射流程图

解决 bug

bug 1:保存预设时候,每次按钮会成倍添加

代码如下:

extends Control
@onready var presets_container: GridContainer = %PresetsContainer
const PRESET_PANEL = preload("res://send/store_preset/preset_panel.tscn"
func _ready() -> void:Globals.add_new_preset_panel.connect(_load_presets)_load_presets()
func _load_presets():for preset in Globals.presets:var preset_panel : PresetPanel = PRESET_PANEL.instantiate()preset_panel.panel_type = PresetPanel.PanelType.PresetTypepreset_panel.label_name = presetpreset_panel.preset = Globals.presets[preset]presets_container.add_child(preset_panel)

出现问题,第一时间找到通义灵码向他提问,他会快速分析问题,并很快给出了优化后的代码!

优化代码如下:

func _load_presets():# 清除现有的预设面板for child in presets_container.get_children():if child is PresetPanel:child.queue_free()for preset in Globals.presets:var preset_panel : PresetPanel = PRESET_PANEL.instantiate()preset_panel.panel_type = PresetPanel.PanelType.PresetTypepreset_panel.label_name = presetpreset_panel.preset = Globals.presets[preset]presets_container.add_child(preset_panel)

通义灵码非常聪明,帮我排查出问题并给出解决措施。通义灵码正确使用了 gdscript 最新的 API,具有很好的泛化能力和学习能力。 并且还在清除前做了个判断,保证代码的健壮性。

bug 2:当点击发送按钮,大模型没有返回内容

首先怀疑是请求模型的数据没有正确加载,我点击按钮时候发现,没有反应,我就让 通义灵码帮我打印一些信息出来,方便调试。发现填写的 API 和数据结构错误,很快的解决了。

不得不说,通义灵码的补全速度很快 比 Copilot 快两倍以上,这点对写代码很重要。

结尾

最后,我有个非常困难的需求:使用 github action 将项目自动化打包。我本人也不是很懂这个 github action。

对于这类不是我此前接触过的新问题,我交给通义灵码,他快速拆解了解决问题的步骤,并给出了示例代码,很快代码跑起来,完成!

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

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

相关文章

vue3开发扫雷游戏,支持调整难度,支持计时

闲来练习练习js,写了个扫雷游戏,直接拿去复制粘到自己本地某个html文件里就能运行,记得把vue加载地址改成线上的~~ 有空了可以再加上计分板 运行起来长下面这样 直接上代码1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset=…

记一次potplayer播放视频错误

如图,播放存在问题解决方式,打开potplayer->选项->滤镜然后更换系统解码器即可作者:qbning出处:http://www.cnblogs.com/qbning/-------------------------------------------个性签名:曾经的我们空有一颗望海的心,却从没为前往大海做过真正的努力如果觉得这篇文章…

【大模型评测】国内外主流评测基准分析(图)

附件 1.作者:Syw 2.出处:http://www.cnblogs.com/syw20170419/ 3.本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 4.如果文中有什么错误,欢迎指出。以免更多的人被误导。

(系列十一)Vue3框架中路由守卫及请求拦截(实现前后端交互)

说明该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。说明:OverallAuth2.0 是一个简单、易懂、功能强大的权限+可视化流程管理系统。 友情提醒:本篇文章是属于系列文章,…

MIGO DUMP LCX_RAP_EVENT_RUNTIME CL_RAP_EVENT_MANAGER==========CP

MIGO 收货时发生DUMP运行事务代码:SBGRFCCONF 创建入站目标输入目标BGPF 保存即可TRANSLATE with xEnglishArabic Hebrew PolishBulgarian Hindi PortugueseCatalan Hmong Daw RomanianChinese Simplified Hungarian RussianChinese Traditional Indonesian SlovakCzech Ital…

非煤矿山算法智慧矿山一体机提升机危险区域违规闯入识别边坡监测预警系统详述

在矿山行业中,安全始终是最为关键的议题。随着智能化技术的发展,智慧矿山一体机应运而生,它专为矿山安全监控和管理设计,集成了多种智能化功能,以提升矿山的安全监管能力和生产效率。这款设备不仅能够满足矿山场景下的视频智能化建设需求,还能够通过边缘计算技术实现对矿…

全国职业院校技能大赛

老师说目前这个是省赛,预计12月参加,如果要准备的话,预计要有一个月的时间准备我看了一下往年的题目,确实是平常老师跟我们讲的那种术语什么的

Hadoop搭建集群

不知道为什么会出现这样的结果

使用idea创建Sping Boot 项目 发现不能使用JAVA版本是8或者11版本只能用17版本已经更高

接下来需要一个骚操作, 官方地址: https://start.spring.io阿里云脚手架地址:https://start.aliyun.com/

[题解]P3225 [HNOI2012] 矿场搭建

P3225 [HNOI2012] 矿场搭建 挖煤点坍塌相当于把该点和与其相连的边在图上删掉。 借用wjyyy的题解,我们定义“叶子连通块”为“只包含\(1\)个割点的点双连通分量”,“非叶子连通块”为“包含\(\ge 2\)个割点的点双连通分量”。 如下图,橙色点是割点,红色框圈出的是点双,加粗…

DDCA —— 内存架构和子系统内存控制器

Digital Design and Computer Architecture Lecture21的学习笔记,介绍内存架构和子系统、内存控制器,并详细介绍了DRAM的内部结构。1. 内存架构和子系统 1.1 如何控制访问?访问控制:存储单元的访问是通过 访问晶体管(access transistors) 进行控制的。访问晶体管像开关一…