在我的开源项目(AI Godot 桌宠)中使用通义灵码

简介: 作为一名AI代码助手的忠实用户,我近期尝试了阿里开源的Qwen模型。通过在个人项目——一个由Godot引擎开发的AI桌宠软件中测试Qwen,我发现其在处理小众语言(如GDScript)时表现出色,能够快速准确地解决问题,甚至优化了我的代码。此外,Qwen在GitHub Actions自动化打包等复杂任务上的表现同样令人满意。其高效的代码补全速度更是超越了付费的GitHub Copilot。这次体验让我对开源AI工具刮目相看,强烈推荐大家试用。

背景

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

image.png

平时都是使用微软的github copilot。
作为一个学生,我可以白嫖 copilot ,所以我一直都是免费使用 需要付费的 copilot,对其他 AI 代码助手都不怎么感冒,心想:“免费的肯定不如付费的好”。但是 由于qwen开源模型在开源榜单上大杀四方,所以不得心生几分好感,不免下下来尝试下。
正好最近我正在开发一款开源桌宠软件,链接地址如下:
https://github.com/jihe520/Desktop-Pet-Godot

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

QQ_1729841526717.png

项目使用的是开源的 Godot 游戏引擎,使用的语言是自带的 gdscript ,语法类似 Python 但是和游戏引擎绑定更紧密,这个项目对 Copilot 来说,还是有很多难度,因为该语言语法API 变化快,godot3 和 godot4的语法发生大变化,许多LLM都是给的godot3 淘汰的语法,不能给出最新的语法,该语言也比较小众,缺少训练资料,让我来测测千问灵码能力。

QQ_1729841561710.png
难点:

  • 更好的泛化能力,对小众语言学习能力强
  • 对整个大项目理解程度高
  • 训练数据集是否及时更新,能否适应语法API的更新变化
    以上考察的难点,也是我最关心的点,也算是技术难点吧。

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

首先,因为引擎集成ide,我们这里切换使用外部的ide vscode,装上lingma插件。
QQ_1729842306412.png

项目结构

为方便演示,我先让他,先整体认识我的项目
QQ_1729842661429.png

解释代码

我忘记了 Globals.gd 里面的逻辑关系,我便让 qwen 给我解释下,他出乎我的意料,还给出了相关流程图,帮助我更好的理解。
QQ_1729842872641.png

解决 bug

bug1

我发现,保存预设时候,每次按钮会成倍添加
QQ_1729845817590.png
代码如下:

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.PresetType

        preset_panel.label_name = preset

        preset_panel.preset = Globals.presets[preset]

        presets_container.add_child(preset_panel)

QQ_1729845745098.png

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.PresetType

        preset_panel.label_name = preset

        preset_panel.preset = Globals.presets[preset]

        presets_container.add_child(preset_panel)

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

bug2

当点击发送按钮,大模型没有返还内容,qwen带着我,排除问题

QQ_1729843786991.png

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

不得不说,通义的补全速度很快,可能是网络原因,比copilot 快起码两倍以上,这点对写代码很重要。

结尾

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

qwen 也是轻松解决。
现在提交代码,完成。

免费又好用,还不赶紧用起来。

相关文章
|
2月前
|
人工智能 自然语言处理 前端开发
最佳实践2:用通义灵码以自然语言交互实现 AI 高考志愿填报系统
本项目旨在通过自然语言交互,结合通义千问AI模型,构建一个智能高考志愿填报系统。利用Vue3与Python,实现信息采集、AI推荐、专业详情展示及数据存储功能,支持响应式设计与Supabase数据库集成,助力考生精准择校选专业。(239字)
305 12
|
2月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
2月前
|
机器学习/深度学习 人工智能 人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
384 121
|
2月前
|
人工智能 人机交互 知识图谱
当AI学会“融会贯通”:多模态大模型如何重塑未来
当AI学会“融会贯通”:多模态大模型如何重塑未来
301 114
|
2月前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
309 120
|
2月前
|
人工智能 安全 搜索推荐
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
275 117
|
2月前
|
人工智能 机器人 人机交互
当AI学会“看、听、懂”:多模态技术的现在与未来
当AI学会“看、听、懂”:多模态技术的现在与未来
308 117
|
2月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
1299 16
构建AI智能体:一、初识AI大模型与API调用
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
拔俗当AI成为你的“心灵哨兵”:多模态心理风险预警系统如何工作?
AI多模态心理预警系统通过融合表情、语调、文字、绘画等多维度数据,结合深度学习与多模态分析,实时评估心理状态。它像“心灵哨兵”,7×24小时动态监测情绪变化,发现抑郁、焦虑等风险及时预警,兼顾隐私保护,助力早期干预,用科技守护心理健康。(238字)