首页 > 其他分享 >通义灵码企业代码补全增强使用实践

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

时间:2024-09-13 16:53:37浏览次数:3  
标签:补全 灵码 代码 注释 函数 上传 通义

作者:任婷婷(汐遥)

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

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

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

准备指南

  1. 上传限制仅适⽤于源代码⽂件,代码库中应仅上传实际编写的源代码⽂件。例如,对于 Java 应上传 .java ⽂件,对于 C# 应上传 .cs ⽂件,对于 JavaScript 应上传 .js 或 .jsx ⽂件等。
  2. 请避免上传以下内容。
  • 测试数据与代码:请勿上传测试脚本、测试⽤例或任何不包含业务逻辑的测试相关代码。
  • Mock ⽅法:排除所有由模拟⽅法和⼯具⽣成的代码,除非这些代码包含对业务逻辑的具体实现。
  • 构建产物:
  • 前端:排除通过构建⼯具(如 Webpack、Gulp 等)⽣成的⽂件,这些⽂件通常位于 dist 或 build ⽬录下。
  • 后端:排除编译⽣成的 DLL ⽂件及其他所有编译输出。
  1. 注释要求如下。
  • 对希望被检索到的函数,在函数头部应添加详尽的注释。
  • 注释应提供充分的信息以区分不同的函数,建议参考注释模板或根据企业规范进⾏相应调整。
/**
* 更新指定订单状态。
*
* @param orderId 订单的唯⼀标识符。
* @param newStatus 新的订单状态。
* @return boolean 表示更新是否成功。
*/
  1. 函数名称规范要求。
  • 如果函数注释较为简单,则函数名称必须能够准确描述其功能。
  • 使⽤清晰且具描述性的命名⽅式,例如:exportOrdersToPDF、updateOrderStatus ⽽不是 func1 。

上传指南

  • 打包压缩⽂件:将代码⽂件打包为 .zip、.gz 或 .tar.gz 格式。
  • 代码包⼤⼩限制:每个代码包的⼤⼩不得超过 100 MB。

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

插件版本要求

仅适⽤于 VSCode 1.3.9 及以上版本,以及 JetBrains 1.3.10 及以上版本。

后端场景使用实践

  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()));
}
// ... 算法实现代码 ...
ret

步骤二:输入注释

在集成开发环境(IDE)中定位到某 Java 类内,输入与期望召回的函数相匹配的注释。注释格式可以灵活,但应确保含义的准确性和⼀致性。

第一种方式

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

第二种方式

/**
* 使⽤雪花算法⽣成唯⼀序列号
* @param wId
* @return
*/

注释说明:

  • 注释⻓度要求:在编写代码时,注释应尽量避免过于简短,建议⻓度⾄少 15 个字符,过短的注释将无法触发召回。
  • 注释语义要求:确保注释的语义准确且有意义,最好包含关键词与返回值说明,以便通义灵码准确地理解和匹配相应的代码。
  • 多语⾔⽀持:⽀持中英⽂注释,代码库中的注释和实际编码时的注释可以使⽤不同的语⾔。
  • 参数名称灵活性:参数名称可以灵活处理,通义灵码会根据提供的参数⾃动调整以匹配召回的代码。

步骤三:代码⽣成

⾸次回⻋后,灵码将提供基于注释⽣成补全建议;再次回⻋后,灵码将根据企业代码库中的代码进⾏补全。

通义灵码企业代码补全增强使用实践_阿里云

说明:

  • 如果您的注释中包含参数,灵码将⾃动调整⽣成代码中的参数名,确保命名⼀致性。
  • 如果需要刷新缓存获取新的补全建议,macOS 可以使⽤ ⌥(option) P ⼿动触发⾏间补全,windows 可以使⽤ Alt P ⼿动触发。
  1. 通过函数签名⽣成代码。

步骤一:代码库代码上传

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

步骤二:输入函数签名

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

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

函数签名说明:

  • 函数名称:使⽤较为清晰的函数名称,需要具备⼀定语义作为相似性依据。
  • 参数和返回值:类型和顺序需要与⽬标函数保持⼀致,但参数名称可以灵活处理,通义灵码会根据提供的参数⾃动调整以匹配召回的代码。

步骤三:代码补全

⾸次回⻋后,灵码将提供代码补全建议;再次回⻋后,灵码将根据企业代码库中的代码进⾏⾃动补全。

说明:

  • 灵码将根据您提供的参数名,⾃动调整⽣成代码中的参数名,确保命名⼀致性。
  • 如果需要刷新缓存获取新的补全建议,macOS 可以使⽤ ⌥(option) P ⼿动触发⾏间补全,windows 可以使⽤ Alt P ⼿动触发。

前端场景使用实践

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

步骤一:代码库代码上传

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

<LTable
isReady={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,
};
}}
/>

步骤二:编写组件代码

在您的 IDE 中打开相应的 .jsx ⽂件,并开始编写代码。输入基础 HTML 标签或⾃定义组件标签,例如  。

步骤三:代码⾃动补全

当您输入的代码达到⼀定⻓度,并且能够与企业组件库中的代码匹配时,IDE 将⾃动触发代码补全功能,为您⽣成完整的组件代码。您也可以通过回⻋,主动触发代码补全。

通义灵码企业代码补全增强使用实践_通义灵码_02

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

  1. 通过⾃然语⾔注释⽣成代码。

步骤一:代码库代码上传

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

/**
* 根据报错信息⽣成,以id为键值的对象
* @param {Array<validator,Result>} results
* @return {Record<string,string>}
*/
function getErrObj(results) {
// ... 函数实现代码 ...
}

步骤二:输入注释在 IDE 中,在 JavaScript ⽂件内输入特定的注释内容,如下示例。

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

注释说明:

  • 注释⻓度要求:在编写代码时,注释应尽量避免过于简短,建议⻓度⾄少 15 个字符,过短的注释将无法触发召回。
  • 注释语义要求:确保注释的语义准确且有意义,最好包含关键词与返回值说明,以便通义灵码准确地理解和匹配相应的代码。
  • 多语⾔⽀持:⽀持中英⽂注释,代码库中的注释和实际编码时的注释可以使⽤不同的语⾔。
  • 参数名称灵活性:参数名称可以灵活处理,通义灵码会根据提供的参数⾃动调整以匹配召回的代码。

步骤三:代码⽣成

⾸次回⻋后,灵码将提供基于注释⽣成补全建议;再次回⻋后,灵码将根据企业代码库中的代码进⾏补全。

通义灵码企业代码补全增强使用实践_云原生_03

说明:

  • 如果您的注释中包含参数,灵码将⾃动调整⽣成代码中的参数名,确保命名⼀致性。
  • 如果需要刷新缓存获取新的补全建议,macOS 可以使⽤ ⌥(option) P ⼿动触发⾏间补全,windows 可以使⽤ Alt P ⼿动触发。

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

解决⽅案:

  • 在 macOS 系统中,请执⾏以下命令以重启进程并清除缓存。
ps -ef|grep lingma|grep start|awk '{print $2}'|xargs -I {} kill -9 {}
  • 如果是 Windows 系统,请在进程管理器中结束 Lingma 进程。

推荐阅读:《5 大场景上手通义灵码企业知识库 RAG》

点击此处,立即体验通义灵码企业代码生成增强。

标签:补全,灵码,代码,注释,函数,上传,通义
From: https://blog.51cto.com/u_15422422/12002065

相关文章

  • 通义灵码企业代码补全增强使用实践
    作者:任婷婷(汐遥)通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码IDE插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使......
  • 通义灵码企业代码补全增强使用实践
    作者:任婷婷(汐遥)通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码IDE插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使......
  • 通义灵码获得国产 AI 编码工具最高成绩丨阿里云云原生 8 月产品月报
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......
  • Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用增强扩展(text2sq
    前言我在上一篇文章中《Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用(text2sql)》利用langchain中create_sql_agent创建一个数据库代理智能体,但是实测中发现,使用create_sql_agent在对话中,响应速度太慢了,数据的表越多,对话响应就越慢,这次本篇文章l......
  • Chainlit集成Langchain并使用通义千问和智谱AI实现AI知识库检索网页对话应用
    LangChain简介LangChain是一个开源框架,设计用于开发和部署与语言模型(如大型语言模型LLM)交互的应用程序。它提供了一种简便的方法来构建基于自然语言处理(NLP)的系统,这些系统可以执行各种任务,例如问答、文本生成、文档检索等。LangChain的主要目标是简化开发过程,使开发者能......
  • 测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?
    内容来源MacTalk公众号,作者池建强墨问西东是一家创业公司,很难一下子配齐像大公司那样的研发团队,这类AI编程辅助工具其实在一定程度上帮助我们的研发同学成长为全栈工程师,一个人就能顶上一个团队。从我们团队的使用体验看,通义灵码有两个优点。第一,精准、快速的问答能力,它可以准......
  • 测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?
    内容来源MacTalk公众号,作者池建强墨问西东是一家创业公司,很难一下子配齐像大公司那样的研发团队,这类AI编程辅助工具其实在一定程度上帮助我们的研发同学成长为全栈工程师,一个人就能顶上一个团队。从我们团队的使用体验看,通义灵码有两个优点。第一,精准、快速的问答能力,它可以准......
  • 测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?
    内容来源MacTalk公众号,作者池建强墨问西东是一家创业公司,很难一下子配齐像大公司那样的研发团队,这类AI编程辅助工具其实在一定程度上帮助我们的研发同学成长为全栈工程师,一个人就能顶上一个团队。从我们团队的使用体验看,通义灵码有两个优点。第一,精准、快速的问答能力,它可......
  • 测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?
    内容来源MacTalk公众号,作者池建强墨问西东是一家创业公司,很难一下子配齐像大公司那样的研发团队,这类AI编程辅助工具其实在一定程度上帮助我们的研发同学成长为全栈工程师,一个人就能顶上一个团队。从我们团队的使用体验看,通义灵码有两个优点。第一,精准、快速的问答能力,它可......
  • 通义灵码用户说:“人工编写测试用例需要数十分钟,通义灵码以毫秒级的速度生成测试代码,且
    通过一篇文章,详细跟大家分享一下我在使用通义灵码过程中的感受。一、定义通义灵码,是一个智能编码助手,它基于通义大模型,提供代码智能生成、研发智能问答能力。在体验过程中有任何问题均可点击下面的连接前往了解和学习。通义灵码官网通义灵码安装教程通义灵码产品手册......