立即咨询

电话咨询

微信咨询

立即试用
商务合作

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

2024-11-04

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

更多产品了解

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

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

都在这里!

 

热门数字化产品

的修物业工单管理系统“的修”平台,全面聚焦物业管理痛点,提供高效报事报修、人员外勤监管、物业数据分析等一站式解决方案。通过多渠道报修、智能巡检、流程进度管控、定点打卡、配件管理、失物招领、意见反馈、智识库、数据分析等功能,打造移动、便捷、高效的数字化管理服务,实现降本增效。
硅基智能数字人硅基数字人通过智能AI技术,结合深度学习算法训练,定制专属虚拟数字人,配备丰富图片、音乐、视频等素材,可高效生成视频,可实现实时虚拟直播,满足用户各类视频或直播场景需要,同时提供数字人克隆包括形象克隆和声音克隆服务。
精臣云资产固定资产管理系统精臣云资产固定资产管理系统提供全生命周期的资产管理解决方案。它通过云计算和物联网技术,实现资产的实时追踪与管理,支持资产盘点、折旧计算、维修记录等功能。系统特点包括采购管理、资产入库、日常管理、标签打印、资产盘点、耗材管理、单据审批和资产报表等。精臣云资产旨在提升资产管理的透明度和效率,降低管理成本,适用于多种企业场景。
网易瑶台网易瑶台,通过AI算法加持,只需要一张照片即可生成个性化形象,并支持200+维度的自由捏脸,打造元宇宙专属虚拟角色。基于分布式服务框架,支持十万虚拟角色实时在线,通过AOI(感兴趣区域)机制,实现万人同屏下虚拟角色间可见、可交互。
网易数帆有数BI有数BI是由网易数帆推出的一款企业级智能大数据敏捷分析平台。无需代码、PPT式简单拖拽即可轻松完成报告与大屏的制作。丰富的在线图表组件、可视化ETL操作、多终端智能预警等能力真正降低了用户的使用门槛,提高了数据使用效率,助力企业实现数据驱动决策。
为你推荐
2025腾讯产业合作伙伴大会|云巴巴荣获双项大奖,载誉而归

1月16日,2025腾讯产业合作伙伴大会在三亚召开。云巴巴,荣膺“2024腾讯云卓越合作伙伴奖—星云奖”和“2024腾讯云AI产品突出贡献奖”双项大奖

2025-01-17
如何选择高效的企业知识管理方案?腾讯乐享+DeepSeek让知识库活起来!

如何让AI变得又聪明又懂企业,真正成为企业数字化转型的生产力引擎?

2025-04-01
40万条信息被卖!物流行业如何自救?网宿云WAF三招筑牢物流Web防线

在物流行业实践的基础上,网宿云Web应用防火墙(WAF)凭借部署简易、精准防护、弹性架构、智能双引擎等核心能力,为其他数据密集型行业构建全场景安全防线,其技术优势深度适配各行业数字化转型需求。

2025-04-01
流量贵、复购低,外呼系统怎么选?慧博AI外呼解决方案,转化率提升200%!

慧博科技电商智能 AI 外呼解决方案,作为全渠道电商AI智能外呼系统,聚焦电商核心痛点,解析慧博AI外呼如何通过全渠道引流、智能触达、数据追踪三大能力,帮助企业实现高效增长。

2025-03-31
企业英语培训选型全攻略,如何挑选最适合您企业的英语培训伙伴?

云巴巴将会根据当前市场上所拥有的培训厂商,帮助大家解析主流厂商的核心价值,为企业提供选型的参考。

2025-03-31
查看更多