产品概述
Copilot是副手的意思,在这里你也可以理解为助手。OS Copilot顾名思义就是操作系统的助手。那本篇测评的主角是Alibaba Cloud Linux基于大模型构建的操作系统智能助手,支持自然语言问答、辅助命令执行、系统运维调优等功能,帮助您更好地使用Alibaba Cloud Linux,提高Alibaba Cloud Linux的使用效率。那既然是基于大模型的助手,当属拥有如下优势:
智能
OS Copilot通过不断学习您的使用习惯,提高准确性并做出预测。
专业
OS Copilot可以专业地帮助您回答操作系统相关问题。
高效
OS Copilot可以帮助您在系统诊断、调优、编程等场景进行相关问题处理。
协作
通过OS Copilot管理您在阿里云上的资源,享受到阿里云上一体化的服务。
由于助手是基于Alibaba Cloud Linux定制的,所以天然使用受限,目前仅支持在Alibaba Cloud Linux 3(仅x86_64架构支持)上使用OS Copilot。
产品试用
正式使用之前,你首先得申请试用,填写Alibaba Cloud OS Copilot试用申请表,申请通过后使用。这里提到的审核会自动处理完成。
申请表中需要认真填写的是主账号ID,系统会根据这个来判断是否具有试用资格。那这个ID我要如何找呢,方法很多,最便捷的方式就是任意阿里云主页右上角,将鼠标悬停在头像上,就可以看到了。如下:
实践体验
因为整个体验都会基于Alibaba Cloud Linux 3 X86_64操作系统,因此根据你当下是否有ECS分成线上体验和本地体验。这里我将着重对在线环境进行体验,它跟本地环境的差异只在于主机归属。点击前往,【实践】使用操作系统智能助手OS Copilot解锁操作系统运维与编程。说实在的,这个新版本的实验界面我还是蛮喜欢的。新旧实验主界面如下:图一是新版,图二是旧版。
首先是色调方面,新版是科技蓝,旧版是阿里橙。新版的操作手册栏默认面积更大,旧版的较小。虽然都可以手动拖动进行调整,但这种默认更符合人性化。新版的右侧实验资源呈现的更合理,呈现的信息也更直观,并且创建资源的速度也更快。好了,废话先说到这。接下来正式开始体验。
环境准备
线上体验依赖用户自身的账号余额,所以为了能有效顺利地进行,在体验之前需要查询下账户余额是否大于100元。检查无误后,勾选协议,点击开始实操。如下:
开启实操后,资源环境自动创建,如下:
所建资源有效期只有60分钟,如果时间到了还未完成体验,可以点击实验右上角的重新开始,重新创建资源。如下:
资源创建完成后,在左侧的云产品资源里可以看到对应产品信息。如下:
进入ECS-shell的方式有两种,第一种是URL,第二种是直接点击右侧的Cloud Shell。第一种URL类似这种,管理终端 (aliyun.com),也就是日常我们使用的VPC远程连接地址。如下:
通过第一种方式进入shell后需要登录密码,而此时我们是不知道密码的,这就要用到ECS的在线重置密码功能了。首先在云产品资源列表的ECS云服务器区域,单击管理。进入到ECS管理控制台。如下:
在实例列表页签的更多区域,单击重置实例密码。如下:
在重置实例密码对话框中,设置新密码和确认密码,重置密码的方式选择在线重置密码,配置SSH密码登录策略选择开启,单击确认修改。如下:
返回如下结果,表示ECS实例root用户的登录密码重置成功。如下:
为了更安全的访问,需要添加访问策略。在访问规则区域的入方向中,添加SSH(22)端口。授权对象填入电脑的IP地址。如下:
接下来需要新建AccessKey,来允许RAM用户使用OS Copilot。前往AccessKey管理,在安全提示对话框,阅读安全提示信息,然后单击继续使用AccessKey。在AccessKey页面,单击创建AccessKey。如下:
该操作会触发安全验证,根据界面提示输入收到的验证码完成认证。如下:
在创建AccessKey对话框,务必保存好密钥信息。可以单击下载CSV文件、也可以单击复制,复制AccessKey信息。如下:
安装助手
有了如上的准备后,接下来就可以开始安装OS Copilot组件了。如下:
sudo yum install -y os-copilot
配置环境变量,将上述步骤中获得的AccessKey添加到主机变量中。如下:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<AccessKey ID>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<AccessKey Secret>
这里使用export只能在当前窗口生效,如想永久生效,可以写入/etc/profile配置文件中并使用source生效。
命令行模式
完成配置后,即可开启和助手的对话了,如下称呼均可唤醒助手。
co hi、copilot 你好、co 你好、co "你好 请问你是?"
上面体验的这种基于shell命令行,所以也称为命令行模式。比如我问copilot,如何解压.tar文件,答复如下:
相较于以往使用man后者干脆百度来说,使用助手得到的结果不仅专业且准确,效率杠杠的。
多轮交互模式
除了这个简单的chat功能外,copilot还可以进行多轮对话,直接输入copilot进入该模式,如下:
newchat 切换到默认chat问答模式
newcodegen 根据提示生成代码模式
newcodesum 根据代码文件自动分析代码摘要
exit 退出Chat模式
co --help 查看更多用法
输入newchat进入chat问答模式,如下:
输入newcodegen进入编码模式,根据输入的提示词自动生成代码。如下:
输入newcodesum进入代码摘要模式,比如python#DataFrame.py,先指定文件所用编码语言,后面接该文件。如下:
场景体验
对话问答
这个场景上面在命令行模式中已经体验过了,就是一个chat对话,copilot会根据你的问题进行答复。比如输入“如何实现环境变量永久生效”,如下:
写脚本和注释代码
比如我让copilot写一个检查异常进程的python脚本。实现如下:
比如我用python写了一个使用spark进行聚合操作的文件,希望copilot可以帮我写注释。如下:
辅助编程学习
我需要帮忙编码的是下面这个题目:
小红站在一个矩阵的左上角,她每次可以向右走一步或者向下走一步,最终走到右下角。她希望最大化走过的元素之和。
在开始走之前,小红可以把一个元素乘以 2 再开始走。小红想知道,若将第行第列的元素乘以 2,这样得到的最大值是多少?你需要回答每个元素乘以 2 的情况。
建议python考生使用pypy提交!
根据上面的体验我们知道,进入编码模式,需要先进入chat模式,在输入newcodegen进入编码模式。如下:
我们可以比对下通义灵码给出的答案,如下:
def maxSum(grid):
m, n = len(grid), len(grid[0])
dp = [[0]*n for _ in range(m)]
dp2 = [[0]*n for _ in range(m)]
# 初始化第一行和第一列
dp[0][0] = grid[0][0]
for i in range(1, m):
dp[i][0] = dp[i-1][0] + grid[i][0]
for j in range(1, n):
dp[0][j] = dp[0][j-1] + grid[0][j]
# 动态规划填充dp和dp2
for i in range(1, m):
for j in range(1, n):
dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + grid[i][j]
dp2[i][j] = max(dp[i-1][j], dp[i][j-1], dp2[i-1][j], dp2[i][j-1]) + 2*grid[i][j]
return max(dp[m-1][n-1], dp2[m-1][n-1])
可以看出,虽然在函数的应用上有差异,但都很好地解决了这个问题,单纯代码行数来看,貌似copilot的还更精简。
释放资源
完成体验后,一定要记得释放掉所创建的资源,避免产生不必的费用。如下:
针对操作中使用的AccessKey如果后期不再使用,这里也需要释放掉。先对key进行禁用,如下:
点击禁用,禁用会触发安全认证,输入验证码完成认证。之后点击删除,如下:
在弹出的确认框中,输入AccessKey的ID,点击删除即可。如下:
体验总结
产品体验
1)我是一名开发兼项目管理人员,主要负责后端服务的开发和维护、项目需求的交流以及文案的写作。在体验OS Copilot过程中,它给我的整体感受还是非常不错的。首先,它可以帮助我快速理解新的操作系统特性或配置,尤其是对一些命令用法记得不是很准确的情况下,用Copilot就可以非常准备给出答复,特别是在面对复杂的系统架构或云服务时。其次,对于系统调优和性能分析,OS Copilot如果能提供智能建议或预测潜在问题,将极大地提高我的工作效率。最后,在编写涉及系统级编程或底层优化的代码时,它能够提供即时的API参考或最佳实践建议,减少因错误配置或不当实现导致的性能瓶颈。
2)就新人上手而言,我认为OS Copilot的初始体验注重简洁性和直观性。因为它不仅提供了清晰的引导流程,还辅以了易于理解的示例和文档。此外,界面呈现基于shell,也很友好、功能布局也较合理。指引文档详细且针对性强,覆盖了常见问题和场景,能够大大降低使用者的学习曲线。当下唯一的不足就是支持的底层操作系统非常有限,期待后期有更多的系统能够使用上。
3)依据上述对OS Copilot的实际体验,它在理解系统特性、调优分析、代码编写等方面可以给我提供实质性的帮助,对我的工作帮助是巨大的。基于此,我愿意给予它8.5分的高评价(满分10分),因为它不仅提高了我的工作效率,还可能减少因人为错误导致的系统问题。
4)我非常愿意向周边朋友和工作伙伴推荐OS Copilot,特别是那些在日常工作中需要频繁与操作系统打交道、进行系统开发和维护的同事。我相信他们也会从这款工具中受益良多。如果OS Copilot选择开源,并且社区活跃、贡献流程清晰,我有兴趣参与进来,无论是贡献代码、改进文档,还是参与OS领域大模型的训练等更高级别的任务。这不仅能够让我更深入地了解和学习相关技术,还能为开源社区贡献自己的一份力量。
功能反馈
1)体验的功能:在体验OS Copilot的过程中,我对知识问答功能最为感兴趣。这是因为作为开发人员,我经常需要快速查找和理解操作系统的各种概念、最佳实践以及配置方法。OS Copilot的知识问答功能能够即时提供准确且相关的答案,极大地提高了我的工作效率。此外,辅助编程功能也给我留下了深刻印象,它能够在编写系统级代码时提供API参考和代码片段,帮助我避免常见的错误。
2)与其他产品的对比:我体验过其他类似的产品,如IDE中的智能提示工具、云服务的控制台助手等。相比之下,OS Copilot的优势在于深度的系统级知识以及强大的辅助编程能力。它不仅仅是一个简单的查询工具,还能在开发过程中提供实质性的帮助。然而,目前市场上可能没有哪款产品能够完全覆盖OS Copilot的所有功能,因此它的独特之处在于其综合性和深度。
3)希望扩展的功能:我希望OS Copilot能够扩展以下几个方面的功能:
- 支持更多的操作系统:以便更广泛地应用于不同的开发环境。
- 自动命令报错原因分析:在执行系统命令时,如果出现错误,能够自动分析并给出可能的原因和解决方案。
- 系统错误排查:提供一套系统化的错误排查流程或工具,帮助用户快速定位并解决系统问题。
- 性能优化建议:根据系统运行状态和配置,提供性能优化的建议或方案。
- 集成开发环境(IDE)插件:为流行的IDE提供插件支持,以便更紧密地集成到开发流程中。
4)与其他产品的联动组合:
- 与ACK智能助手联动:在阿里云容器服务(ACK)中,OS Copilot可以作为智能助手的一部分,帮助用户更好地理解和配置容器集群的底层系统。例如,在配置集群参数、优化资源分配或排查系统问题时,OS Copilot可以提供实时的建议和帮助。
- 与ECS(弹性计算服务)结合:在ECS实例的管理中,OS Copilot可以辅助用户进行系统的初始化配置、安全加固、性能监控和调优等工作。同时,它还可以与ECS的监控系统相结合,为用户提供更全面的系统健康状态和性能分析报告。
- 与Workbench(工作台)集成:在云开发环境中,如阿里云Workbench,OS Copilot可以作为一个内置的助手工具,为开发者提供从代码编写到系统部署的全流程支持。它可以在用户编写代码时提供智能提示和语法检查,在系统部署时协助用户配置和调试系统环境。