腾讯云RAG技术:提升代码质量的秘籍

来源: 云巴巴 2024-11-04 17:42:39

icon背景

无论是敏捷开发还是传统瀑布开发流派,软件质量不仅依赖于架构和项目管理,而且与代码质量紧密相关。 ---《代码整洁之道》

随着企业代码规模的增长,代码质量成了企业研发管理重要的一环,通过代码规范来规范研发人员编码习惯,从而提升代码质量是大多企业主要的举措。

在AI时代,在编码阶段研发人员是否就能按编码规范去编写代码,降低返工?AI 代码助手能否帮研发人员进行代码自检和自修复,来提升代码质量?

近期腾讯云 AI 代码助手上线了 RAG 知识库,我们可将代码规范文档上传到自定义知识库中实现代码自检和自修复,提升代码质量,支持个人/企业自定义 RAG 知识库,下面我们进行了解腾讯云AI代码助手 RAG 如何落地实践的。

iconRAG 技术设计规范

RAG 通过工程化手段,解决 LLM 知识更新困难的问题。其核心方法是利用外挂方式,将企业的 LLM 知识数据库(通常使用向量数据库)未训练数据集、领域数据等数据进行外挂给大模型。RAG 将知识问答分成三个阶段:索引、知识检索和基于内容的问答。另外,RAG 包含两个核心要素,即数据和系统。

企业使用 RAG 的目的是提升模型返回效果,主要为以下方面:

  • 减少大模型在回答问题时的幻觉问题

  • 让大模型的回答可以附带相关的来源和参考

  • 消除使用元数据注释文档的需要

1. 数据层面  

数据即“知识库”,通常支持文档、压缩包、代码等多类型知识库。

  • 文档:支持 .md, .markdown, .docx, .pdf 格式

  • 压缩包:支持.zip, .tar, .tgz, .tar.gz, .gz, .gzip格式

  • 代码:非二进制的代码文件

注:知识库文档本身的质量也要注意,正如说过的 “Quality In, Quality Out”

2、系统层面

知识库收集和数据预处理

知识库内容获取,包括文档、代码、配置文件、编译文件等等;需要有一套常规的流程对文件进行区分,不同的文件后续可能会有不同的处理逻辑,区分开来能够大幅提高后续处理效率。

文档:需对内容进行切片,包括进阶操作,分段切片、chunk overlap、关键词提取、内容标签等。

代码:需要对内容进行切片,包括进阶操作,添加注释总结提示。

配置文件:这类信息针对性强,独立信息有效性,依赖上下文,需回归到文档引用处或代码调用处进行展开,不建议单独构成索引

编译文件:这些内容经编码和加密,其内容具有一定的噪声,需清洗过滤。

代码切分

代码的检索在以往是一个较少见的领域,不同于文本的切分,代码具有严格的格式规范,贸然切分往往会丢失有用的上下文信息,从而使效果变差。

在切分的时候,我们尝试使用 AST 的代码结构树来提取不同语言的代码块,以 function 为最小提取粒度,旨在合理化的切分整个代码文件。

注释生成

为了防止代码匹配带来过多的噪声引入,我们尝试为代码块提供注释(总结)的生成,以便增加代码块的信息密度,提升其与问题(自然语言)之间的匹配准确率。

切片和向量化

切片:知识库文件种类繁多长短参差不齐,如果以完整的文档作为索引的基本单位往往会引入大量无关的噪声影响召回效果,因此合理的切片是保证召回内容准确性的核心步骤之一。

向量化:除了传统的全文召回,为了提升语义匹配和上下文理解匹配的效果,还需要引入基于向量的匹配模式。

问答知识库检索召回

在索引构建完毕后,就能够根据用户的问题在知识库索引中找到与之相匹配的内容。索引的过程作为 RAG 的核心之一,对后续大模型生成的影响尤为明显。索引的召回同样对于 RAG 的流程而言至关重要,采用多路召回的策略可以有效提高内容的命中率,有效贯彻 deep&wide 的思想。

通常召回包括以下三类:

  • 大模型向量库召回

  • 基于 bert 语义向量/张量召回

  • 统计自然语言召回

icon在 AI 代码助手上操作实践 RAG

基于 RAG 技术,腾讯云 AI 代码助手团队在 RAG 进行深入研究,并进行产品化落地,在腾讯集团内也接入大量知识库规范,并获得不错的反馈效果。

下面以 JavaScript 和 JAVA 代码规范为例,通过腾讯云 AI 代码助手 RAG 功能帮助研发人员发现变量命名、路径错误、正则表达式、变量赋值及异常处理不规范的问题,从而提升代码质量。

1、前提条件

注册腾讯云AI代码助手旗舰版,点击“原文链接” 进行抢先免费注册

2、创建代码规范知识库

创建自定义知识库只需要如下几步操作即可

第一步,创建知识库空间

第二步,上传代码规范 zip

点击并下载成 ZIP 包后,然后拖拽到当前页面后,点击确定后,会解压并返回到知识库的首页展示文件列表,每个文件都有直观的索引状态展示。

第三步,等待索引完毕后开启知识库

返回知识库首页,开启知识库。

3、以 VSCode 中使用 RAG 知识库为例

准备事项:

1、安装腾讯云 AI 代码助手插件

2、准备一个代码工程

3、准备一个代码规范知识库

场景一:使用 AI 代码助手检查代码规范,修复问题

第一步,选中我们需要优化的代码,会基于现有规范进行检测

第二步,点击腾讯云 AI 代码助手图标,在侧边栏 chat 区域输入 @workspace /fix #CodeStyle 指令解析,发现问题

除了可以一键优化代码之外,AI 代码助手还会帮我们总结修改的问题,便于参考

场景二:使用 AI 代码助手 技术对话 + RAG 方式生成符合代码规范的代码

这里我们以 JAVA 实现 SSH 远程执行命令为列:

实现效果展示

icon结语

以上是基于腾讯云 AI 代码助手 RAG 新特性,将企业内部规范通过 RAG 方式来提升代码质量的实践。

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

评论列表

为你推荐

HR如何管理试用期员工?i人事几分钟搞定千人考核

HR如何管理试用期员工?i人事几分钟搞定千人考核

面对众多新员工,HR如何高效管理,确保他们快速融入团队并顺利转正呢?

2024-08-22 17:40:01

数字化案例秀 ‖ 运输公司管理升级,业财一体化提升生产力

数字化案例秀 ‖ 运输公司管理升级,业财一体化提升生产力

企企管理云拥有业财一体的事项会计平台,可帮助实现不同业务板块(销售贸易、物流运输)、不同区域、不同内部组织等维度核算,能按不同收入及费用支出类型归集,真正实现从经营业务到财务的一体化。

2022-03-31 19:42:13

如何稳定进行跨境私域运营:跨境云手机新方案

如何稳定进行跨境私域运营:跨境云手机新方案

在全球化日益加速的今天,企业跨境私域运营已成为拓展国际市场、增强品牌影响力的重要战略。 然而,跨境运营过程中网络延迟和不稳定的问题常常成为企业面临的棘手挑战,这不仅影响了用户体验,也制约了企业的运营效率。为了克服这些难题,企业急需一种高效、稳定的解决方案。幸运的是,跨境云手机的出现,为企业跨境私域运营带来了新的曙光。

2024-06-03 17:00:44

人资管理最难的排班怎么搞?2号人事部轻松搞定提升人效

人资管理最难的排班怎么搞?2号人事部轻松搞定提升人效

排班是作为企业管理中频次出现率很高的一项工作内容,并且密切关系到企业的实际营业经营状况与后续的利润收益。

2023-11-02 17:08:46

让开票更简单!小望电商通助力电商企业智能开票

让开票更简单!小望电商通助力电商企业智能开票

针对这些问题,许多电商企业开始寻求更加高效、智能的解决方案。

2024-02-07 16:13:26

定制化服务+广泛应用,飞画产品优势解析及适用场景全攻略

定制化服务+广泛应用,飞画产品优势解析及适用场景全攻略

今天云巴巴将带您深入了解飞画产品解决方案的产品特点、优势以及在不同应用场景下的表现,让您一文读懂飞画,领略其独特的魅力。

2024-07-05 17:56:19

严选云产品

明道云 低代码开发平台 明道云APaaS产品的设计和研发主要为了解决企业数字化建设中的明显痛点。通过聚焦企业中后台应⽤的复杂度特征,抽象出⾼颗粒度的数据结构, ⽤户⻆⾊,权限,⼯作流等定义能⼒,让业务开发 者和专业⽤户均可灵活运⽤,实现各种企业应⽤。
京东云统一安全运营中心 京东云统一安全运营中心,RASP应用安全自防御技术,无需应用代码改造,将保护代码疫苗注入到应用程序中,结合应用的逻辑及上下文,对访问应用请求的每一段代码进行检测,弥补了传统边界安全防护产品的先天性防护不足,应对无处不在的应用漏洞与网络威胁,为应用程序提供全生命周期的动态安全保护。
芯盾时代 终端安全防护控件SSE 芯盾时代智能终端密码模块Password Module of Intelligent Terminal (PMIT) 基于传统证书认证方式,结合分割密钥、设备指纹、白盒算法、环境清场等技术,对本地数据的安全存储、密钥的安全存储、使用提供了底层支持,是一款支持多平台多终端、符合国密算法的软件智能身份认证密码模块,可用于金融、军工等高密级的安全领域中,实现基于移动安全设备的高强度认证。
青藤云安全 等保解决方案 青藤云安全等保解决方案将在主机安全、云等保、等保咨询服务等方面提供安全服务。
环信医疗⾏业IM即时通讯解决⽅案 环信医疗⾏业IM即时通讯解决⽅案,提供PaaS的IM⽅案和SaaS的全渠道客服⽅案,满⾜客户的多种选择。具备客户端加密、服务端加密、传输过程加密和⽤户信息保护多重安全保障,确保信息安全。实现医疗资源的充分利用,医疗效率的提高,满足病患医治、企业效益、社会效益的多重需求。
昂楷科技数据安全检查工具箱 昂楷 “数据安全检查工具箱”是一款集检测、分析、评估为一体,帮助客户理清资产分布和安全风险现状,识别敏感数据,辅助客户进行分类分级管理, 并提供安全解决方案及整改建议,帮助客户完成数据合规工作的产品。

甄选10000+数字化产品 为您免费使用

申请试用