ECS部署qq聊天机器人心得体会

简介: 本文介绍了使用ECS部署qq聊天机器人的实践经历,也介绍了部署服务器的心得。

[toc]

自我介绍

我是中国地质大学(武汉)计算机学院研二的一名学生,在实习时候通过同事推荐知道了这个平台和“飞天加速计划·高校学生在家实践”活动。

在公司实习时候接触了很多linux的操作,然后突然想在qq群部署一个封装了游戏查询和日常生活相关查询功能的聊天机器人,但是机器人要在后台24h运行,总不可能用自己的电脑,于是就想到了使用云服务器。

自己其实在本科时期使用过阿里云搭建自己的个人博客、云盘、和毕设的一些相关服务,但是后来到期了,就再没接触了。现在了解到有阿里云的这个计划,就来试一试了,这次的资源比上次好很多,核、流量都比本科时期的最便宜服务器大了不少。

阿里云ECS使用攻略

服务器系统选择

在公司时候我使用的是Ubuntu 20.x版本,但是在服务器上我突然想选 最新的22.x版本。但是经历了一系列不兼容和报错之后,我还是决定使用稳定的20.x版本。所以推荐大家使用这个版本,这里的apt-get的镜像也很全,基本不需要自己调整。

服务器部署

作为一个Python Programmer,拿到服务器第一件事肯定是部署Anaconda,那么只需在官网下载最新版本的x86 linux.sh版本即可。

bash Anaconda3-2022.05-Linux-x86_64.sh

值得注意的是运行完安装脚本之后一定要配置环境变量。

vim ~/.bashrc
# 添加 export PATH=/root/anaconda3/bin:$PATHsource ~/.bashrc

我的项目比较特殊,是一个py 3.10的新项目,所以自然而然配置了3.10环境:

conda create -n bot python=3.10
conda activate bot

然后就直接从我的github链接里克隆了,这是一个使用和cqhttp捕获q群聊天内容,再通过nonebot2实现机器人部署,依赖playwright库展示html模板,再将文本内容以网页图片的形式展示。与此同时,由于自己也是一个小炼丹er,我把目前正热的NLLB和BLOOM模型结合自己基于GPT系列微调后的模型部署成了服务,然后通过网络接口传输给了机器人,这样一来,群友就可以和机器人快乐说话啦!


服务器使用TIPS

本地访问服务器

为了更好地debug,我在本地上安装了Tabby:

然后通过ssh链接就能很好地访问服务器、使用FTP传文件、多端编程。

image.png

这里的主机名就是大家领取服务器时候的主机,然后端口号就是默认的22就可以。image.png

vim使用

在服务器上进行debug,肯定离不开vim工具。

vim工具的使用网上很多资料,我比较常用的是:

  • 进入到功能操作前一定要先ESC退出文本编辑模式
  • :是命令开始的标记,可以接具体命令,比如:wq是保存退出,:q是退出,:q!是强制退出
  • 同时还有一些基本的操作,比如gg是回到开头,dd是删除整行,v是逐字选中,V是逐行选中,然后结合home 和 end,y复制,p粘贴,就能在服务器上实现基本的文本编辑功能。

debug tips

在ECS上debug其实略有困难,一般来说使用python的pdb:

python -m pdb *.py

然后通过pdb的一堆指令来调试,或者直接在代码里:

importpdbpdb.set_trace()

但是这样太麻烦,所以我一般使用print()来打印内存。

此外,当项目一大,代码一多,设置tab来保证缩进一直,用vim还比较麻烦。所以我选择通过频繁的git pull git push来实现本地机器上编辑文档,然后在服务器上运行。

后台运行文件

这个也算是linux的最基本操作,一般格式是:

nohup [the command you run] > [the log name] &

就可以后台运行文件,这样即使关掉了tabby页面也能继续运行。

而查看自己的文件状态,只需要通过下面命令即可:

tail -f [the log name]

debug心得

在使用服务器时,的确经历了不少bug。

  • apt-get安装某个工具失败:apt-get update或者apt-get upgrade解决
  • pip 失败:更换镜像源解决。
  • ssh链接不上服务器:检查用户名和密码,检查端口,检查防火墙
  • wget失败:检查是不是因为ssl规则拒绝,取消https为http
  • wget断点续存:wget -c,wget -b
  • ……

总结

目前我还是在实习阶段,为来不管是继续读博还是直接工作,只要还在互联网行业,不管是现在的算法岗还是未来的其他各种互联网岗位,都肯定离不开服务器的使用,离不开linux系统的使用。目前使用ECS的10天里,感觉到了服务器带来的各种方便。等以后经济条件和时间条件更加富裕,我会考虑更大的服务器,重新部署个人云盘、博客、搭建更有趣的联网服务:比如公开自己的NLP的API,写线上测试界面,比如装载一些小游戏等。如果有可能,我还想拥有一台自己的深度学习服务器。现在用公司的服务器真的太爽了,但我肯定不好用它部署自己的服务,等以后有了自己的,就没人和我抢gpu等计算资源和存储资源了!

经过这么多天的学习,每次使用ECS遇到不懂的问题和bug都会查询很多资料,现在已经能够熟练在ECS各种操作了,这为我的学习和科研都有了很多帮助。希望之后有机会实现自己的展望!

个人作品

我基于ECS搭建了一个qq群聊天机器人。

启动:

image.png

展示菜单:

image.png

NLP功能

我将自己在学校期间微调的NLP模型在学校服务器上联网并发布了api,然后对接到了自己的ECS服务器上。这个模型是基于GPT-J (6B参量)微调的巨大模型,由于我在微调阶段基于千种prompt让模型学会了包括但不限于翻译、对话、续写等多方面NLU任务,目前的机器人已经能够借助服务器顺利地回复群友发言。


image.png

image.png

外卖推荐功能和食谱查询功能

同时,还借助菜谱接口和基于爬虫的外卖获取方式实现了吃相关的推荐功能。

image.png

image.png

基于html和playwright的天气查询功能

我通过天气接口实现了天气查询,并根据html模板传值生成html文件,通过playwright部署到模拟浏览器中并获取图片文件。

image.png

基于jx3api的各种图文查询功能

同时,由于我玩剑网3,我也为其搭建了各种游戏必须的功能:

查询物价、金价、开服、攻略等。

image.png

image.png

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
弹性计算 监控 负载均衡
|
23天前
|
监控 安全 Linux
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第18天】在RHEL环境下部署Subversion服务器需依次完成安装Subversion、创建版本库、配置服务器、启动服务、客户端连接及备份维护等步骤。确保遵循安全最佳实践,保障数据安全。
|
27天前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
115 60
|
5天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
14天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
137 2
|
14天前
|
NoSQL Linux PHP
|
15天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
71 1
|
20天前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
34 1
|
24天前
|
安全 Linux 数据安全/隐私保护
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第17天】在RHEL环境下部署Subversion服务器包括安装Subversion、创建和配置版本库、启动服务器、客户端连接以及备份与恢复等步骤。通过这些步骤,可确保服务器的安全性和稳定性,满足版本控制需求。
|
26天前
|
前端开发 Java Shell
后端项目打包上传服务器部署运行记录
后端项目打包上传服务器部署运行记录
27 0

热门文章

最新文章