云产品评测|操作系统智能助手OS Copilot新功能

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 我是一名测试工程师,主要负责App和Web端的测试,有时会使用阿里云服务器进行服务端问题定位及数据库等云资源的操作。在使用OS Copilot过程中遇到了一些问题:1. **命令执行失败**:在解决Vim中文乱码时,Copilot建议的命令看似正确,但实际并未创建或修改`.vimrc`文件。2. **任务文件解析问题**:使用`-f`功能解析任务文件时,Copilot未能正确执行获取容器日志的任务。3. **管道功能不稳定**:管道功能对文件内容解释有效,但在某些情况下需要更明确的提示词才能正常工作。

我是一位测试工程师,我平时工作内容为App测试和Web端测试,有时会涉及使用阿里云服务器,定位服务端问题,也会使用数据库等云资源。

我比较顺利使用了 OS Copilot的 -t/-f/管道 功能,我的疑问是, Copilot为什么无法识别系统已安装了 Docker。

image.png

以下是详细的使用过程:

1. -t 功能测试

co 容器base-baplatform中最近1天的错误日志 -t

运行后发现 Copilot提示需要安装 Docker,但实际上机器上已经安装好了,提示重复安装。这里出现了识别错误,手动中断任务。


[Copilot]: 
要获取容器 base-baplatform 最近一天的错误日志,可以使用 docker logs 命令。但是,由于用户使用的系统是 CentOS 7,可能需要先确保 Docker 已经安装并且正在运行。                                                          
docker

[Copilot]: 
我现在知道需要安装 Docker。                                                                                                                                                                                          

[Copilot]: 确认执行该命令[sudo dnf install -y docker]
该命令存在风险,需要root权限进行执行。请手动确认是否执行该命令。

输入(y/n)以确认执行
请输入: y
正在执行: sudo dnf install -y docker -y
Error: sudo: dnf: command not found


[Copilot]: 
Docker 没有安装,并且 dnf 命令也不存在。CentOS 7 默认使用 yum 进行包管理。因此,我需要使用 yum 来安装 Docker。                                                                                                       
OS Copilot需要执行命令:[sudo yum install -y docker] 以推进任务,是否允许执行?请输入(y/n):^C
接收到KeyboardInterrupt信息,[Copilot]已停止回答。

这里有一点令人担心的是,如果 Copilot 给出了错误答案,但使用人员没有注意,误操作确认的话,很可能造成混乱,甚至导致服务器无法正常使用,这是需要想办法规避的。

测试第二个出现的问题:

co vim中文乱码 -t

[Copilot]: 
中文乱码问题通常是由于Vim的编码设置不正确引起的。你可以尝试以下步骤来解决这个问题:                                                                                                                                  

 1 检查当前的编码设置:                                                                                                                                                                                              

    vim                                                                                                                                                                                                              
    :set fileencoding                                                                                                                                                                                                
    :set encoding                                                                                                                                                                                                    
    :set termencoding                                                                                                                                                                                                

 2 设置正确的编码: 在Vim中,你可以临时设置编码:                                                                                                                                                                    

    :set fileencoding=utf-8                                                                                                                                                                                          
    :set encoding=utf-8                                                                                                                                                                                              
    :set termencoding=utf-8                                                                                                                                                                                          

 3 永久设置编码: 为了永久解决这个问题,可以在Vim的配置文件(~/.vimrc)中添加以下内容:                                                                                                                              

    echo "set fileencoding=utf-8" >> ~/.vimrc                                                                                                                                                                        
    echo "set encoding=utf-8" >> ~/.vimrc                                                                                                                                                                            
    echo "set termencoding=utf-8" >> ~/.vimrc                                                                                                                                                                        

 4 重启Vim: 保存并退出Vim,然后重新打开Vim,看看问题是否解决。                                                                                                                                                      

如果以上步骤仍然不能解决问题,请确保你的终端也支持UTF-8编码。你可以通过以下命令检查终端的编码设置:                                                                                                                  


 locale                                                                                                                                                                                                              


希望这些步骤能帮助你解决中文乱码问题。如果有其他问题,请随时告诉我。                                                                                                                                                 

[Copilot]发现如下命令: 
    1. vim
          :set fileencoding
          :set encoding
          :set termencoding
    2. :set fileencoding=utf-8
          :set encoding=utf-8
          :set termencoding=utf-8
    3. echo "set fileencoding=utf-8" >> ~/.vimrc
          echo "set encoding=utf-8" >> ~/.vimrc
          echo "set termencoding=utf-8" >> ~/.vimrc
    4. locale

[Copilot]: 请选择要执行的命令或者保存所有命令,从[s, 1, 4]中进行选择,回复's''save'进行保存,回复'n''no'进行取消,回复'r''retry'重新生成回答。
请输入: 3

[Copilot]: 确认执行该系列命令[
    echo "set fileencoding=utf-8" >> ~/.vimrc
       echo "set encoding=utf-8" >> ~/.vimrc
       echo "set termencoding=utf-8" >> ~/.vimrc
](y/n)
请输入: y
set fileencoding=utf-8 >> ~/.vimrc echo set encoding=utf-8 >> ~/.vimrc echo set termencoding=utf-8 >> ~/.vimrc

[Copilot]: 执行结束。

整个建议和配置看起来都没有问题,执行也正确,但是当 CO 执行结束时,查询文件 ~/.vimrc时,发现文件并不存在,也就是 Co 并没有真正执行命令。

cat ~/.vimrc
cat: /root/.vimrc: No such file or directory

2. -f 功能测试

cat task 增加以下文件配置

a.服务器已经安装了docker
b.使用docker命令查询容器base-baplatform容器最近1天的错误日志
c.打印上面的错误日志,并尝试给出原因和解决建议

使用命令 co -f task -t 解析文件并执行命令

[Copilot]: 
我需要先执行命令来获取容器base-baplatform最近1天的错误日志。这可以通过docker logs命令实现,加上适当的选项来过滤时间范围。

测试发现, Copilot 无法执行该任务。

3. 管道功能测试

找到一个 gitlab-ci的配置文件,但是当我使用以下命令时,co 无法正常运行

cat config.toml|co 这个文件配置了哪些内容

[Copilot]: 
您能告诉我您指的是哪个具体的文件吗?这样我才能够查看并告诉您它配置了哪些内容。

调整提示词以后,可以正常使用

cat config.toml | co 解释文件配置

这个文件看起来像是 GitLab Runner 的配置文件 config.toml。下面是对每个部分的详细解释:                                                                                                                                
                                                                                                      全局配置                                                                                                       

 concurrent = 2                                                                                                                                                                                                      
 check_interval = 0                                                                                                                                                                                                                                                                                                                                                                                                             

 • concurrent: 指定可以并行运行的最大任务数。这里设置为 2,意味着最多可以同时运行 2 个任务。                                                                                                                         
 • check_interval: 指定 GitLab Runner 检查新任务的频率(以秒为单位)。设置为 0 表示使用默认值。                                                                                                                      
                                                                                                   会话服务器配置                                                                                                    

 [session_server]                                                                                                                                                                                                    
   session_timeout = 1800                                                                                                                                                                                                                                                                                                                                                                                                      

 • session_timeout: 指定会话超时时间(以秒为单位)。这里设置为 1800 秒,即 30 分钟。                                                                                                                                 
                                                                                                     运行器配置                                                                                                      

 [[runners]]                                                                                                                                                                                                         
   name = "svc5"                                                                                                                                                                                                     
   url = "https://git.nicestwood.com/"                                                                                                                                                                               
   token = "J_xbM9j_k96ZwYVinKgu"                                                                                                                                                                                    
   executor = "docker"                                                                                                                                                                                                                                                                                                                                                                                                 

 • name: 运行器的名称,用于标识不同的运行器。                                                                                                                                                                        
 • url: GitLab 实例的 URL。                                                                                                                                                                                          
 • token: 注册运行器时生成的令牌,用于验证运行器的身份。                                                                                                                                                             
 • executor: 指定执行器类型,这里是 docker,表示使用 Docker 执行任务。                                                                                                                                               
                                                                                                   自定义构建目录                                                                                                    

 [runners.custom_build_dir]                                                                                                                                                                                                                                                                                                                                                                                                   

 • 这个部分可以用来配置自定义的构建目录,但在这个文件中没有具体的配置项。                                                                                                                                            

                                                                                                      缓存配置                                                                                                       

 [runners.cache]                                                                                                                                                                                                     
   [runners.cache.s3]                                                                                                                                                                                                
   [runners.cache.gcs]                                                                                                                                                                                               
   [runners.cache.azure]                                                                                                                                                                                                                                                                                                                                                                                        

 • runners.cache: 配置缓存的通用设置。                                                                                                                                                                               
 • runners.cache.s3, runners.cache.gcs, runners.cache.azure: 分别配置 S3、GCS 和 Azure 的缓存设置。在这个文件中没有具体的配置项。                                                                                    

                                                                                                  Docker 执行器配置
                                                                                                  ...


 • tls_verify: 是否验证 Docker 守护进程的 TLS 证书。设置为 false 表示不验证。                                                                                                                                        
 • image: 指定默认的 Docker 镜像。这里使用 alpine 镜像。                                                                                                                                                             
 • privileged: 是否以特权模式运行容器。设置为 true 表示启用特权模式。                                                                                                                                                
 • disable_entrypoint_overwrite: 是否禁用入口点覆盖。设置为 false 表示不禁用。                                                                                                                                       
 • oom_kill_disable: 是否禁用 OOM 杀手。设置为 false 表示不禁用。                                                                                                                                                    
 • disable_cache: 是否禁用缓存。设置为 false 表示不禁用。                                                                                                                                                            
 • volumes: 挂载的卷列表。这里挂载了多个卷,用于共享数据和缓存。                                                                                                                                                     
 • shm_size: 指定 /dev/shm 的大小。设置为 0 表示使用默认值。                                                                                                                                                         
 • extra_hosts: 添加额外的主机名解析。这里将 git.nicestwood.com 解析为 172.16.0.202。                                                                                                                                
 • pull_policy: 拉取镜像的策略。设置为 if-not-present 表示只有在本地不存在时才拉取镜像。                                                                                                                             

希望这些解释对你有帮助!如果你有任何其他问题,请随时提问。

这次 Copilot给出了正确答案,非常有用。

注意事项

一定要提前配置好 AK/SK,同时需要注意这个 AK 对应的权限,需要分配 AliyunSysOMOSCopilotAccess, 否则将会出现以下错误

Error: LLM connection fails.
Please check your ALIBABA_CLOUD_ACCESS_KEY configuration in your environment variables (e.g., ~/.bashrc), and source ~/.bashrc to activate.
export ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_KEY_ID"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_KEY_SECRET"
Once you've done the setup. Please retry. If you need support, please join the DingTalk Group [71050008820].

Or

Use a large language model through DASHSCOPE api, and
export LLM_SOURCE="dashscope"
export DASHSCOPE_API_KEY="YOUR_KEY"
export MODEL_NAME="MODEL_NAME"  # e.g., export MODEL_NAME="qwen-turbo"[Copilot]思考中..
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
62 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
2月前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
154 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
16天前
|
运维
云产品评测|用操作系统控制台,让运维更简单 获奖名单公布!
云产品评测|用操作系统控制台,让运维更简单 获奖名单公布!
|
2月前
云产品评测|操作系统智能助手OS Copilot新功能获奖名单公布!
云产品评测|操作系统智能助手OS Copilot新功能获奖名单公布!
154 9
|
5月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
178 0
Vanilla OS:下一代安全 Linux 发行版
|
2月前
|
运维 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
200 10
|
3月前
|
弹性计算 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot是由阿里云推出的操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行等功能,极大提升了Linux系统的使用效率。用户只需通过简单的命令或自然语言描述问题,OS Copilot即可快速提供解决方案并执行相应操作。例如,查询磁盘使用量等常见任务变得轻松快捷。此外,它还支持从文件读取复杂任务定义,进一步简化了操作流程。虽然在某些模式下可能存在小问题,但总体上大大节省了学习和操作时间,提高了工作效率。
166 2
OS Copilot-操作系统智能助手-Linux新手小白的福音
|
3月前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
98 7
|
3月前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
130 6
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等