新手训练营——使用操作系统智能助手OS Copilot轻松运维与编程
内容分析
1. 行业痛点击及背景
2. 产品与架构
3. 典型应用场景
4. 实验及反馈渠道
01、行业痛点击及背景
在软件开发和运维过程中,我们常常面临诸多困难。
1.1 信息获取困难
Linux系统发行版繁多,版本众多,从网络获取的相关知识准确性不高,信息甄别难度大。
1.2 学习门槛高
Linux操作系统命令、参数及版本操作各异,运维人员工作量和学习成本居高不下,常需各类专家协同解决问题,效率较低。
1.3 编码效率低
操作系统开发或运维涉及大量脚本编写和服务配置,不同环境需适配不同脚本,还需调试和审查,整体效率低下。
02、产品与架构
2.1 产品介绍
在 AI时代,针对以上问题,阿里云团队推出了基于 AI 大语言模型与操作系统领域知识构建的 OS Copilot 操作系统智能助手。它支持自然语言的问答、辅助命令的执行以及系统运维的优化,也可以帮助我们生成脚本,并对代码进行解释等,进而提高工作效率。
2.2 产品特点击
(1)信息聚合与获取便捷化
传统学习或获取知识的渠道繁杂,多是通过 Google、百度或访问官网等不同的网址找到不同 Tag 的页面,进而获取所需的信息。但OS Copilot 提供了门户入口,可通过自然语言的方式一键获取所有的知识。这区别于传统的信息获取方式,起到了信息聚合的作用,可以降低获取错误信息的概率。
(2)系统管理门槛降低
传统系统管理员需专业操作,进行命令调用、编程、脚本编写,进而执行动作,如系统升级、软件管理、配置管理、系统安全以及操作系统管理相关的行为动作等。而 OS Copilot 允许用户通过自然语言下达任务,AI 自动执行,降低操作系统管理门槛,快速把入门用户提升至初级专家水平。
(3)高效运维与能力进化
许多低级的高频问题经常需要依赖领域专家不断地消耗大量精力解答,对于学习文档中的难题通常需要跨团队协作解决问题。此外,还有各种复杂的系统运维工具要学习使用。这也导致传统运维代价高,时间长。OS Copilot 基于大模型,随着使用的增加,可沉淀知识,并通过历史经验的积累实现正向迭代循环,在复用多行业知识和案例的基础上,自动升级系统运维能力,解决更多的系统运维问题。
(4)辅助编程与操作系统紧密结合
AI 大语言模型为代码训练带来了很多带福利,它可以生成代码、bug/ review 代码、生成用例、生成脚本、代码解释、优化建议等。当前。市面上有很多辅助编程的 AI 插件,如LeetCode等,它们几乎可以完美实现上述功能。在此基础上,OS Copilot 在此基础上与操作系统紧密结合,生成的代码与操作系统兼容性高,减少调试和适配成本。另外,对于系统的一次性任务或一次性的脚本,可以使用 OS Copilot 一键生成代码,助力操作系统的相关编程。
(5)功能扩展与不足弥补
大模型本身存在不足,如出现幻觉、无法回答未学习的知识、只能实现语言的输入与输出等。OS Copilot 可通过function calling 能力增强,集成多种功能,弥补大模型缺陷,实现真正的动作执行。如购买机票的场景,对于传统的 AI 大模型,它会告知用户登录携程,介绍购买机票的过程。但 Function Coding会告知大语言模型购买机票的诉求,它会筛选得到一张机票的价格等信息,通过确认即可成功购买机票。这项能力使得 AI 能够真正执行相应的动作,弥补大模型的缺陷。OS Copilot 目前已集成了多项功能,如自研的 Keentune 性能调优工具、SysAK 运维工具、Aliyun CLI 工具管理云上资源等等。
2.3 产品架构
OS Copilot 采用命令行形式,可在操作系统命令界面执行。用户无需本地化地部署大模型,而是采用 Client、Server与大模型前后端分离式部署架构,避免了使用专业GPU运行的情况,且使用的是高质量的预料,更易获取。阿里云操作系统即可免费使用命令行功能,大模型算力由部署在云上的服务器提供。
03、典型应用场景
3.1 命令辅助
用户提出需求,OS Copilot 即可根据用户的需求生成命令并组合参数,用户审核后即可执行。
3.2 安装软件包
用户对 OS Copilot 提出需求:Scopilot nginx安装了吗?没有帮我安装,OS Copilot 确认后直接执行。这依赖于 Function Coding 的能力。在该情境下,大模型只能完成软件是否安装的检查,若未安装,用户需要执行ym
l
list
in
stall
或者d
n
f
list
in
stall
,而 OS Copilot 可在经用户确认的情况下直接执行安装的动作。
3.3 命令错误解释,?唤醒词
当执行命令失败时,OS Copilot 避免了原来使用Google等查询的过程,输入“?”,即会解释错误原因并尝试修正命令,给出正确的命令示范。
3.4 进程解析
用户可通过管道拼接方式,利用 OS Copilot 对进程中的各个代码进行主函分析,明确该进程的作用。
04、实验及反馈渠道
目前OS Copilot 产品仍处于公测阶段,产品免费试用。如果用户已有阿里云 ECS 实例以及Alinux 3系统,可以直接参考《OS Copilot》使用说明安装使用即可;若无 ECS 实例以及Alinux 3系统,可以参考《阿里云—云起实验》直接在云起实验上点击击使用。另外,由于产品仍处于公测阶段,以及存在的大模型、知识错误的可能性,如果在生产环境上应用时,需要谨慎评估其内容及要执行的动作。
4.1 背景知识
在实验操作界面,左侧是操作手册,右侧是实践界面。在左侧可以点击击“下一页”查看具体的步骤。
(1)涉及的产品和服务
本次主要涉及的产品是 ECS 虚拟机,演示在虚拟机上安装 Alibaba Cloud Linux 以及智能助手 OS Copilot。
(2)前提条件
在该实验进行前需满足以下几个前提条件:
如演示账号是个人账号,需通过实名认证,且账号内的余额大于 100 元,在体验结束后自行申请退款,取出剩余的费用;本次实验费用主要包含流量费用及操作时候占用存储镜像的费用。
4.2 实操步骤
(1)创建实验资源
点击击“开始实操”并勾选相应的协议,创建 ECS 数据集、vpc以及相关的网关。
(2)安全设置设置安全组窗口
在云产品资源列表的安全组区域,点击“管理”配置安全组,如果需要在本地登录 terminal,则需打开 SSH(22)端口,如果直接使用云的 Web client,可忽略这一步操作。
点击左侧的“云产品资源”按钮,点击“ECS 云服务器”管理按钮跳转到相应的界面。
修改创建资源时默认的随机密码,选择“在线重置密码”即可。然后,点击远程链接的窗口,可以选择使用网页的 client 登录,直接在云上完成一系列的体验。
(3)创建阿里云 AccessKey
OS Copilot 需要通过阿里云账号下申请 AccessKey 用于完成产品认证,以实现与后端的通信。点击“创建 AccessKey”,即可生成 AccessKey Secret 的字段,复制保存该文件。
(4)准备系统环境
①安装 OS Copilot 组件
与安装操作系统的方式相同,复制相应的命令代码粘贴,使用 yum 或 dnf 进行install 即可。
②配置环境变量
复制操作手册中的命令代码,使用 export的方式进行配置。
③软件测试
执行 co hi命令,测试该软件是否能够连接成功。当出现类似大语言模型的输出后,说明软件连接成功。此时,用户即可对其询问。
4.3 场景演示
(1)使用 OS Copilot 写脚本和注释代码
①命令一:c
op
ilot/co
——写脚本
copilot 是命令的全称,co是缩写,可看作 copilot 命令的短链接,可以直接使用其下发任务,如co “请帮我写一个网络流量监控脚本,用 python 语言实现”。
②命令二:cat test.py | co “请解释每行代码的意思”——代码注释
将上述生成的脚本 copy 到 test.py 上,复制上述命令的代码,即可返回相应的结果。
(2)使用 OS Copilot 进行对话问答
通过 co 登入后,可选择三种模式。一种是 Chat 模式,即聊天模式,该模式不调用其他组件。可用于聊天,或是寻求建议;一种是 CODEGEN 的模式,用于代码生成;第三种是 CODESUM 的模式,用于代码解释。
该案例是第一种模式,可在实验界面直接输入“当前是什么系统”“怎么升级系统”等问题。最后,可输入 Exit 退出该模式。
(3)使用 OS Copilot 辅助编程学习
即上文中提到的 CODEGEN,以写“最长回文子串”为例,即可返回相应算法的函数实现,并对生成的每一行代码进行注释。
(4)命令错误解释:?唤醒词
需先执行source
/etc/prifile.d/os-copliot_fix_command_tool_config.sh,
再执行“?”。返回结果“上一条命令执行正确,如果命令执行报错,可以调用‘?’来进行错误分析和修正”。
综上所述,有 4 种使用方式,一是直接在 co 后输入问题,如co “请帮我写一个网络流量监控脚本,用 python 语言实现”;第二种是先提前输入,然后用提示符“ | ”连接 copliot,对前面的输入提问,如cat
test
.py | co “
请解释每行代码的
意思”
;第三种是直接进入,进行交互式的提问;最后一种即使用“ ? ”调出上一条执行报错的命令,进行错误分析以及修正。
4.4 结束实操
实操结束后若保留资源,可以点击“付费保留资源”,保留实操中创建的机器,供重复使用;若不保留资源,可以点击“释放资源”,与最初创建的资源中对比,若有部分资源为释放,可手动进行释放,避免产生不必要的费用。实操结束后,也可充新开启实验。