206
在当今快速开发的软件开发领域中,提高编码效率已成为开发人员实现的共同目标。随着人工智能技术的持续发展,作为新兴的智能辅助工具,深思熟虑的QWQ逐渐显示出其在编码过程中的巨大潜力。尤其是在综合开发环境(IDE)(例如Idea)中,QWQ可以通过其独特的智能分析和建议功能为开发人员提供前所未有的编码帮助。本文旨在探讨如何在广受欢迎的编程平台创意上有效利用深思熟虑的模型QWQ,以实现编程效率的重大提高。我们将从QWQ的基本原理开始,并深入分析其在代码完成,错误检测,智能重建等方面的应用,并分享一系列实用技能和最佳实践,以帮助开发人员更好地掌握此功能强大的工具,并使编码工作更有效,更容易。
上的新模型选择功能不仅引入了V3和R1的两个“新明星”,而且Qwen2.5-Max和QWQ也是一个强有力的首次亮相,正式加入 的“豪华阵容”。开发人员只需要在 智能问答窗口的输入框中单击模型选择的下拉菜单即可轻松打开不同的型号并享受个性化服务。
阿里巴巴云释放并打开了新的推理模型 QWQ-32B。通过大规模的强化学习, QWQ-32B在数学,代码和一般能力方面取得了质量的飞跃,其整体性能与-R1相当。 QWQ-32B在保持强劲的性能的同时,也大大降低了部署成本,还可以在消费级图形卡上实现本地部署。
目前支持QWQ-Plus模型。欢迎每个人在[智能问答]中选择开关模型,以体验一个尺寸较小且性能更强的新型号!
性能与世界上最强的开源推理模型相当
QWQ-32B型号是全球开源的,每个人都可以免费下载和商业化。
QWQ-32B是阿里巴巴探索推理模型的最新成就。基于寒冷的起步,汤比团队进行了两轮大规模的强化学习,以实现数学和编程任务和一般能力,并在模型大小的32B大小上取得了令人惊讶的改善,这证明了大规模加强学习可以显着提高模型性能。
In a of tests, the QwQ-32B model well, -o1-mini, and to the open model -R1: In the set for and the of code , the QwQ-32B to -R1, far than the o1-mini and the R1 model of相同的大小;在Meta首席科学家Yang Likun领导的“最困难的LLMS评估列表”中,提出的指导合规性评估集以及用于评估加利福尼亚大学,伯克利大学等精确呼叫功能或工具的BFCL测试, QWQ -32B的得分超过-R1。
今年1月, AI程序员被充分启动并支持了VS代码和IDE。他们是第一位在中国真正实施的AI程序员。通过全面覆盖前端开发,完整的对话和协作可以实现0到1的复杂编码任务,并引入多文件代码修改功能。 AI程序员如何体验?让我们结合最新模型来测试它〜
AI程序员
例如,我希望AI程序员帮助我更改创业公司成功使用更有趣的模式时打印的图案,并输入我的需求:[帮助我更改启动的印刷内容,随着心脏的形式成功]。
单击[接受]后,AI程序员将自动将更新的内容替换为指定的位置。替换后,我们将启动项目并查看效果。
不是很方便吗? AI程序员可以直接帮助您生成所需的内容,并且您决定是否根据更改的比较结果接受更改。如果接受更改,AI程序员将自动替换需要替换为指定位置的代码,从而消除了单击 Ling代码对话框右上角的[复制]按钮的操作,以您自己复制并手动替换代码,这更方便且更快。
这只是对AI程序员向它们介绍它们的简单介绍,以便每个人都可以直观地观察AI程序员的效果。让我们今天开始运营,让AI程序员帮助我们制定新的要求。
插件安装或升级
在开发业务功能之前,考虑到某些朋友的开发工具想法可能没有安装 插件,或者安装的 插件尚未升级到2.0版,这是如何在IDEA开发工具中安装 插件的简要介绍。
打开IDEA开发工具,单击[文件] - [],在“开放设置”窗口中,单击[],在插件市场中搜索,查找 Ling代码,然后单击“安装”。我已经在这里安装了它。当然,如果您安装了 1.0版,则这里将有一个相应的[]按钮,请单击升级。
如果您在IDEA开发工具插件市场中找不到 插件,则可以使用其他安装方法。有关特定的安装操作,请参阅官方文件: 下载并安装[1]。应该注意的是,在安装成功后,您需要重新启动Idea开发工具。重新启动成功后,将有一个相应的提示登录页面。请按照提示登录到阿里巴巴云帐户。
业务功能开发
如果我们达到这一点,将完成基本准备工作。让我们开始今天的业务需求开发。
业务需求
使用这样的CMS管理系统,我们希望在此CMS管理系统中添加公告管理功能。可以添加,修改,删除,发布和取消此公告管理功能。在“公告管理列表”页面上,您可以单击“公告标题”以跳到“公告详细信息”页面等。整体要求很多,并且在开发过程中将优化具体详细信息。
关于业务需求的实施,通常执行以下过程:
设计表结构功能开发 - 本地测试(单位测试) - 测试环境部署测试 - 在线
本文主要解释了基于AI程序员的功能代码的实现,因此在这里我们主要转到本地测试(单元测试)阶段,随后的测试环境和功能暂时不参与。
设计表结构
一般而言,表结构是根据特定业务功能设计的。因此,在这里,我们使用AI程序员设计表结构并查看我们如何体验它。
输入我们的特定需求:[帮助我设计与公告相关的表,主要包括字段:公告标题,公告内容,发布状态,发布时间,是否有效,创建时间,创建人员,更新时间,更新的人,更新人员]。以下是特定的生成效应。为了统一表名称,我继续提出更改表名称的要求:[更改表名称]。
将生成的表结构复制到MySQL命令执行工具中,以创建新的查询并执行表创建语句。执行成功。这表明AI程序员生成的MySQL表结构没有问题,并且可以直接使用而无需手动修改。
功能发展
接下来,我们将继续生成特定的业务逻辑,包括控制层,接口层,实现类,层,实体类和XML语句。然后,我们将整合所需的内容并提供我们的要求:
[帮助我生成表的控制类,接口类,实现类,实体类,接口类和XML查询文件,这些文件需要包括新,修改,删除和发布函数]
AI程序员生成特定代码之后,我们可以通过单击工作区中的特定文件名来查看文件更改内容。在这里,我们可以看到我们需要新的添加,修改,删除,发布函数以及默认列表查询函数,因此我们单击[]接受所有文件。
单击右上方的[接受],一键接受所有生成的文件,但是可接受的文件并未放置在我们项目现有结构的相应位置中,因为在这里不方便地指定接受后选择的文件夹目录,这并不方便,但幸运的是,它只需要手动调整位置即可。因此,您可以接受它,然后手动调整位置。自动接受后的结构显示在图中:
根据上图的目录结构将特定代码移动到相应位置后,我们将生成需要再次用于此功能的前端页面。实际上,对于Java开发人员而言,绘制页面通常是最困难的。毕竟,这不是专业的前端。如果AI程序员可以直接生成新页面,修改后的页面和列表前端的页面,则它将更加方便,并且开发效率将得到很大提高。最后,使用[HTML页面基于生成新,修改和列表]完成页面生成。
应该注意的是,在生成页面时,AI程序员将生成一些我们所需的内容,例如工作空间中的.xml和Java文件。不要[接受]这次未生成的内容,否则接受的文件将被弄乱。
接受这三页后,我们需要一个一个页面,将页面调整到指定的目录文件夹。但是,此处生成的页面与实际项目中使用的统一样式的页面有所不同。考虑到统一的页面样式,我可以首先选择参考文件,然后根据参考文件生成页面。
例如,在这里,我首先生成add.html用于公告管理,因此我选择了项目中原始帖子的add.html。在这里,我会给你一个小费。您可以单击“选择文件”的[+],输入要在弹出搜索框中搜索的文件名,然后选择文件。以同样的方式,我选择了我们生成的公告管理的实体类,然后输入要求:[请参阅此添加页面以生成对象的添加页面]。
目前,参考页面后生成的新add.html页面的内容与项目的原始添加页面结构和样式更一致,这也节省了时间再次重新调整页面样式。
以同样的方式,我们再次更改了参考页面,然后将参考页面更改为edit.html。相同的选择用于生成公告管理编辑页面。输入我们的要求:[请参阅此编辑页面以生成实体类编辑页面]。
等待成功生成的编辑页面后,我们再次接受当前的edit.html页面,然后将页面调整为正确的目录。
以同样的方式,我们选择了我们需要参考的列表页面post.html,在我们的公告管理下选择实体类,然后输入要求:[请参阅“邮政页面”以生成实体类的列表页面]。在生成过程中也可能遇到异常,例如[生成过程超时]。
那么解决这种情况的解决方案是重试。如果您再次尝试,则可以正常返回。使用相同的操作,接受当前页面并将其转移到正确的目录,然后您可以执行以下步骤。
实际上,在这一点上,基本上已经开发了整个公告管理功能。其余的是配置菜单,然后进行了一些功能或页面优化和调整。功能优化将稍后继续。
功能优化
配置菜单的步骤将不会在此处详细讨论。不同项目配置菜单的方式也不同。此外,这不是AI程序员注意的事情。 AI程序员主要关注功能开发。
在这里,我们将一一验证我们的AI程序员生成的类代码是否满足业务需求。让我们首先看一下控制层的代码。
在这里,我们可以看到AI程序员确实帮助我们生成了我们需要的新添加,修改,删除和发布功能,但是没有页面跳跃方法。也就是说,如果要添加新数据,则首先需要一种添加新页面的跳跃方法,然后将提交新数据。在这里,我参考了上页方法,还可以在项目中选择现有方法作为补充跳页的方法的参考。提示词:[参考可以帮助我添加新的添加,修改和列表页面跳跃方法的ER]。
应该注意的是,尽管AI程序员已经参考了现有的页面跳跃代码,但AI程序员将无法从整体情况中控制它。此处的页面路径前缀是错误的,需要手动修改。
此外,初始生成的方法的返回与当前项目的样式不一致,也是需要修改和改进的地方。
它还触发了一个代码规范问题[不建议在代码后面编写代码注释,但应以新行编写)。手动处理小问题后,可以通过快捷键迅速完成基于ID的数据的缺失方法。然后,我们启动项目以查看特定的页面跳跃效果。
页面效果
在此处启动项目时发生错误。然后选择错误的特定原因。右键单击[ ling代码一单击的解释],请查看 Ling代码分析当前的启动异常问题。我们可以根据分析进行调整并重新启动。
AI程序员生成代码和调试的过程需要耐心。如果这是一个新项目和新功能,则采用率可能更高。
启动后,它可能就像这个效果页面:
经验建议
对于 Ling Code 2.0,与过去的 Ling Code 1.0版本相比,智能代码和对自然语言的理解的准确性得到了极大的提高。您可以根据您的要求描述生成相应的SQL表结构,以及基本层,层,DAO层和实体类层以生成代码,而生成的代码准确性也为95%。
在此过程中,AI程序员生成的代码对我来说没有问题,但是如果它是通过迭代版本开发的,则AI程序员生成代码的能力是可以的,并且生成的代码是合乎逻辑的,没有错误。但是它还需要查看特定的业务方案。就像我生成的代码一样,没有页面跳跃方法。同样,当生成HTML页面时,首次生成的页面确实是符合语法的页面,但是页面样式与现有的系统代码样式完全不同,无法直接使用。取而代之的是,我们需要第二次根据当前项目中的其他页面生成当前页面,以便有一个大致可用的页面。
我的感觉是,如果AI程序员将新功能生成的代码放入现有项目体系结构中,则可能与现有项目样式不一致,有时无法直接使用它,就像生成的方法中没有页面跳转方法一样。如果当前项目的基本代码具有直接代码生成工具,则建议使用代码生成工具生成它,这更符合当前项目的样式和功能。因此,当我在这里理解它时,如果它基于现有项目,则不建议生成大规模代码,但可以根据代码的一部分生成,因此代码生成的准确性将更高,更符合您的业务场景需求。
跨语言编程
作为Java开发人员,尽管我也可以使用前端页面写作,但毕竟它不是专业的。此处提到的跨语言编程实际上是为了在当前的新的和修改的页面中添加一个操作,该页面可以调用 Big Model 来生成公告内容,并将生成的公告内容放入编辑器中,并最终将其保存到正常的数据库中。因此,在这里,我首先在页面上添加一个新字段,作为关键字的输入框,然后添加一个按钮。单击以调用服务平台大型模型以获取返回的内容并将其放入公告中。
在这里,我需要输入AI程序员:[请参阅所选零件以帮助我再生一个字段输入框。使用多行文本文本框添加一个按钮名称以生成所选零件,并且不要更改它]。
这是根据我的需求,AI程序员生成的内容。我不会首先谈论特定内容。我将选择直接接受它,并查看页面效应的方式。选择接受后,您可以看到该页面报告错误。这是因为在生成具有多行文本的输入框时,会生成基于上述参考代码的输入框。删除它后,该页面将被部署进行尝试。
最后,实际上将以下代码添加到现有的添加页面代码:
接下来,我们将继续生成按钮的JS方法。通过相同的原理,选择可以引用的AJAX代码,然后使用 Ling Code 2.0的AI程序员通过调用接口来生成一种生成公告内容的方法,同时将生成的内容放入公告内容字段中。
在此处提出要求:[请参阅此代码以生成新的JS方法,该方法名称是调用后端接口并将返回的内容放置在公告内容字段中]。
接下来,我们将返回后端,以补充生成公告内容的相应方法。在这里,我们需要根据阿里巴巴云服务平台的-R1调用生成公告内容,并登录到 平台[2]。
首先获得API-KEY
然后选择[模型平方],在这里您选择[] - [ - R1]
单击[API呼叫示例]在跳跃页面上查找HTTP调用,复制HTTP调用的示例代码,然后将其放入AI程序员中,以帮助我们生成呼叫方法。
在 Ling Code 2.0的AI程序员中,输入我们的要求。生成后,选择接受,我们的特定内容将在指定的位置生成并输入要求内容:
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions -H "Authorization: Bearer $DASHSCOPE_API_KEY" -H "Content-Type: application/json" -d '{ "model": "deepseek-r1", "messages": [ { "role": "user", "content": "9.9和9.11谁大" } ] }' 生成java 示例代码
在这里,我们直接选择接受代码。接受代码后,我们在前端页面上启动呼叫。但是,我们对这个丰富的文本输入框了解不多,我们不知道如何使用它。分配JS代码时,我们总是遇到问题,并且无法分配值。在这里,我们可以看到该控制台已打印了-R1的返回内容,但是公告内容在富文本框中没有任何内容。
我尝试了各种分配方法,包括val()attr()=和其他分配方法,但失败了。因此,我认为我可以询问AI程序员,因此我将JS代码中的分配语句分配给AI程序员,选择了分配语句,并提出了一个问题:[$('。')。('代码')此时,我可以看到AI程序员的特定分析和分配语句。我直接选择在尝试之前接受它。
将值分配给富文本框的操作终于成功了。
在下面,我将提供新页面[生成]按钮的源代码,以及 Cloud Big Model -R1模型的后端请求请求,以放回文本内容,所有这些内容都放置在此处。如有必要,您可以复制并使用它。
【生成】按钮前端JS方法
// 新增 genera 方法 function genera() { var multiLineText = $("#multiLineText").val(); if (!multiLineText) { $.modal.alertWarning("请输入关键词prompt。"); return; } $.ajax({ type: "POST", url: ctx + "system/notice/generateContent", data: { multiLineText: multiLineText }, dataType: 'json', success: function(result) { if (result.code == web_status.SUCCESS) { console.log(result.data); $('.summernote').summernote('code', result.data); } else { $.modal.alertError(result.msg); } }, error: function(error) { $.modal.alertWarning("生成内容失败。"); } }); }
调用后端呼叫方法的详细信息//阿里巴巴云大型模型服务平台的详细信息。
PostMapping("/generateContent") ResponseBody public AjaxResult generateContent(String multiLineText) { String apiKey = "sk-f58bf46111222233355667777e18295d"; // 替换为实际的 Dashscope API Key String url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"; // 构建请求体 JSONObject requestBody = new JSONObject(); requestBody.put("model", "deepseek-r1"); JSONArray messages = new JSONArray(); JSONObject message = new JSONObject(); message.put("role", "user"); message.put("content", multiLineText); messages.add(message); requestBody.put("messages", messages); // 发送 POST 请求并处理响应 try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Authorization",apiKey); connection.setRequestProperty("Content-Type", "application/json"); connection.setDoOutput(true); try (OutputStream os = connection.getOutputStream()) { byte[] inputBytes = requestBody.toString().getBytes(StandardCharsets.UTF_8); os.write(inputBytes, 0, inputBytes.length); } // 获取响应 int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) { StringBuilder response = new StringBuilder(); String responseLine; while ((responseLine = br.readLine()) != null) { response.append(responseLine.trim()); } JSONObject parse = (JSONObject) JSON.parse(response.toString()); JSONArray choices = parse.getJSONArray("choices"); StringBuilder sb = new StringBuilder(); for (Object choice : choices) { JSONObject jsonObject = (JSONObject) choice; JSONObject message1 = jsonObject.getJSONObject("message"); String content = message1.getString("reasoning_content"); sb.append(content); } System.out.println(sb.toString()); return AjaxResult.success("success",sb.toString()); } } else { return AjaxResult.error("Error: " + responseCode); } } catch (Exception e) { e.printStackTrace(); return AjaxResult.error("Exception: " + e.getMessage()); } } }
经验和经验
2.0且易于使用的跨语言编程能力确实令人惊讶。首先,生成的HTML新属性输入框可以在一代之后直接使用,从而满足我们的业务需求。在谈论在输入框下生成按钮的方法时,可以在一代之后直接使用。但是,未考虑将值分配给富文本框的详细信息。起初,我无法分配值。后来,当我尝试多次并想放弃时,我试图问AI程序员。我没想到一次解决方案,这是一个意外的惊喜。
此外,后端模型-R1的API示例中的HTTP调用示例基于Model -R1。它也可以一次提供,几乎没有更改。这些非常好,可以大大提高发展效率。
单位测试
作为开发人员,单元测试是确保代码功能和代码鲁棒性的必要手段。对于新的代码文件或新方法,我们可以通过单元测试方法验证特定功能是否满足我们的需求。例如,在这里,我选择了今天已更改的文件类,然后输入我们的要求:[生成单元测试],AI程序员将遵循我们的需求。
当生成单元测试正在进行中时,您可能会遇到这种情况。例如,如果环境检查失败,我们可以在特定失败项目后单击[如何维修]。 AI程序员将为我们提供特定的维修计划。改进维修计划后,可以再次执行生成单元测试的操作。选择要生成单元测试的文件并输入生成的单元测试。
错误检查
在日常开发过程中,您肯定会遇到各种错误,或者没有错误,但没有获得正常数据。就像我们在上面看到的一样,不可能将值正确分配到富文本框。我们可以直接询问AI程序员如何将值分配给相应的属性。
或者,当我们在背景控制台中看到错误消息时,我们还可以复制错误消息以询问AI程序员如何求解它。就像添加上面的方法之后,我们启动错误一样,我们可以根据特定的错误信息询问AI程序员如何处理它,最后我们可以快速获得我们想要的答案。
对于错误故障排除和维修,AI程序员可以说,只要您的错误信息详细介绍或详细说明,您就可以获得所需的结果。但是在某些情况下,AI程序员别无选择,也就是说,错误本身将没有任何错误信息,但这不是正确的情况。这种情况很难描述您要如何做,或者您不知道如何要求AI程序员获得所需的结果,这可能并不容易处理。
Ling Code 2.0 vs 1.0
对于1.0版的 ling代码,我亲自申请了自公共Beta时期以来使用。总体而言,该功能相对简单,并且智能代码生成,单元测试,自然语言问答的功能相对基本。就智能代码完成功能而言,某些块级代码的采用率或生成准确性并不理想。
与1.0相比, Ling Code 2.0开放以支持各种模型,并在编程性能和效率方面取得了重大提高。代码生成速度显然比过去快得多。
它还丰富了受支持的上下文类型,包括#file,#,#,#和#image等,开发人员可以灵活地选择一个或多个文件来提出问题,或对项目的当前代码更改进行问题和代码审查,从而显着提高了问题解决的效率和准确性。
此外,AI程序员具有修改和使用工具进行多文件代码,可以帮助开发人员端到端完成编码任务,例如需求实现,问题求解,单位测试案例生成,批处理代码更改等。本文主要基于由AI程序人员执行的操作,包括基于现有项目的功能,跨语言测试, , , , , ,错误的单元测试,误差等。
最终摘要
在这一点上,对AI程序员对 Ling Code 2.0的全部评估已经结束。总体而言,AI程序员根据现有项目或迭代新功能开发功能,代码生成的总体准确性很好。但是,生成的代码通常与所使用的各种JAR软件包的结构,样式,引入或Page JS导入不一致。如果要准确生成,还需要选择一个参考文件,然后告诉AI程序员生成新的页面或方法,以便可以生成匹配当前项目结构和样式的文件。
对于跨语言编程,尽管本文使用不多,也就是说,在页面上生成了相同样式的输入框,按钮点击事件方法和后端接口调用方法,但体验已满。 AI程序员一次也解决了不显示页面的问题,这特别好。 在 中基于API示例的后端生成的Java示例版本也可用于生成,准确性和代码采用率为99%。这特别令人满意。
这也已用于功能开发过程。通常,错误检测和修复也是非常好的功能。只要您提供特定的错误信息,AI程序员就可以帮助您解决问题。但是,有一件事是,与AI程序员的含糊咨询通常不是很准确地回答他们无法描述的问题。幸运的是, Ling Code 2.0支持上下文,您可以通过一点一点地提出问题来逐渐接近正确的描述。总体而言,它仍然非常好。
相关链接:
[1]下载并安装 Ling代码:
[2]评估的原始文本:
创意QWQ ling代码
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
附: 二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!
注:本站所有资源均来自网络转载,版权归原作者和公司所有,如果有侵犯到您的权益,请第一时间联系邮箱:785557022@qq.com 我们将配合处理!
----------------------------------------------------
版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的所有下载文件均为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。
----------------------------------------------------