R40 - Code Review Agent正式发布

发版日期:2024.11.1
本更新包含了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 | 启用和配置 | 配置Service Hook

  • Code Review Agent 的基本使用场景

    在 DevOps 环境中配置和使用 Code Review Agent 代码评审智能体。包括了了从部署智能体、大模型配置、设置模型访问参数、添加 Webhook、启用智能体以及测试验证的完整流程。

    参考:快速入门 | Code Review Agent

  • 支持的指令列表

    Code Review Agent 代码评审智能体 提供了一系列的命令来辅助开发团队进行代码评审,帮助团队更快速的理解代码变更,提升代码合并效率

    参考:产品手册 | Code Review Agent | 指令参考

2. SmartChat Web端支持图片识别

在SmartChat中上传图像,针对图像内容进行理解,解析和内容生成。

参考:产品手册 | SmartChat | 图片识别

3. SmartChat Web端支持图表生成

Mermaid Markdown 是一种使用 Markdown 语法来创建图表和流程图的工具。Mermaid 是一个基于 JavaScript 的图表绘制工具,它允许用户通过简单的文本描述来生成复杂的图表。

参考:产品手册 | SmartChat | 图表生成

4. AI基座 数据仪表盘更新

有管理员权限的用户点击团队仪表盘,可查看图形化数据统计界面。本次更新了对话、提示词、代码生成三个数据仪表盘。

仪表盘

  1. 团队仪表盘页,可点击归属部门统计单位时间周期对显示数据进行筛选。

    筛选

  2. 点击对话卡片的查看详细数据,或左侧导航栏的对话,可以进入对话详情页。 对话详情

  3. 对话详情页中也可以通过归属部门统计单位时间周期对显示数据进行筛选;三个饼图,终端是按照终端维度统计;提示词按照5个固定提示词(代码解释,代码评审,生成测试,生成注释,代码检查)维度统计;编辑器按照IDE终端维度统计,不包含chatui数据。新增3个与饼图对应的趋势图,按天统计。 详情页

  4. 新增了提示词卡片,该卡片第一个数字展示提示词使用总量,另外一个值展示提示词数量。点击提示词卡片的查看详细数据,可以进入提示词详情页。

    提示词

  5. 提示词详情页中也可以通过归属部门统计单位时间周期对显示数据进行筛选。两个饼图,提示词类型是系统内置提示词,系统基础提示词,用户提示词分布 数量的分布;提示词使用展示每个提示词使用次数的分布,只展示使用次数最大的10个,其余提示词归属到其他。提示词使用趋势图展示了使用最多的10个提示词,若超过十个则其余提示词合并为其他。

    提示词详情

  6. 新增一个列表,展示全部提示词,包括:提示词名称所有者(创建人)使用次数最后使用时间共享数量最后使用用户

    全部提示词

  7. 点击代码生成卡片的查看详细数据,或左侧导航栏的代码生成,可以进入代码生成详情页。

    代码生成

  8. 代码生成详情页中也可以通过归属部门统计单位时间周期对显示数据进行筛选。两个饼图,编辑器饼图:按照IDE终端维度统计,点击编辑器饼图,现有趋势图和列表按照所点击饼图IDE类型重新过滤筛选,点击空白和重置去掉筛选。语言饼图:按照语言维度统计,点击语言饼图,现有趋势图和列表按照所点击饼图语言类型重新过滤筛选,点击空白和重置去掉筛选。两个趋势图:IDE的趋势图和语言的趋势图,体现每天的变化。

    代码生成详情

5. SmartCode 对话输入框支持快捷方式

  1. 提示词

    • 打开SmartCode,在对话输入框点击“/”或者输入“/”,调起提示词

      调起提示词

  2. #变量

    • 打开SmartCode,在对话输入框点击“#”或者输入“#”,调起#变量

      调起#变量

  3. 模型切换

    • 打开SmartCode,在对话输入框点击“对话模型”,调起模型列表

      调起模型列表

6. SmartCode 支持使用#变量在对话中灵活的引入代码上下文

SmartCode本次更新增加了 对话变量 的支持,对话变量用于在对话时引用IDE中的代码内容,为用户提供更加灵活的提示词组织方式。本次提供3个对话变量:

  • #selection: 用于引用当前激活的编辑器中已经选中的代码
  • #editor:用于引用当前激活编辑器中的任何代码块
  • #file:用于选择文件

参考:产品手册 | SmartCode | 支持使用#变量

7. SmartCode JetBrains 自动更新改进

本次提供的SmartCode JetBrains插件实现在后台自动下载新版本并完成更新,不再依赖JetBrains内置的插件市场机制进行下载和更新,简化和减少了用户操作。

参考:快速入门 | SmartCode | smartcode-jetbrains | 自动升级

8. 服务健康检查和相关接口

  1. 有管理员权限的用户点击系统监控-服务检测,可进入服务检测页,该页面显示了各容器服务的启动情况,会自动执行系统检测,时间周期为每5分钟

    调起模型列表

  2. 可以通过容器名称搜索要查看的容器;通过状态筛选容器状态,点击搜索筛选查看。

    调起模型列表

  3. 对于曾有过异常的服务,点击右侧详情,可以查看历史异常记录信息。

    调起模型列表 调起模型列表

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设置检测功能