腾讯云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 方式来提升代码质量的实践。

更多产品了解

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

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

都在这里!

 

评论列表

为你推荐

云巴巴案例秀 ‖ 著名饲料企业的设备如何维护?晨科软件注入新活力!

云巴巴案例秀 ‖ 著名饲料企业的设备如何维护?晨科软件注入新活力!

通威股份随着公司规模的不断扩大,设备管理和维护成为了一个重要的问题。

2023-04-04 16:55:28

提升团队协作与交付效率,细数TAPD卓越版在敏捷开发中的优势

提升团队协作与交付效率,细数TAPD卓越版在敏捷开发中的优势

本文将从提升团队协作和加速交付速度两个方面,详细介绍TAPD卓越版在敏捷开发中的独特优势。

2024-04-30 17:09:27

陈吉平:袋鼠云要做最可靠的企业数字化基础设施供应商

陈吉平:袋鼠云要做最可靠的企业数字化基础设施供应商

9月17日,由袋鼠云、爱分析联合主办的,以“数栈之道·智启未来”为主题的首届数智+行业峰会暨数栈战略发布会(简称2020DDIC)在杭州西溪宾馆盛大开幕。

2022-11-22 16:13:02

什么是海外云手机?能干什么?

什么是海外云手机?能干什么?

云巴巴为大家推荐湖南跨境云手机产品,一台电脑操控多台云手机,为跨境企业提供智能解决方案。

2024-03-29 14:59:56

从流量思维转向用户思维,联想iVane智能洞察平台满足企业营销

从流量思维转向用户思维,联想iVane智能洞察平台满足企业营销

本文就为大家推荐联想iVane智能洞察平台,来看看它是如何满足企业营销需求的。

2024-08-08 11:38:32

华睿智借助云巴巴选择合适解决方案,成功破解项目管理痛点

华睿智借助云巴巴选择合适解决方案,成功破解项目管理痛点

对于研发软件本身是一个较为复杂的工作,它涉及各方面的因素,通常面临着多种类型的问题,而且存在着较大的失败几率。为了解决项目中遇到这些问题,该公司找到云巴巴服务平台,进行咨询。

2023-08-17 16:52:31

严选云产品

金蝶云星辰冻品行业ERP管理系统 金蝶云星辰冻品行业ERP管理系统,商品多品类、规格管理、批次保质期管理、溯源管理、价格管理等精细化管理。通过零售的称重条码打印设备,对非标产品进行预包装,包装好后进行标准化的售卖,提升销售效率。助力业务员指定销售业绩,帮助业务员对客户进行分层管理多元化客户运营。
劢微机器人三向叉式无人叉车MW-K15 三向叉式无人叉车MW-K15是一款应用于窄巷道高位仓储的三向堆高车,劢微无人叉车导航以激光雷达为主、视觉为辅,具备环境自适应,地图构建、路径规划、协调对接、集群调度,自动充电等功能,全方位满足客户诉求,并可与客户ERP/MES系统实现无缝对接,其部署方便快捷,部署速度在行业处于领先地位,大幅降低企业隐形成本。
腾讯云创智能内容生产平台 腾讯云创智能内容生产平台,云创定位,面向企业新媒体运营场景提供的一站式智能创作云服务。辅助客户视频生产前期筹备环节的工作效率,云创轻量级剪辑器及AI拆条能力,高效实现短视频生产。支持模版快速套用,用户可以直接替换素材“剪同款”,提供小程序方案,实现多端模板调用。
连连微号商务通讯软件 连连微号商务通讯软件支持PC端拨打,移动端同时外呼,节约外呼时间,企业自有APP嵌入”通讯助手SDK"应用,低代码使用所有通讯功能,提供话单、录音接口,时时传送至企业服务器,保证数据不流失。
水印追溯系统【WTS】 水印追溯系统是华途股份针对拍照信息的可追溯,增加对拍照、摄录行为的威慑,降低拍照、泄密风险而自主研发的一款保障信息资产安全的产品。
致远互联A8督查督办解决方案 致远互联A8督查督办解决方案,实现单位全方位的评估促进各单位持续改进提升。自动对相关数据进行智能分析,并提供多重维度的表现形式,实现目标制定-目标执行-工作评价-绩效评分绩效完整闭环管理。

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

申请试用