【最新】半小时教你制作出属于自己的QQ机器人【保姆级】

前言

相信大家都有在QQ群见过QQ机器人,可以玩游戏、推送当日天气情况等。本文将基于nonebot2和go-cqhttp构建一个自定义的QQ机器人。

QQ机器人功能展示

查询天气
在这里插入图片描述

微博博文
在这里插入图片描述

制作表情包
在这里插入图片描述

一、安装nonebot2

请确保你的电脑上要安装了Python的开发环境,没有安装的看这条:如何在VScode上配置Python的开发环境?
请确保你的Python版本>=3.8

nonebot2介绍: NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求实现提供便捷灵活的支持。

文档网址:https://nb2.baka.icu/docs/

安装步骤

在电脑左下角搜索cmd并打开,接下来将在cmd输入命令来进行安装。
1、安装NoneBot2

安装 nb-cli,NoneBot2 会作为其依赖被一起安装

pip install nb-cli

2、安装驱动器

查看所有驱动器

nb driver list

输出

FastAPI ()                  - FastAPI 驱动器
Quart (quart)               - Quart 驱动器
HTTPX (httpx)               - HTTPX 驱动器
websockets (websockets)     - websockets 驱动器
AIOHTTP (aiohttp)           - AIOHTTP 驱动器

安装HTTPX驱动器,这是我们目前所需要的

nb driver install httpx

3、安装协议适配器

查看所有协议适配器

nb adapter list

输出

OneBot V11 (nonebot-adapter-onebot)     - OneBot V11 协议
钉钉 (nonebot-adapter-ding)             - 钉钉协议
飞书 (nonebot-adapter-feishu)           - 飞书协议
Telegram (nonebot-adapter-telegram)     - Telegram 协议
QQ 频道 (nonebot-adapter-qqguild)       - QQ 频道官方机器人
开黑啦 (nonebot-adapter-kaiheila)       - 开黑啦协议适配
mirai2 (nonebot_adapter_mirai2)         - 为 nonebot2 添加 mirai_api_http2.x的兼容
                                          适配器
OneBot V12 (nonebot-adapter-onebot)     - OneBot V12 协议
Console (nonebot-adapter-console)       - 基于终端的交互式适配器
GitHub (nonebot-adapter-github)         - GitHub APP & OAuth APP integration
Ntchat (nonebot-adapter-ntchat)         - pc hook的微信客户端适配

安装协议适配器,目前只需要onebot

nb adapter install nonebot-adapter-onebot

4、安装第三方插件

就是安装别人制作的机器人功能插件,现阶段可以不下载,之后想下哪个下哪个

查看所有发布的插件

nb plugin list

输出

nonebot物联网插件 (nonebot-plugin-iot)                                                            - 为nonebot接入物联网提供方案,目前支持天猫精灵终端,后续会增加
BWIKI助手移植版 (nonebot-plugin-bwiki-navigator)                                                  - BWIKI助手机器人Nonebot2插件移植版
漂流瓶 (nonebot-plugin-bottle)                                                                    - 群与群互通的漂流瓶插件
gal角色语音生成 (nonebot-plugin-tts-gal)                                                          - 能够根据发送角色名和文本生成对应角色语音
阿里云盘福利码自动兑换 (nonebot-plugin-alicdk-get)                                                - 基于nonebot2与aligo的阿里云盘兑换码自动获取和兑换插件。
PicStatus (nonebot-plugin-picstatus)                                                              - 服务器运行状态图片版
图灵机器人 (nonebot-plugin-tuling)                                                                - 接入图灵机器人做聊天
在线编曲 (nonebot_plugin_makemidi)                                                                - 发送简谱生成音乐
文字识别 (nonebot-plugin-ocr)                                                                     - 识别图片中的文字
监听者 (nonebot-plugin-listener)                                                                  - 监听指定消息并转发到指定群
BiliRequestAll (nonebot-plugin-BiliRequestAll)                                                    - 通过B站UID审核入群
真白萌自动签到 (nonebot-plugin-masiro)                                                            - 帮你每天在真白萌签到,助力成为二次元婆罗门!
轮盘禁言小游戏 (nonebot-plugin-russian-ban)                                                       - 轮盘禁言小游戏,附送快捷禁言/解禁
监测群事件 (nonebot-plugin-monitor)                                                               - 监测群成员变动、文件上传、红包运气王、管理员变动等等...

有很多,自行下载

nb plugin install <plugin-name>

比如下载上面输出的最后一个插件——检测群事件

nb plugin install nonebot-plugin-monitor

建立一个新的机器人项目

1、新建项目

在cmd输入

nb create

回车后会出现以下界面
输入项目名称,我的是QQBot

Project Name: QQBot

哪里存储插件,这里选择src下放插件,↑键和↓键移动,回车(Enter)确定

Where to store the plugin? 2) In a "src" folder

选择哪个内置插件,这里选择echo,↑键和↓键移动,空格(Spare)选择,回车(Enter)确定,一定要你选完后面出现echo才是选中了

Which builtin plugin(s) would you like to use? echo

选择哪个适配器,这里选择OneBot V11,↑键和↓键移动,空格(Spare)选择,回车(Enter)确定,一定要你选完后面出现OneBot V11才是选中了

Which adapter(s) would you like to use? OneBot V11

和我一样选就好
填完回车后当前目录下会出现一个名为QQbot(就是你起的项目名称)的文件,打开该文件

2、修改文件配置

该文件的结构
在这里插入图片描述
跑一下bot.py
在这里插入图片描述
运行成功,接下来我们修改一下配置

.env文件 [必改]

在这里插入图片描述

原本

ENVIRONMENT=dev

修改为

ENVIRONMENT=prod

.env.prod文件 [可选]
这里是配置你连接的端口号,默认8080,想改就改,不改就不管
在这里插入图片描述

二、安装go-cqhttp

go-cqhttp介绍: 使用 mirai 以及 MiraiGo 开发的 cqhttp golang 原生实现。

官方文档网址: https://docs.go-cqhttp.org/

github地址:https://github.com/Mrs4s/go-cqhttp/releases

安装步骤

请直接点击github地址下载go-cqhttp:
在这里插入图片描述
Windows系统直接下载go-cqhttp_windows_amd64.zip
在这里插入图片描述
下载完后解压,里面会有这三个文件
在这里插入图片描述
点击运行go-cqhttp.exe,可能会有些电脑保护不让运行,那么就在当前目录下右键,打开power shell
在这里插入图片描述
在打开的终端中输入

.\go-cqhttp.exe

在输出中选择 3
![在这里插入图片描述](https://img-blog.csdnimg.cn/3f7e59e4a5b14a1cbd16b2b8567b5310.png

回车后会生成一个配置文件
在这里插入图片描述
此时我们的文件夹多出来的config.yml这个文件就是配置文件
在这里插入图片描述

修改配置

打开config.yml文件(可以右键直接用记事本打开)
在这里插入图片描述
最前面就是配置你的qq账号,可以不管,运行的时候就会直接扫码登陆

直接划到文件的最底下,找到反向ws配置
在这里插入图片描述

将universal修改为上图中的

ws://127.0.0.1:8080/onebot/v11/ws/

保存,退出,再次运行go-cqhttp.exe
没有配置密码直接扫码登陆
在这里插入图片描述
扫码成功登陆
在这里插入图片描述

三、使用

go-cqhttp成功登陆后不要关闭窗口,再次运行bot.py,直至连接成功
在这里插入图片描述
恭喜!!!你的机器人已经配置完成,可以运行啦!

发送

/echo 你好

测试你的机器人
在这里插入图片描述
接下来就是给你的机器人多加点功能插件,可以自己写,也可以直接用别人的(上面提到的直接在商店下载),我将在接下来的文章里讲解如何制作插件和分享我自己写的插件。
下文:【保姆级】QQ机器人插件

  • 40
    点赞
  • 349
    收藏
    觉得还不错? 一键收藏
  • 55
    评论
功能简介: 1. 过滤重复签到——群员发送签到语,机器人自动提示签到顺位,每位群员一天内只能签到一次。 2. 自定义签到词——群主可自定义签到词,如设置"我来了",则当群员发送"我来了"即可实现签到。 3. 自定义签到提示——当成员发送签到语以后,系统自动发送签到成功的提示,提示内容可自定义。 4. 自定义签到时间——群主可自定义签到时间,如设置每天在8:00-20:00签到有效,则其余时间无效。 5. 自定义签到名额——群主可设置每天的签到有效名额,如果设置为0,则表示不限制签到名额。 6. 积分和等级规则——群主可以自定义不同签到顺位的积分,以及根据累计积分设置不同等级称号。 7. 月累计签到奖励——群员每个月累计签到一定的天数可以获得月累计奖励,群主可自行设置奖励。 8. 连续签到奖励——群员连续签到5天,10天,15天,20天,依次类推,可以获得连续签到奖励。 9. 随机签到奖励——群主可每天设置一个随机名次,当某个群员正好是这个名次签到可获得随机奖励。 10.签到记录不清零——重启软件后,当天的签到名次不会还原从零开始,而是接着重启前的名次排序。 11.个人签到记录查询——可在后台查询本人在某个月的每天签到记录,记录包括签到时间和签到顺位。 12.群员签到记录查询——可在后台查询本群所有成员某一天的签到全记录,包括签到人,时间和顺位。
QQ机器⼈制作程,超详细 ⽬录 完整项⽬包括框架、代码和详细使⽤说明可以去链接下载(下载完只需要按照使⽤说明修改⼏处地⽅即可搭建成功!): 最新功能请看第⼆篇⽂章: 前期准备 1、机器⼈框架的下载和配置 (1)⾸先需要⼀个qq机器⼈框架,我使⽤的是基于mirai 以及 MiraiGo 开发的(⾥⾯有开发⽂档)。 windows推荐下载这个,linux我没试过⾃⼰去看⽂档哈。 下载后解压得到三个⽂件。 (2)双击exe⽂件,现如下窗⼝,⼀直点击确定就⾏了(3次): 然后会⽣成⼀个批处理⽂件,双击它(以后也是直接⽤它) 输⼊0后回车,然后关闭,此时已经在原来的⽂件⽬录下⽣成了配置⽂件config.yml。 (3)双击config.yml,输⼊QQ号和密码(建议使⽤⽆登录保护的qq,否则可能现滑块验证等问题)。 也可以不输⼊账号密码,直接运⾏那个bat⽂件会现⼆维码扫码登录,这样更加安全。 再转到最后两⾏,把前⾯的#去掉使其⽣效。(很重要!!很重要!!) (4)配置完后直接双击bat⽂件。等待⼀段时间现如下窗⼝: 这两个端⼝都应该现(很重要): 更多问题请看。 补充:窗⼝可能会⼀直现如下警告(这个不需要管,是正常现象): 窗⼝会⼀直显⽰接收到信息,不要关闭。 2、python的配置和安装 电脑没有python环境或者觉得配置太⿇烦可直接购买exe版本,只要有电脑就可以运⾏。 同样⾥⾯都有使⽤说明,配置更加⽅便 要实现⾃动回复功能的机器⼈需要借助⼀种语⾔,我选择的是python。 所以需要电脑配置好python环境和安装集成开发环境pycharm。安装程可以看我的⽂章—>>> 当然在实现所有功能之前需要安装⼀些第三⽅库,这个不知道的也可以百度。 具体实现 1、发送信息 这包括发送私聊信息和发送群聊信息。下⾯的函数已经写好了,直接调⽤函数传⼊参数就⾏了。 import socket def send_msg(resp_dict): client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ip = '127.0.0.1' client.connect((ip, 5700)) msg_type = resp_dict['msg_type'] # 回复类型(群聊/私聊) number = resp_dict['number'] # 回复账号(群号/好友号) msg = resp_dict['msg'] # 要回复的消息 # 将字符中的特殊字符进⾏url编码 msg = msg.replace(" ", "%20") msg = msg.replace("\n", "%0a") if msg_type == 'group': payload = "GET /send_group_msg?group_id=" + str( number) + "&message=" + msg + " HTTP/1.1\r\nHost:" + ip + ":5700\r\nConnection: close\r\n\r\n" elif msg_type == 'private': payload = "GET /send_private_msg?user_id=" + str( number) + "&message=" + msg + " HTTP/1.1\r\nHost:" + ip + ":5700\r\nConnection: close\r\n\r\n" print("发送" + payload) client.send(payload.encode("utf-8")) client.close() return 0 (1)⽐如发送私聊信息(QQ⽤接收者的): resp_dict={'msg_type':'private','number':QQ号,'msg':'你好'} send_msg(resp_dict) (2)发送群聊信息(群号⾃⼰⽤⼀个): send_msg({'msg_type': 'group', 'number': QQ群号, 'msg': '⼤家好'}) (3)当然不⽌发送⽂本信息,还可以发表情、图⽚、⾳乐等。还可以艾特某⼈。 例如:发表情 send_msg({'msg_type': 'group', 'number': QQ群号, 'msg': '[CQ:shake]'}) 发窗⼝抖动 send_msg({'msg_type': 'group', 'number': QQ群号, 'msg': '[CQ:shake]'}) 2、获取群成员列表 import requests def get_group(id): response = requests.pos
感谢您的提问!以下是手把手您搭建属于自己的PyQt5-YOLOv5目标检测平台的保姆程: 1. 安装Anaconda 首先,您需要下载并安装Anaconda,Anaconda是一个 Python 数据科学平台,包含了许多常用的数据科学包,如Numpy、Pandas等。 2. 创建一个虚拟环境 在安装了Anaconda之后,您需要创建一个虚拟环境,以便隔离开发环境和系统环境。您可以在命令行中输入以下命令来创建一个名为yolov5的虚拟环境: ``` conda create -n yolov5 python=3.8 ``` 其中,“yolov5”是您的虚拟环境的名称,您可以根据自己的需要进行更改。 3. 激活虚拟环境 创建完虚拟环境之后,您需要激活它,以便在环境中进行开发。在命令行中输入以下命令来激活yolov5环境: ``` conda activate yolov5 ``` 4. 安装PyQt5和YOLOv5 在激活了虚拟环境之后,您需要安装PyQt5和YOLOv5。您可以在命令行中输入以下命令来安装它们: ``` pip install PyQt5 pip install yolov5 ``` 5. 创建PyQt5界面 在安装了PyQt5之后,您可以使用Qt Designer创建一个PyQt5界面。Qt Designer是一个可视化的界面设计工具,可以让您轻松地创建PyQt5界面。 6. 使用YOLOv5进行目标检测 在安装了YOLOv5之后,您可以使用它进行目标检测。您可以在Python脚本中使用以下代码: ```python import torch from yolov5.models.experimental import attempt_load from yolov5.utils.torch_utils import select_device device = select_device('cpu') model = attempt_load('yolov5s.pt', map_location=device) img = torch.zeros((1, 3, 640, 640), device=device) pred = model(img) print(pred) ``` 其中,“yolov5s.pt”是YOLOv5的预训练模型,您可以在YOLOv5的GitHub页面上下载它。 7. 将PyQt5界面与YOLOv5集成 最后,您需要将PyQt5界面与YOLOv5集成起来,以便您可以在界面上使用YOLOv5进行目标检测。您可以在Python脚本中使用以下代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtGui import QPixmap from yolov5.models.experimental import attempt_load from yolov5.utils.torch_utils import select_device class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('PyQt5-YOLOv5目标检测平台') self.setGeometry(100, 100, 800, 600) self.label = QLabel(self) self.label.setGeometry(50, 50, 640, 480) self.show() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec_()) ``` 这段代码创建了一个名为“PyQt5-YOLOv5目标检测平台”的窗口,并在窗口上添加了一个标签。您可以使用这个标签来显示检测到的目标。 以上就是手把手您搭建属于自己的PyQt5-YOLOv5目标检测平台的保姆程。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值