AutoDev 自定义 Agent:快速接入内部 AI Agent,构建 IDE 即 AI 辅助研发中心

news/2024/7/24 12:33:12 标签: 人工智能, ide

在开源 AI IDE 插件 AutoDev 的 #51 issue 中,我们设计了 AutoDev 的 AI Agent 能力,半年后我们终于交付了这个功能。

在 AutoDev 1.7.0 中,你将可以接入内部的 AI Agent,并将其无缝与现有的 AI 辅助能力结合在一起。

本文将使用 AutoDev 结合 AI Agent 作为 demo,来展示如何使用 AutoDev 无疑 Agent 能力。详细见文档:https://ide.unitmesh.cc/agent/agent.html ,或者阅读代码。

详细 Demo 视频:

自定义 AI Agent

背景:如我们所知,通用的大语言模型是缺乏内部的相关资料的,我们需要结合 RAG 来做扩展。而在这些场景下,由于我们的资料可能会一直在更新,在 IDE 上做类似的功能是不合适的。为此,我们应该在服务端实现类似的能力,并将接口暴露给 IDE 。

因此,我们基于先前的自定义 LLM 经验,设计了 AutoDev 的自定义 AI Agent 能力,方便于大家使用。

1. 直接返回结果示例:内部 API 集成

5fccd806e61c7a83be6c6ab17573828a.gif

典型场景:

  • 模型不了解的知识。在学习鸿蒙应用的开发时,也可以在内部部署对应的 API,来加速学习。

  • 内部知识。当内部包含大量的领域知识、规范、 API 信息等场景

在这些场景下,可以直接使用 Direct 作为返回类型,集成对应的 AI Agent。对应的配置示例:

{
  "name": "内部 API 集成",
  "url": "http://127.0.0.1:8765/api/agent/api-market",
  "responseAction": "Direct"
}

即,直接返回并处理对应的内容。

2. 返回检索结果示例:组件库集成

13d0772714516c33b33a4968e0c96e68.gif

典型场景:

  • 结合知识检索。即需要的是某一类的知识,而只需要基于这些知识进一步往下沟通。诸如于,我需要让 AI 选择合适的组件,那么就需要拥有所有的组件信息,以进一步向下编码。

在这些场景下,可以直接使用 TextChunk 作为返回类型,集成对应的 AI Agent。对应的配置示例:

{
  "name": "组件库查询",
  "url": "http://127.0.0.1:8765/api/agent/component-list",
  "responseAction": "TextChunk"
}

即,AI 返回的是检索的结果,我可以基于结果来进行下一步聊天。

3. WebView 结果示例:低代码页面生成

57cd948d8cafcf679e3f72755c0d8241.gif

典型场景:

  • 前端页面生成。

  • 低代码页面生成。

这两种场景颇为相似,由于 AI 生成的前端代码问题多,往往需要结合内部的组件库或者 RAG 来进行。虽然如此,RAG 在这两种场景下结果也不好。与之相比,直接由 AI 生成一个原型图,交由产品经理和 UX 、 Dev 聊天显得更有价值。

在这些场景下,可以直接使用 WebView 作为返回类型,集成对应的 AI Agent。对应的配置示例:

{
  "name": "页面生成",
  "url": "http://127.0.0.1:8765/api/agent/ux",
  "auth": {
    "type": "Bearer",
    "token": "eyJhbGci"
  },
  "responseAction": "WebView"
}

即,返回的结果是一个 WebView,后续在聊天中会展示对应的页面。

小结

在 IDE 里,我们可以将 AI Agent 视为一系列的能力插件,用于加速我们的开发过程。

PS 1:由于 JetBrains 市场的审核机制,等不及的朋友,可以从 GitHub 下载:https://github.com/unit-mesh/auto-dev/releases

PS 2:接口有了,剩下的就靠你们自己了。


http://www.niftyadmin.cn/n/5416618.html

相关文章

Web APIs 6 正则表达式

Web APIs 6 正则表达式1、介绍2、语法方法一方法二 3、元字符分类① 边界符② 量词③ 字符类 案例:用户名验证 4、修饰符案例:过滤敏感字 案例:小兔鲜注册注册模块 正则表达式 1、介绍 正则表达式(Regular Expression&#xff0…

【LeetCode: 212. 单词搜索 II - dfs】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Ubuntu/Linux系统下Redis的基本操作命令

版本查询 redis-server --version # 或者redis-server -v 如上图所示,redis-server的版本为6.0.9,证明redis已经安装完成。 启动Redis服务 启动命令如下: redis-server启动成功如下所示: 启动过程中遇到如下问题时,杀死指定端…

景联文科技:专业提供高质量大语言模型训练数据

2024年,数字经济被再次写入政府工作报告中,报告指出要深化大数据、人工智能等研发应用,打造具有国际竞争力的数字产业集群。 大模型作为生成式人工智能的基础,日益成为国际科技竞争的焦点。人大代表杨剑宇指出,尽管我国…

Java零基础-数组的初始化

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

day19_项目实战(数据管理,会员管理,订单管理,系统管理,首页数据统计,地址管理,商品收藏,商品浏览)

文章目录 项目实战1 项目实战意义2 项目实战说明3 后台实战功能3.1 数据管理(5)3.1.1 区域管理(1)3.1.2 商品单位(4)分页查询商品单位产品单位添加产品单位修改产品单位删除 3.2 会员管理(3)3.2.1 条件分页查询3.2.2 会员数据详情查询3.2.3 会员停用与启用 3.3 订单管理(2)3.3.…

智慧灯杆-智慧城市照明现状分析(1)

城市道路照明是城市公共设施的重要组成部分,而随着城镇化建设的推进,城市道路照明路灯的数量越来越多,能耗越来越高,供电趋于紧张。此外,城市照明的维护工作和高昂的维护成本(人工控制、路灯巡查等),给城市管理造成了巨大的困难。管理部门需要更有效率的管理和节能方案…

Django中执行update更新时auto_now问题

一、问题说明 在我们给模型的时间字段updated_at字段添加auto_nowTrue之后,原则上来说在更新数据是会自动修改更新时间。 但是当我们使用在代码中使用ORM中的filter(xxxxxx).update(xxxxxx)时发现,更新时间字段并没有完成更新。 而如果使用obj.save()…