R34 - SmartCode支持#变量、Devi发布公开预览版

发版日期:2024.09.14
本次更新在SmartCode中增加聊天变量支持并且发布了代维(devi)数据库智能体的公开预览版,以及其他一些问题修复和改进。

主要特性或改进

1. SmartCode VSCode 插件初步支持#变量

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

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

通过使用 对话变量 开发者可以实现一些之前不容易实现的提示词,比如:开发者可以通过以下提示词引用某个文件内容,并要求AI将所引用的代码作为参考进行生成,示例如下:

  • 请根据这个文件中的内容 #file:BankTransactionController.java 生成API文档,并使用标准的markdown格式输出。
  • 请参考 #file:Dockerfile 编写一个 docker-compose.yaml 并将对外端口设置为8090,并将日志映射到本地路径中
  • 请对 #selection 进行分析,重点关注其中可能存在的代码安全问题,并提供解决方案和示例代码

用户也可以组合以上变量,构建出更加复杂的提示词,比如:

  • 请参考 #file:api_reference.yaml,修正以下代码中的接口调用逻辑 #selection
  • 请参考 #editor:model.py77-89,生成10个单元测试,尽量覆盖各种场景

以下视频演示了使用 #selection 变量对一段代码进行日文解释的过程

以下视频演示了使用 #file 变量,引用整个文件,并引导AI对文件内容进行汇总总结的过程

以下视频演示了使用 #file 变量引用一个API入口代码文件,并生成接口文档的过程。

本次更新只在VSCode中实现了以上能力,在后续的版本中我们将陆续在JetBrains插件中实现以上能力。

2. Devi for GitHub Copilot 公开预览版

Devi 是 AI 智能体(Agent) 基础组件库。构建基于智能体的生成式AI应用需要开发者完成很多基础组件的搭建工作,我们希望通过构建一系列通用的 AI 智能体 组件来简化开发人员使用生成式AI的复杂度。 Devi 提供2种方式供开发者使用:第一种是通过 GitHub Copilot 插件 的形式提供开箱即用的体验 ,第二种是通过 Devi NPM Package 的方式提供更多的自定义能力。

GitHub Copilot 插件

Devi for GitHub Copilot 是构建在 GitHub Copilot 生态体系上的一系列 AI智能体,devi提供了这些智能体的原子能力,并通过 GitHub Copilot Chat 为开发者提供服务。开发者可以通过 Visual Studio Marketplace 安装 Devi 插件,然后在 GitHub Copilot Chat 中使用 @devi 调用 代维DB智能体实现开箱即用的能力,比如:数据库对话、Text2SQL、数据库文档生成等。

演示视频

有关如何使用 Devi for GitHub Copilot 的详细信息,请参考 Devi for GitHub Copilot 操作手册

Devi NPM Package

Devi NPM Package 提供 AI智能体 的原子能力,开发者可以通过 NPM 安装 Devi Package,然后在自己的应用中使用 Devi 提供的能力。

Devi for GitHub Copilot 特性说明

开发者在GitHub Copilot Chat中使用 @devi 调用 代维DB智能体实现如下能力:

数据库智能问答

自动识别数据库结构,并允许用户使用自然语言对数据库提问,可以回答如下问题:

  • 这个数据库是做什么用的?
  • 哪些数据库对象之间存在联系?

自然语言生成数据库查询(Text2SQL)

自然语言生成数据库查询(Text2SQL),用户可以使用自然语言提出问题,由AI根据数据库结构生成SQL语句

  • 帮我生成所有应用和对应的review数量的汇总查询
  • 帮我生成所有用户中发表review最多的用户的列表,按从多到少排序

数据库文档生成

通过内置的 @devi /docs <table_name> 的快捷指令生成标准的额数据库文档

其他更新

  1. 改进 AI基座 - 团队仪表盘中同一接口多次发布请求问题,显著提高仪表盘响应速度,提升用户体验
  2. 修复 AI基座 - OAuth2配置页面中因为不上传图片造成列表不显示的问题
  3. 改进 产品手册/官网 - 允许通过白名单方式控制视频来源,节省公网服务器流量
  4. 改进 SmartCode - 当用户对当前代码补全模型无权限访问时,给出友好提示
  5. 改进 SmartCode Jetbrains - 当用户同时开启多个JetBrains窗口时无法完成自动更新问题,现在插件端会给出友好提示,提示用户关闭窗口后再进行升级
  6. 修复 SmartCode JetBrains - 修复插件加载过程中因为IDE服务未启动完毕造成的报错,提高插件加载稳定性和可靠性
  7. 修复 SmartCode JetBrains - 优化并解决使用tree-sitter进行代码解析过程中的内存溢出问题,提高插件对代码进行动态解析的稳定性和性能。