走近OS Copilot
OS Copilot是Alibaba Cloud Linux基于大模型构建的操作系统智能助手,支持自然语言问答、辅助命令执行、系统运维调优等功能,帮助您更好地使用Alibaba Cloud Linux,提高Alibaba Cloud Linux的使用效率。
Alibaba Cloud Linux是阿里开源的linux发行版,没有图形化界面(GUI),操作需要通过shell执行。不管你是Linux菜鸟还是运维老炮,OS Copilot可以帮助你更高效地使用通过命令行进行操作和管理系统。虽然它是直装在操作系统上,但还是不可直接读取到硬件信息,它与其他AI助手相比最大的优势是可以直接执行AI结果中给出的命令。
OS Copilot的优势大致为个性化、专业(准确)、高效(响应快)、生态(阿里云生态一体化),主要有问答(可调用系统运维和调优工具)、命令行助手和调用阿里云资源这些功能。通过官方文档的描述,我们可以发现它不仅是给运维人员设计的,还是给每一个Linux爱好者设计的。
如何使用?
虽然OS Copilot可以使用CentOS/Fedora生态的yum包管理器直接安装,但是根据官方的说明目前仅支持在x86_64架构的Alibaba Cloud Linux 3操作系统上使用OS Copilot。
0.购买ECS
由于目前仅支持在x86_64架构的Alibaba Cloud Linux 3操作系统上使用OS Copilot,所以我们需要有满足要求的操作系统,推荐线上开通ECS进行体验。
- 如果你是学生,那么可以在下面链接免费领取300元无门槛券,可以0元购买一年的ECS实例。
- 如果你已经没有学生身份,但是你是新用户,可以申请ECS最长三个月免费试用:阿里云免费试用 - 阿里云 (aliyun.com)
- 如果你也不是新用户,那么可以购买阿里云99计划,ECS 经济型e实例2核2G,3M固定带宽40G ESSD Entry云盘,仅需99元一年:云小站_专享特惠_云产品推荐-阿里云 (aliyun.com)
- 如果你用不到一年的ECS,只是想体验OS Copilot,那么你可以在ECS购买页选择按量付费,购买按量付费产品需要有100元的账户余额。
1.申请权限
OS Copilot不是本地模型,因此使用时需要通过AK登陆阿里云账号来获取AI结果。现在的OS Copilot是邀请测试阶段,你需要首先给你的阿里云账号申请试用(https://survey.aliyun.com/apps/zhiliao/JLAiDF7fb)后才能使用OS Copilot。
2.安装OS Copilot
安装OS Copilot:
sudo yum clean all && sudo yum install -y os-copilot
升级OS Copilot:
sudo yum clean all && sudo yum update os-copilot
配置环境变量:
export ALIBABA_CLOUD_ACCESS_KEY_ID= export ALIBABA_CLOUD_ACCESS_KEY_SECRET=
补充:请注意和外需要加引号以确保它们作为一个单独的参数被传递。
因此示例如下:
export ALIBABA_CLOUD_ACCESS_KEY_ID=”Your AK ID” export ALIBABA_CLOUD_ACCESS_KEY_SECRET=”Your AK Secret”
(条件必选)使用RAM用户的AK需要获得系统策略AliyunSysOMOSCopilotAccess权限
3.使用OS Copilot
OS Copilot是通过命令行使用的,以下是命令用法:
co --help usage: co [-h] [-v] [-t] [--notool] [prompt] OS Copilot: An OS assistant using LLM technique positional arguments: prompt input the prompt (i.e., your query about Linux OS), or keep it empty to enter interactive mode optional arguments: -h, --help show this help message and exit -v, -V, --version show version info and exit -t, -T, --tool activate this option to let llm use tools on demand --notool activate this option to get raw llm response without tools, note that --notool will not take effect if --tool is set as well Notice: If you encounter any connection issues, please export ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_KEY_ID" export ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_KEY_SECRET" Then, grant yourself the 'AliyunSysOMOSCopilotAccess' permisson at <https://ram.console.aliyun.com/permissions>. If you need support, please join the DingTalk Group [71050008820].
总的来说,OS Copilot有两种使用方式:
命令行模式
在这种模式下,你可以直接输入copilot + [prompt] 或 co + [prompt] 来获取AI结果,执行完自动退出会话。
多轮交互模式
在这种模式下,你可以直接输入copilot,我们就进入OS Copilot应用内,可以进行多轮对话。
该模式提供了三种场景:
CHAT
:默认的聊天模式,可以使用newchat
命令切换到此模式。CODEGEN
:可以使用newcodegen
命令切换到此模式,按照指示自动生成代码。CODESUM
:可以使用newcodesum
命令切换到此模式,读取本地代码片段文件,自动分析代码摘要。
使用完毕需要输入 exit 命令来退出OS Copilot
体验OS Copilot
输入rpm -q os-copilot,可以看到购买ECS后的默认镜像aliyun_3_x64_20G_alibase_20240528.vhd未预装os-copilot。
根据上文教程执行安装命令即可,一行命令等待一分钟左右即可安装。
小问题
根据实际的体验,将AK加入环境变量后,这一AK信息并没有持久化保存,新建SSH会话连接后环境变量中保存的AK会丢掉。
命令行模式
命令行模式下,os-copilot能够给出可靠的回答,虽然生成的脚本内容不能直接保存到文件,但是它可能识别到其中的命令并在你同意后执行。结果与ChatGPT4o模型给出的回答类似,但ChatGPT4o给出的回答更完整,包含用户需要注意的事项,os-copilot仍有进步空间。
CODESUM情景
可以使用newcodesum
命令切换到此模式,读取本地代码片段文件,自动分析代码摘要。
本次体验会将GitHub仓库的代码拉取到本地让os-copilot分析代码摘要。那么我们首先要做的就是安装git。命令行模式能够很好满足这个需求,输入“co 安装git”,os-copilot能自动发现回答中的安装命令,输入所需执行的命令序号并确认执行后,安装命令就自动执行啦。
切换到仓库文件夹内,输入co开启os-copilot多轮对话,输入newcodesum切换到CODESUM情景,在该模式下只能对代码进行分析,语法是 python#demo.py,如果输入自然语言会直接报错。
可以看到os-copilot对每个函数进行了解释,一句话总结提供的代码展示了在Python中创建函数和闭包的各种技术,以及一些状态管理的例子。总结是比较准确,只是回答结果是英文的,用户语言无法自主选择,os-copilot会随机给你返回英文或中文的结果,并且英文回答会更多一些,可能与模型的训练语料有关系。
总结
os-copilot这样的形式很有新意,能极大的帮助Linux初学者更高效的使用Alibaba Cloud Linux 3系统,回答快速并且专业。由于它不是本地模型,所以不需要占用太多系统资源,2c1g这样的机器也可以流畅运行。但是由于它不是本地模型,在企业的应用会非常受限,专业的开发运维人员最多会把它用在测试环境中提升效率。目前有两个突出的问题是AK持久化和代码解释的语言本地化问题。根据个人猜测,os-copilot是在阿里通义大模型的某个版本上微调得到的,但是可以感觉到这是一个可以快速进步的产品,目前还有些小问题会影响用户体验。阿里的通义模型已经开源并且收获了一众好评,如若未来os-copilot选择开源,我相信Linux生态会更加繁荣。
PS:OS Copilot 产品功能反馈的意见征集里面有一条:您希望OS Copilot能够扩展其他哪些功能呢?比如,支持更多的操作系统、自动命令报错原因分析、系统错误排查,或其他任何您想到的功能。
支持更多的操作系统、自动命令报错原因分析、系统错误排查这些功能既然都提出来了那肯定是有上线计划的(或者有计划不实现),所以就不提了。我觉得有必要加入一些命令行小游戏给运维人员摸鱼使用作为彩蛋出现
加入什么小游戏?除了俄罗斯方块都行,俄罗斯方块太容易上头了。