R40 - Code Review Agent正式发布
本更新包含了R28-R40的所有变更内容汇总,总共包含 10项重要更新 和 31项其他更新 内容。 以下说明对所包含的变更进行说明,对于重要特性我们提供详细的说明和操作手册,对于其他更新则只列出变更条目。
主要特性或改进
1. Code Review Agent 正式发布
代码评审智能体(Code Review Agent)是利用生成式AI技术实现的自动化代码评审功能,它可以自动扫描用户提交的代码变更,生成概要性描述或者评审意见,也可以接收用户的提问并根据代码变更内容给出答案。代码评审智能体旨在为参与代码评审的团队成员提高工作效率,特别是在面对改动量比较大的评审任务时,使用代码评审智能体可以大幅节省评审者用来阅读代码/理解代码的时间,同时也可以帮助被评审者提供可能的修复建议。 根据我们的测试,大多数团队的代码评审任务会涉及10个左右的文件修改以及几十处代码修改,类似的评审任务需要评审者花费至少30分钟的时间阅读和理解代码,再花费大致30分钟到1小时的时间给出评审意见。代码评审智能体则可以在5分钟内给出概要性说明(使用 summary 指令)以及评审意见(使用review)指令,然后再由评审者阅读这些概要性说明和评审意见。仅这一个环节就将为团队成员在每个评审任务上节省超过15-20分钟的时间,效率提升3倍以上(按人工30分钟完成理解,AI辅助下只需要10分钟完成理解)。 代码评审智能体支持与常见的DevOps平台进行集成,通过 Web Hook 的方式在用户提交 Git 拉取请求 (Pull Request 或者 Merge Request)的时候自动启动智能体介入评审过程,也可以通过指令的方式独立触发特定评审任务
-
环境配置
使用Code Review Agent之前需要在Azure DevOps对应的团队项目(Team Project)中配置对应的Web Hook,所需要配置的Web Hook主要有两个。 Pull Request created: 当PR创建的时候自动触发 Pull request commented on:当PR上被用户添加了新的评论的时候触发
-
Code Review Agent 的基本使用场景
在 DevOps 环境中配置和使用 Code Review Agent 代码评审智能体。包括了了从部署智能体、大模型配置、设置模型访问参数、添加 Webhook、启用智能体以及测试验证的完整流程。
-
支持的指令列表
Code Review Agent 代码评审智能体 提供了一系列的命令来辅助开发团队进行代码评审,帮助团队更快速的理解代码变更,提升代码合并效率
2. SmartChat Web端支持图片识别
在SmartChat中上传图像,针对图像内容进行理解,解析和内容生成。
3. SmartChat Web端支持图表生成
Mermaid Markdown 是一种使用 Markdown 语法来创建图表和流程图的工具。Mermaid 是一个基于 JavaScript 的图表绘制工具,它允许用户通过简单的文本描述来生成复杂的图表。
4. AI基座 数据仪表盘更新
有管理员权限的用户点击团队仪表盘,可查看图形化数据统计界面。本次更新了对话、提示词、代码生成三个数据仪表盘。
-
在团队仪表盘页,可点击归属部门、统计单位、时间周期对显示数据进行筛选。
-
点击对话卡片的查看详细数据,或左侧导航栏的对话,可以进入对话详情页。
-
在对话详情页中也可以通过归属部门、统计单位、时间周期对显示数据进行筛选;三个饼图,终端是按照终端维度统计;提示词按照5个固定提示词(代码解释,代码评审,生成测试,生成注释,代码检查)维度统计;编辑器按照IDE终端维度统计,不包含chatui数据。新增3个与饼图对应的趋势图,按天统计。
-
新增了提示词卡片,该卡片第一个数字展示提示词使用总量,另外一个值展示提示词数量。点击提示词卡片的查看详细数据,可以进入提示词详情页。
-
在提示词详情页中也可以通过归属部门、统计单位、时间周期对显示数据进行筛选。两个饼图,提示词类型是系统内置提示词,系统基础提示词,用户提示词分布 数量的分布;提示词使用展示每个提示词使用次数的分布,只展示使用次数最大的10个,其余提示词归属到其他。提示词使用趋势图展示了使用最多的10个提示词,若超过十个则其余提示词合并为其他。
-
新增一个列表,展示全部提示词,包括:提示词名称,所有者(创建人),使用次数,最后使用时间,共享数量,最后使用用户。
-
点击代码生成卡片的查看详细数据,或左侧导航栏的代码生成,可以进入代码生成详情页。
-
在代码生成详情页中也可以通过归属部门、统计单位、时间周期对显示数据进行筛选。两个饼图,编辑器饼图:按照IDE终端维度统计,点击编辑器饼图,现有趋势图和列表按照所点击饼图IDE类型重新过滤筛选,点击空白和重置去掉筛选。语言饼图:按照语言维度统计,点击语言饼图,现有趋势图和列表按照所点击饼图语言类型重新过滤筛选,点击空白和重置去掉筛选。两个趋势图:IDE的趋势图和语言的趋势图,体现每天的变化。
5. SmartCode 对话输入框支持快捷方式
-
提示词
-
打开SmartCode,在对话输入框点击“/”或者输入“/”,调起提示词
-
-
#变量
-
打开SmartCode,在对话输入框点击“#”或者输入“#”,调起#变量
-
-
模型切换
-
打开SmartCode,在对话输入框点击“对话模型”,调起模型列表
-
6. SmartCode 支持使用#变量在对话中灵活的引入代码上下文
SmartCode本次更新增加了 对话变量
的支持,对话变量用于在对话时引用IDE中的代码内容,为用户提供更加灵活的提示词组织方式。本次提供3个对话变量:
#selection
: 用于引用当前激活的编辑器中已经选中的代码#editor
:用于引用当前激活编辑器中的任何代码块#file
:用于选择文件
7. SmartCode JetBrains 自动更新改进
本次提供的SmartCode JetBrains插件实现在后台自动下载新版本并完成更新,不再依赖JetBrains内置的插件市场机制进行下载和更新,简化和减少了用户操作。
参考:快速入门 | SmartCode | smartcode-jetbrains | 自动升级
8. 服务健康检查和相关接口
-
有管理员权限的用户点击系统监控-服务检测,可进入服务检测页,该页面显示了各容器服务的启动情况,会自动执行系统检测,时间周期为每5分钟
-
可以通过容器名称搜索要查看的容器;通过状态筛选容器状态,点击搜索筛选查看。
-
对于曾有过异常的服务,点击右侧详情,可以查看历史异常记录信息。
9. SmartCode Jetbrains 支持提交注释AI自动生成
SmartCode在VSCode中已经提供了提交注释的AI自动生成能力,本次更新我们将同样的能力引入到JetBrains中。
-
用户可以点击 JetBrains IDE 提交注释窗口上的 SmartCode图标,即可触发词特性
-
完成生成后,自动写好的 提交注释 会出现在输入框内
10. SmartCode Jetbrains 中的codelens支持2种开启方式
JetBrains中的codelens现在支持2种开启方式,用户可以根据自己的偏好进行配置
-
函数 - 方法头上的浮动显示(默认)
-
左侧边栏 - 在编辑器左侧工具边栏上的浮动显示
-
用户可以在配置页面中对以上显示方式进行选择
其他更新
AI基座更新列表
新增
应用市场管理新增插件上传按钮新增
所有页面添加“文档”跳转链接改进
提示词设置子实例模型类型范围可以多选改进
对话会话管理添加悬浮内容显示新增
Deepseek API FIM适配
SmartChat更新列表
改进
允许用户对所有会话历史记录进行一键归档修复
代码解释提示词在处理超长函数时会停止输出,此时停止按钮也无法工作,只能刷新chat窗口造成数据丢失,会话信息也没有保存修复
若依后台应用市场跳转到chatui,如果chatui未登录 需要二次登陆
SmartChat更新列表
改进
codelens触发方式优化:允许用户在不开启chat窗口的情况下直接触发代码智能任务改进
优化插件版本信息显示界面,统一信息显示格式修复
用户在未登录状态下触发代码智能任务时的报错提示改进
优化codelens对代码块的选择方式,确保方法体前的缩进被完整选择以便优化模型响应改进
改进用户退出IDE后重新开启chat窗口的内容加载,确保根据工作区加载最后一次对话历史改进
JetBrains 对模型生成代码进行动态分析,只显示完整代码块内容,对后续内容进行截断处理改进
代码评审提示词优化:确保模型对无问题代码的合理响应,1)优化输出的消息格式,使用更加明确的数字编号和加粗显示;2)修复重复输出同一个错误信息无限循环的问题改进
上下文悬浮菜单展现形式。smartcode jetbrains和vscoder插件。根据用户选择,采用两种形式:一种采用codelens方式,一种能折叠的方式展示修复
改善插件兼容性,2024.2.1安装后不再报异常:Class initialization must not depend on services. Consider using instance of the service on-demand instead修复
代码补全,断网后,频繁通知代码生成异常处理,设置插件退出登陆改进
Jetbrain插件端 解决右下角通知,并发时,自定义动作显示重复问题。现在并发只显示一次改进
VScode插件端 配合变量支持的修正 国际化采用新方式加载&国际化与chat app统一 code lens国际化支持 修正#file列表已经删除文件仍在列表中 codelens首部增加logo包括oem的处理改进
smartcode Jetbrain(2.24.19606) 用户登录无论 功能开关= True或Flase 都到Login页面改进
Vs coder插件端 减少交互次数的变量 file 优化 优化变量提示词的展示修复
jetbrains插件 2.33.21062版本,修改代码补全模型为无效,插件无法登录。修复
打开多个Idea窗口,smartcode插件无法升级。点击升级会提示需要关闭其它项目。只有一个ide打开状态下才会跳转到插件升级页。修复
Jetbrains插件 Class initialization must not depend on services. Consider using instance of the service on-demand instead 异常报错问题。修复
Jetbrains插件端 解决treesitter解析导致的内存溢出问题。改进
在 JetBrains 插件中配置一个无效地址时,插件会尝试连接服务器并报错。需要提供友好的报错信息,提示用户检查配置。修复
未登录smartcode进行代码补全会提示一次未登录,重启idea后再进行代码补全不会提示未登录bug修复改进
修改升级方式改进
codelens左侧菜单显示:在 JetBrains IDE 中,codelens 的左侧菜单显示,目前仅支持 .java 文件改进
Android Studio未设置过JCEF,添加JCEF设置检测功能