国产AI已经学会直接操纵编程软件了!
阿里通义智能计算实验室在推出了一款专门针对VSCode的AI助手工具——SmartVscode。
通过自然语言指令,不仅可以让它帮你编程,还能搞定各种配置的控制和修改。
目前,该插件和背后的框架均已开源,并上架VS Code扩展市场。
大模型玩转VS Code
SmartVscode的目标,是让大模型能够全面控制VS Code,主要具备两大核心能力。
用自然语言轻松控制VS Code
用户可以通过自然语言指令,方便地控制和修改VS Code。
例如,打开某个难以查找的页面,精准快速地调整设置中的某项配置等。
无需记忆复杂的操作步骤,只需告诉SmartVscode你想做什么,它便会为你完成。
比如用户输入想要更改的样式,SmartVscode会自动地完成查找配置,修改配置等步骤。
或者想要使用Python编写快速排序代码,SmartVscode将会帮助我们自动化地完成一系列工作:检测Python的插件是否安装,选择对应的Python解释器,打开文件书写快排代码,执行对应的代码等步骤。
用VS Code开发应用程序
SmartVscode不仅让大模型全面控制VS Code,还可以VS Code内部丰富功能开发各类应用程序的能力。
简而言之,大模型充当“大脑”,VS Code作为“工具”,而SmartVscode则是连接二者的桥梁。
用户可以通过自然语言的描述,让大模型借助VS Code这一强大工具来帮助用户直接实现各种奇思妙想的应用程序。
比如用户输入一段关于井字棋游戏的描述,SmartVscode会自动完成创建文件,编写代码,执行程序等步骤。
如何使用SmartVscode插件
这款SmartVscode插件使用起来也十分简单,只需要三个步骤:
- 在VS Code扩展市场搜索并下载SmartVscode插件;
- 打开VSCode左侧边栏中的SmartVscode对话窗口,并在设置中输入通义模型或OpenAI模型配置;
- 在对话框中输入任务描述,等待SmartVscode执行并展示结果。
背后框架一同开源
SmartVscode的背后,是通义智能计算实验室自主研发的App-Controller框架。
App-Controller是一个基于大模型和智能体(Agent)的创新API编排框架,通过运用大模型的高级推理功能,实现对应用程序API接口的整合与协调。
它允许应用程序响应和执行基于自然语言的指令,极大提升了用户体验,并简化了应用程序与用户的交互流程。
下图展示了App-Controller如何增强应用程序的交互能力,左半部分描述了传统完成任务的问答和执行流程,右半部分展示了引入App-Controller后的完成任务的流程。
传统流程中,当用户需要在应用程序中完成某项任务却不知道该如何操作时,首先需要向大模型咨询操作步骤,然后根据指引一步步执行对应的操作,最终完成任务;
引入 App-Controller 后的流程中,用户仅需使用自然语言向应用程序输入需求,便可得到执行结果。
这背后的原理是应用程序在 App-Controller 的协助下借助大模型理解用户意图并编排需要执行的命令。
任何应用程序厂商仅需在App上实现通信接口并且向App-Controller提交其支持的 API 清单,框架便能独立地探索并识别出完成用户指令所需的最佳API调用顺序。
此外,它还搭载了一个高度抽象化、极具弹性的 HTTP 交互接口,进一步促进了应用程序的互联互通。
App-Controller具有如下这些特点:
- 智能API序列编排:智能地将用户输入的自然语言命令转化为可用的应用程序API序列,只需按部就班的执行这些API就能完成用户的需求。
- 轻松集成:开发者只需注册其应用程序的API清单,App-Controller会自动负责后续的识别和编排工作,无需复杂编码工作。
- 异步与并发处理:通过采用现代异步技术,App-Controller强化了其对并发请求的支持,确保即使在多用户或多任务的高负载环境下,应用程序也能保持高效和响应迅速。
- 强大的API交互接口:App-Controller设计了一套用户友好、稳固的HTTP API接口,这意味着与应用程序的交互可以无缝自由,同时确保数据传输的高效率和安全性。
- 支持多种大模型:App-Controller 能够很好地与多种大型语言模型进行集成,这意味着开发者可以根据需求和场景选择最适合的模型,以实现最优的自然语言理解和处理能力。
- 丰富的文档资源:App-Controller 提供了详尽的文档,其中包括快速入门指南、API参考手册、最佳实践案例和常见问题解答,帮助开发者轻松上手并充分利用框架的所有功能。
- 任务流的持久化:任务流程可以持久存储在数据库中,这项功能方便了任务的监控和管理,使得开发者可以随时查看任务的状态和历史记录。
- 智能缓存机制:通过先进的缓存技术,App-Controller能够优化性能和响应速度。它智能地存储频繁请求的结果,减少了对外部大模型的调用次数(即将推出)。
- Token优化:App-Controller的优化算法能够智能的评估消息的可用性,降低token的使用量,减少因API调用导致的开销(即将推出)。
从技术模块上看,App-Controller项目拥有以下五大核心功能:
- 用户协同操作:用户可以根据App-Controller生成的任务规划进行决策和修订;
- 文档分析增强:通过整合应用程序说明文档和可用API文档,提升任务分析的深度和准确性;
- 智能信息收集:系统能够迅速搜索并汇总用户在完成任务时所需的相关信息;
- 智能API序列编排:根据用户的具体任务要求,快速编排可用的API调用序列,提升工作效率;
- 异步与并发处理模块:通过采用asyncio框架,App-Controller增强了对并发请求的处理能力,确保在多用户或多任务的高负载环境中,应用程序依然能够保持高效响应。
文档分析增强模块
文档分析增强模块在离线阶段发挥关键作用,帮助大模型更好地理解和利用应用程序的说明文档和可用API文档,提升任务执行的准确性和效率。
App-Controller允许用户上传两类关键内容,以辅助大模型完成任务:
- 应用程序说明文档:详尽描述了应用程序的结构,基础定义,以及如何操作应用程序来完成各项任务,支持多种文本格式(如TXT、JSON等),确保信息的多样性和可读性。
- 可用API文档:列出应用程序所有可被App-Controller调用的API,并提供详细的API功能描述和参数信息,以便大模型精准调用。
为确保大模型能够准确理解每个API的功能和使用方法,系统规定了API信息的必需字段,包括名称、详细描述、参数类型、参数描述及必需参数等。
为提升检索速度和精度,系统预先将用户上传的应用程序的说明文档和可用API文档进行分片处理。
每个知识片段通过先进的文本向量模型(如通义文本向量模型等)将文本内容转化为高维向量,捕捉深层语义信息。
最后基于这些向量构建高效索引的结构,实现快速相似性检索。
利用高效的向量索引结构,系统能够在大规模知识库中快速定位与用户任务相关的知识片段和可用API文档,显著提升信息检索的响应速度和准确性。
智能信息收集模块
智能信息收集模块在用户输入具体任务后立即启动,负责全面搜集执行任务所需的所有相关信息。该模块的具体功能和流程如下:
- 需求向量化:首先,用户输入的任务需求通过先进的文本向量模型进行处理,将自然语言描述转化为高维语义向量。这一步骤确保App-Controller能够理解任务的潜在意图和细节。
- 知识片段检索:基于生成的文本向量,App-Controller在预先构建的文档知识库中检索与任务相关的知识内容。这些内容包括功能相关定义、任务操作步骤等信息
- API探索与确认:系统利用智能代理(Agent),通过关键词生成和最相似API检索策略,初步识别出与任务相关的API。随后,系统借助大模型的分析识别能力,通过多轮循环机制,逐步确认和筛选出最合适的API,以确保任务执行的精准性和高效性。
- 应用环境信息查询:根据任务需求,系统调用相关的应用环境信息搜集API,查询并获取必要的应用环境参数,如系统配置、用户权限、网络状态等。这些信息对于任务的规划执行至关重要。
- 信息整合与提交:完成所有信息的搜集后,智能信息收集模块将整合后的数据提交至智能API序列编排模块,为后续的任务规划和执行提供全面的基础支持。
智能API序列编排模块
智能API序列编排模块负责根据收集到的信息,规划并优化执行任务的API调用顺序,确保任务高效、准确地完成。
具体来说,该模块支持以下功能:
- 计划制定:App-Cpntroller利用智能代理(Agent)结合智能信息收集模块提供的知识片段、可用API以及历史相似任务的执行流程,制定出初步的任务执行计划。该计划详细列出了每一步需要调用的API及其参数配置。
- 用户评审与反馈:初步计划生成后,系统将其提交给用户进行评审。用户可以根据实际需求提出修改意见,确保计划的可行性和符合预期目标。
- 计划迭代优化:根据用户的反馈意见,系统对计划进行修订和优化。这一过程可能涉及多轮迭代,直到用户对最终计划表示认可。
- 任务执行:确认后的计划逐步执行,系统按照预定的API调用顺序依次完成各项任务。每一步的执行结果都会实时反馈,确保整个过程的透明性和可控性。
- 反馈调整机制:在任务执行过程中,系统会根据实时反馈信息,动态调整后续的API调用计划。如果遇到异常情况,系统能够及时修订计划,确保任务顺利完成或安全终止。
能力局限与持续改进
尽管AppController在智能控制和多应用扩展方面展现出强大的潜力,但通义智能计算实验室团队也指出了当前存在的几项能力局限:
首先是大模型推理能力的限制。
受限于当前大语言模型的推理能力,SmartVscode在处理某些复杂或细致的任务时可能会出现错误。
这些错误包括误解用户指令、执行不准确的操作等。
研究团队正在持续优化模型的训练和指令解析算法,以减少错误发生的频率,并提升操作的准确性。
第二是模型推理速度。
目前,模型的推理速度有时无法满足实时操作的需求,导致用户在执行任务时可能会体验到一定的延迟。为了解决这一问题。
研究团队正在优化模型的响应速度,通过更高效的算法和更强大的缓存机制,力求在未来版本中实现更快速的推理与响应。
最后,是对VS Code功能的支持还存在局限。
目前,SmartVscode已经基本覆盖了VS Code的常用基础功能,但对于一些复杂或高级的功能支持仍处于开发中阶段。
通义智能计算实验室团队正在积极扩展对VS Code更多复杂功能的支持,确保用户能够全面利用SmartVscode提升开发效率。
项目地址App-Controller:https://github.com/alibaba/app-controller
Smart-Vscode插件:https://github.com/alibaba/smart-vscode-extension