企业代码补全增强使用实践

通义灵码提供了企业代码补全增强的能力,在开发者使用通义灵码 IDE 插件的行间代码生成时,可以结合企业上传的代码库作为上下文进行行间代码补全,使代码补全更加贴合企业代码规范、业务特点。本文将分享如何构建高质量的企业代码库,以及开发者在前端和后端开发场景的使用实践。

开通通义灵码企业版:通义灵码企业标准版插件登录指南_智能编码助手_AI编程_智能编码助手通义灵码(Lingma)-阿里云帮助中心

适用版本与支持语言

适用版本

支持后端

支持前端

企业标准版(Beta)

Java、C#、Go、Python

JavaScript、TypeScript、Vue、React

企业专属版

管理员如何准备高质量企业代码库

为确保代码数据的有效处理,我们建议您遵循以下指导原则来准备代码库。这将有助于提升检索的效率与准确性。

准备指南

  1. 上传限制仅适用于源代码文件,代码库中应仅上传实际编写的源代码文件。例如,对于Java应上传.java文件,对于C#应上传.cs文件,对于JavaScript应上传.js.jsx文件等。

  2. 请避免上传以下内容。

    • 测试数据与代码:请勿上传测试脚本、测试用例或任何不包含业务逻辑的测试相关代码。

    • Mock方法:排除所有由模拟方法和工具生成的代码,除非这些代码包含对业务逻辑的具体实现。

    • 构建产物:

      • 前端:排除通过构建工具(如Webpack、Gulp等)生成的文件,这些文件通常位于distbuild目录下。

      • 后端:排除编译生成的DLL文件及其他所有编译输出。

  3. 注释要求如下。

    • 对希望被检索到的函数,在函数头部应添加详尽的注释。

    • 注释应提供充分的信息以区分不同的函数,建议参考注释模板或根据企业规范进行相应调整。

      /*** 更新指定订单状态。** @param orderId 订单的唯一标识符。* @param newStatus 新的订单状态。* @return boolean 表示更新是否成功。*/
  4. 函数名称规范要求。

    • 如果函数注释较为简单,则函数名称必须能够准确描述其功能。

    • 使用清晰且具描述性的命名方式,例如:exportOrdersToPDFupdateOrderStatus而不是 func1

上传指南

  • 打包压缩文件:将代码文件打包为.zip.gz.tar.gz格式。

  • 代码包大小限制:每个代码包的大小不得超过100 MB。

开发者如何使用企业代码生成增强

插件版本要求

仅适用于 VS Code 1.3.9 及以上版本,以及 JetBrains IDEs 1.3.10 及以上版本。

后端场景使用实践

  1. 通过自然语言注释生成代码。

    1. 企业代码库代码上传:上传包含所需功能代码的压缩包至企业代码库,例如雪花算法的代码,并确保目标函数遵循注释规范,注释位于函数头部。更详细代码库准备指南请参见上述管理员如何准备高质量企业代码库。

      /*** 使用雪花算法生成唯一序列号* @param workerId* @return
      */
      public synchronized Long getSnowFlowerId(long workerId){long id = -1L;if (workerId < 0 || workerId > snowFlowerProperties.getMaxWorkerId()) {throw new IllegalArgumentException(String.valueOf("workerID must gte 0 and lte " + snowFlowerProperties.getMaxWorkerId()));}// ... 算法实现代码 ...return id;
      }
    2. 输入注释:在集成开发环境(IDE)中定位到某Java类内,输入与期望召回的函数相匹配的注释。注释格式可以灵活,但应确保含义的准确性和一致性。

      第一种方式

//请通过雪花算法生成唯一编号的代码,返回生成的id

                第二种方式

/*** 使用雪花算法生成唯一序列号* @param wId* @return
*/

注释说明。

  • 注释长度要求:在编写代码时,注释应尽量避免过于简短,建议长度至少15个字符,过短的注释将无法触发召回。

  • 注释语义要求:确保注释的语义准确且有意义,最好包含关键词与返回值说明,以便通义灵码准确地理解和匹配相应的代码。

  • 多语言支持:支持中英文注释,代码库中的注释和实际编码时的注释可以使用不同的语言。

  • 参数名称灵活性:参数名称可以灵活处理,通义灵码会根据提供的参数自动调整以匹配召回的代码。如下反例。

    • //雪花算法问题:没有提供足够的信息,注释长度过短。

    • //生成唯一序列号问题:没有使用具体关键词,可能会影响理解和匹配效果。

    1. 代码生成:首次回车后,灵码将提供基于注释生成补全建议;再次回车后,灵码将根据企业代码库中的代码进行补全。

      2024-09-12_18-11-55

      说明

      • 如果您的注释中包含参数,灵码将自动调整生成代码中的参数,确保命名一致性。

      • 如果需要刷新缓存获取新的补全建议,macOS可以使用⌥(option) P 手动触发行间补全,Windows可以使用Alt P手动触发。

  1. 通过函数签名生成代码。

    1. 代码库代码上传:上传包含所需功能代码的压缩包至企业代码库,并确保这些函数具有清晰且独特的标识,以便于检索和识别。更详细代码库准备指南请参见上述管理员如何准备高质量企业代码库。

    2. 输入函数签名:在集成开发环境(IDE)中定位到某Java类内,键入目标函数的签名部分。参数名称可以灵活处理,通义灵码会根据提供的参数自动调整以匹配召回的代码。

      public List<Object> nextList(String name, int size)

      函数签名说明。

      • 函数名称:使用较为清晰的函数名称,需要具备一定语义作为相似性依据。

      • 参数和返回值:类型和顺序需要与目标函数保持一致,但参数名称可以灵活处理,通义灵码会根据提供的参数自动调整以匹配召回的代码。如下反例。

        • public List<Object> func1(String name, int size)// 问题:函数名语义不清晰,无法准确反映函数功能

        • public List<String> nextList(int orderId)// 问题:参数类型和返回值类型,与目标函数不匹配

    3. 代码补全:首次回车后,灵码将提供代码补全建议;再次回车后,灵码将根据企业代码库中的代码进行自动补全。

      2024-09-12_18-14-53

    4. 说明

      • 灵码将根据您提供的参数名,自动调整生成代码中的参数名,确保命名一致性。

      • 如果需要刷新缓存获取新的补全建议,macOS可以使用⌥(option) P 手动触发行间补全,Windows可以使用Alt P手动触发。

前端场景使用实践

  1. 通过标签补全前端自研组件代码。

    1. 代码库代码上传:在开始之前,您需要确保所有必要的前端组件代码已经上传到企业代码库中。如下是React框架示例。

      <LTableisReady={isReady}formInitialValues={formInitialValues}rowKey="key"tableRef={tableRef}toolbarLeft={<Button type="primary">新增</Button>}formItems={formItems}formRef={formRef}columns={columns}request={async (params, requestType) => {const res: Record<string, any> = await apiGetUserList(params);return {data: res.data,total: res.total,};}}
      />
    2. 编写组件代码: 在您的IDE中打开相应的.jsx文件,并开始编写代码。输入基础HTML标签或自定义组件标签,例如 <LTable /> 

    3. 代码自动补全: 当您输入的代码达到一定长度,并且能够与企业组件库中的代码匹配时,IDE将自动触发代码补全功能,为您生成完整的组件代码。您也可以通过回车,主动触发代码补全。

      2024-09-12_18-17-56

      重要:请在完整的组件标签内触发您的补全。

  2. 通过自然语言注释生成代码。

    1. 代码库代码上传:上传包含所需功能代码的压缩包至企业代码库,并确保每个函数都遵循注释规范,注释位于函数头部。 更详细代码库准备指南见管理员如何准备高质量企业代码库章节。如下是JavaScript示例。

      /*** 根据报错信息生成,以id为键值的对象* @param {Array<validator,Result>} results* @return {Record<string,string>}
      */
      function getErrObj(results) {// ... 函数实现代码 ...
      }
    2. 输入注释:在IDE中,在JavaScript文件内输入特定的注释内容,如下示例。

      //根据报错信息生成以 id 为键值的对象

      注释说明。

      • 注释长度要求:在编写代码时,注释应尽量避免过于简短,建议长度至少15个字符,过短的注释将无法触发召回。

      • 注释语义要求:确保注释的语义准确且有意义,最好包含关键词与返回值说明,以便通义灵码准确地理解和匹配相应的代码。

      • 多语言支持:支持中英文注释,代码库中的注释和实际编码时的注释可以使用不同的语言。

      • 参数名称灵活性:参数名称可以灵活处理,通义灵码会根据提供的参数自动调整以匹配召回的代码。

    3. 代码生成:首次回车后,灵码将提供基于注释生成补全建议;再次回车后,灵码将根据企业代码库中的代码进行补全。

      2024-09-12_18-16-56

说明

  • 如果您的注释中包含参数,灵码将自动调整生成代码中的参数名,确保命名一致性。

  • 如果需要刷新缓存获取新的补全建议,macOS可以使用⌥(option) P 手动触发行间补全,Windows可以使用Alt P手动触发。

常见问题:在重新安装插件后,即便重启IDE或重新登录,仍无法成功召回知识库中的代码。

解决方案:

  • 在macOS系统中,请执行以下命令以重启进程并清除缓存。

    ps -ef|grep lingma|grep start|awk '{print $2}'|xargs -I {} kill -9 {}
  • 如果是Windows系统,请在进程管理器中结束Lingma进程。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

DeepSpeed Chat: 一键式RLHF训练&#xff0c;让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来&#xff0c;ChatGPT及类似模型引发了人工智能&#xff08;AI&#xff09;领域的一场风潮。 这场风潮对数字世界产生了革命性影响。ChatGPT类模型具有惊人的泛用性&#xff0c…

雷达系统中杂波信号的建模与仿真

雷达系统中杂波信号的建模与仿真 2 杂波建模与模拟方法 2.1 杂波建模 杂波可以说是雷达在所处环境中接收到的不感兴趣的回波[4]。就像目标回波一样&#xff0c;杂波也是极为复杂的。为了有效地克服杂波对信号检测的影响&#xff0c;需要知道杂波的幅度特性以及频谱特性。除独…

1,2,3-TBMB作为接头获得不同的双环肽构象;TBMB;TBAB,TATA不同linker

使用1,2,3-三&#xff08;溴甲基&#xff09;苯&#xff08;1,2,3TBMB&#xff09;来获得具有不同构象的双环肽&#xff0c;这些构象不同于由1,3,5-TBMB形成的传统双环化产物. Bicyclepepitde 楚肽生物可提供产品&#xff1b; 图片来源&#xff1a;Org. Biomol. Chem., 2024, D…

Modbus调试工具和源码分享

我们应该知道了学习Modbus协议应该具备主从两个设备才行&#xff0c;但是在学习过程中如果没有真实的物理设备&#xff0c;应该怎么调试呢&#xff1f; 我们可以通过软件工具来模拟主从设备&#xff0c;下面我们推荐几个比较实用的工具。 以下内容包含&#xff1a;实用工具、…

共享盘显示脱机/无法访问

报错现象&#xff1a;用户端共享盘显示脱机/无法访问&#xff0c;服务器端网盘正常&#xff0c;其他用户正常 解决办法&#xff1a; 方案1&#xff1a;重启报错用户端电脑&#xff0c;重新登录共享盘&#xff08;已测好用&#xff09; 方案2&#xff1a;尝试启动脱机文件&…

PowerBI-l7-如何为Power BI报表设计动画背景

需求&#xff1a; 经常会看到别人家的报告上面的动态的背景很漂亮 这是怎么做到的呢&#xff1f; 操作 插入图片的时候直接选用为GIF的动态图片即可

RLHF 的启示:微调 LSTM 能更好预测股票?

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 在财务预测领域,准确预测股票价格是一项具有挑战性但至关重要的任务。传统方法通常难以应对股票市场固有的波动性和复杂性。这篇文章介绍了一种创新方法,该方法将长短期记忆 (LSTM) 网络与基于评…

设计模式、系统设计 record part01

技术路线&#xff1a; 工程师》设计师》分析师》架构师 管理路线&#xff1a; 项目经理》技术经理 工程师&#xff1a; 编程技术、测试技术 设计师&#xff1a; 工程师设计技术 分析师&#xff1a; 设计师分析技术 架构师&#xff1a; 分析师架构技术 项目经理&#xff1a; 时间…

数据结构 ——— 编写函数,删除有序数组中的重复项

目录 题目要求 代码实现 题目要求 一个升序排列的数组 nums &#xff0c;要求原地删除重复出现的元素&#xff0c;使每个元素只出现一次&#xff0c;并返回删除后数组的新长度&#xff0c;元素的相对顺序应该保持一致 代码实现 代码演示&#xff1a; int removeDuplicate…

两步飞跃办公室,2024年常备远程控制神器,居家办公真轻松

现在科技发展得可快了&#xff0c;咱们的生活和工作都跟以前不一样了。2024 年&#xff0c;在家上班一点都不新鲜&#xff0c;好多人都这么干。在这个数字化的时代呀&#xff0c;有很多方便的工具出现。向日葵远程控制软件就是个好东西&#xff0c;能帮咱们高效地远程办公。想试…

探索 Midjourney 中文版:开启人工智能绘画新征程

Midjourney 中文版是专门为中国创作者精心打造的人工智能绘画神器。它打破了语言的壁垒&#xff0c;以熟悉的中文界面和指令输入方式&#xff0c;让每一个怀揣创意梦想的人都能轻松驾驭。无需再为复杂的英文指令而苦恼&#xff0c;在这里&#xff0c;你只需用中文表达心中的想象…

SOLIDWORKS 2025新版本揭秘 | 设计、协作和数据管理篇

除非另有说明&#xff0c;否则所有增强功能均适用于 3DEXPERIENCE SOLIDWORKS 和 SOLIDWORKS Cloud Services。 1&#xff5c;更髙效的协作和数据管理 直接从 SOLIDWORKS 访问社区&#xff0c;轻松与业界同行建立联系并开展协作。 利用实时通知时刻关注蕞新动态&#xff0c;…

【Mysql】Mysql常用图形管理工具

该图片是在Dos窗口中使用Mysql数据库管理系统。 1、简介 如果日常的开发和维护均在类似dos窗口中进行&#xff0c;对于编程者来书&#xff0c;上手就略微困难&#xff0c;增加了学习成本。我们一般使用MySQL图形管理工具来连接MySQL&#xff0c;然后在图形化界面上操作MySQL。…

电脑怎么安装打印机驱动_电脑安装打印机驱动多种方法

电脑怎么安装打印机驱动&#xff1f;许多人在购买新打印机或更换电脑时&#xff0c;常常会遇到安装打印机驱动的问题。正确安装打印机驱动程序不仅能确保打印机正常工作&#xff0c;还能提高打印效率&#xff0c;下面小编就教大家电脑安装打印机驱动多种方法。 电脑怎么安装打印…

三步教会你制作自己的Coze插件,不懂代码也玩得转 !

大家好&#xff0c;我是凡人。 是一个不黑、不吹、不跟风、有知识、有骨气的五好小号主。 最近有一位粉丝朋友和我抱怨&#xff0c;Coze商城里的插件用起来确实方便&#xff0c;但对于特殊情况想要做一些定向的数据获取却是比较麻烦&#xff0c;需要自己设计插件&#xff0c;…

证件照制作小程序源码

预览&#xff1a; 证件照制作小程序官方有推出对应的api接口&#xff0c;也有demo示例&#xff0c;大家有需要的可以直接拿 证件照规格列表 接口地址&#xff1a;https://api.zheyings.cn/item/list 请求方式&#xff1a;POST(application/x-www-form-urlencoded) 返回格式&…

千元护眼台灯测评:书客、明基、柏曼护眼台灯怎么样?

近年来&#xff0c;近视一直是全球范围内广泛存在的视力问题&#xff0c;特别是在中小学生群体中&#xff0c;佩戴眼镜的比例已经超过了50%。而青少年近视率不断攀升的原因之一是学习压力的增加&#xff0c;此外&#xff0c;不良的阅读姿势以及不适宜的照明条件等也是导致近视的…

一文读懂Ingress-Nginx以及实践攻略

一文读懂Ingress-Nginx以及实践攻略 目录 1 概念 1.1 什么是Ingress&#xff1f; 1.1.1 主要功能&#xff1a; 1.2 Ingress的组件1.3 什么是ingress-nginx1.4 ingress-nginx优点和限制1.5 版本兼容性矩阵 2 实践&#xff1a; Ingress nginx部署 2.1 使用helm部署ingress-ngin…

数字人直播违规原因究竟是什么?哪些技术可以解决?

随着人工智能时代的来临&#xff0c;以数字人直播为代表的技术应用逐渐被各大中小型企业引进&#xff0c;并成为了它们在直播板块降本增效的利器。不过&#xff0c;从目前的应用情况来看&#xff0c;不少企业都在使用数字人无人直播的过程中遭遇了违规封号的问题。在此背景下&a…

django开发流程3(轮播图)

1.在models中创建一个模板 class Ads(models.Model):title models.CharField(verbose_name"标题", max_length30)image models.ImageField(verbose_name"广告图", upload_to"ads")url models.URLField(verbose_name"链接网址", de…