最近闲来无事,东抄西学做了一个机器人,在这里记录一下制作的过程,之后就得考研了,不知道能不能考上(万一呢),考上了选的方向当然是人工智能方向的啦,现在记录自己制作过程,如果之后又一时兴起了,至少还可以做一个参考,虽然是一个简单的机器人,机器学习近乎没有(其实试过vits),但至少是能跑的机器人了!

下载脚手架(前提是你安装了python)

pip install nb-cli

或者

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple nb-cli

如果下载失败试试换个python版本,3.8是可以下载的 (win+r cmd下载)

下载go-cqhttp

go-cqhttp地址:https://docs.go-cqhttp.org,选择对应版本的下载

解压后创建一个txt文档,写上

%Created by go-cqhttp. DO NOT EDIT ME!%
start cmd /K "go-cqhttp.exe"

之后,后缀名改为run.bat,以后开启go-cqhttp直接用.bat就可以了

或者

按照文档里面的双击exe文件运行,自动生成.bat文件(我没试过)

运行后选择3.反向Websocket通信(3回车),之后就会有配置文件了

配置

在config.yml里面

qq账号:uin,填入作为机器人的qq

密码:password,可填可不填,不填写则开启后会扫码登录

改universal为 ws://127.0.0.1:9070/onebot/v11/ws这样,9070为端口号,这个端口号之后要与机器人配置的端口号一致,建议越大越好,但是是有范围的最大60000

创建机器人

在你希望存机器人的文件夹的地址栏,清空后输入cmd,之后nb create回车

之后project name:机器人名字,选择in src folder,按空格选echo,空格选择onebot v11之后等待建立bot的文件

配置机器人

.env里面输入

ENVIRONMENT=prod

其实dev也可以,只是习惯而已,prod为在.env.prod文件里面读取你的配置信息,dev在.dev文件里面读取你的配置信息(没有就新建一个)

里面在对应的配置文件里面写入

HOST=127.0.0.1
PORT=9070 # 端口
SUPERUSER=[""] # 超级用户
NICKNAME=["aaaa"] # 机器人名字
COMMAND_START=['/'] # 命令符

host与端口要和之前的你在go-cq里面写的端口和host一致

输入命令则为/echo这样

之后在地址栏输入cmd,python bot.py回车,并且开启go-cq就可以连接机器人了

可以输入/echo 123,机器人回复123就是成功了

写机器人的回复模块(当然我写的内容肯定不会放出来的)

在机器人文件夹下的/src/plugins文件夹里面新建一个文件夹test,并在新文件夹里面建立__init__.py文件,用来写模块

之后再打开bot.py文件,里面加上

nonebot.load_plugin("src/plugins")

就可以把plugins里面的所有模块加入到机器人里面了

当然也可以再nonebot的官方网站商店里面下载模块之后像如下方式引用

nonebot.load_plugin("nonebot_plugin_what2eat")

打开刚才的__init__.py文件

import random
from datetime import date
from nonebot.plugin import on_keyword
from nonebot.adapters.onebot.v11 import Bot, Event
from nonebot.adapters.onebot.v11.message import Message,MessageSegment
from nonebot.plugin import on_regex
from nonebot.plugin import on_message
from datetime import datetime
from nonebot import on_command, require, get_bots#自定义回复词典,匹配到一模一样的字后就会回复
reply_dic = {'你好': '你好' ,
}reply = on_message(priority=100)
@reply.handle()
async def reply_handle(bot: Bot, event: Event):user_msg = str(event.get_message()).strip()#对输入进行判断并处理try:reply_msg = reply_dic[user_msg]await reply.finish(reply_msg)except KeyError:await reply.finish()#on_keyword,检查到有关键字就回复
#finish为回复后就关闭对话,如果之后还想发送则改为send
#CQ码可以根据官方文档写其他的sure = on_keyword(['我确定'],priority=100)
@sure.handle()
async def sure_handle(bot: Bot, event: Event):await sure.finish(Message(f'[CQ:at,qq={event.get_user_id()}]这样的话那我祝你做个好梦吧!'))#on_command,输入时候要/初次见面才可以发送回复
#[CQ:image,file=file:///D:/xxx/xx/x.jpg]发送图片into = on_command('初次见面')
@into.handle()
async def into_handle(bot: Bot, event:GroupMessageEvent):await into.finish(Message(f'[CQ:at,qq={event.get_user_id()}]你好'))#on_regex匹配正则之前要from nonebot.plugin import on_regexr
#如果要用变量则用{}如:您做出{event.get_message()}行动setu = on_regex("^涩图$|^setu$|^无内鬼$|^色图$|^涩图tag.+$|^涩涩$")
@setu.handle()
async def setu_handle(bot: Bot, event:GroupMessageEvent):await setu.send(Message(f'[CQ:image,file=file:///D:/xxx/xx/1/x.jpg]'))

主义priority是越小权限越大,如果有两个匹配的,只会发权限大的,如果一样则两个都发,这样就造成了笨笨机器人了

如何基于nonebot2做一个q群机器人相关推荐

  1. 从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜

    从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜 目录 从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜 安装步骤 使用方法 退出方法 启用方法 参考链接 安装步骤 安装步 ...

  2. 2021-09-29破解小米“铁蛋”,只需9999元,你也可以做一个四足机器人!

    https://www.eet-china.com/news/202109291008.html 2021-09-29破解小米"铁蛋",只需9999元,你也可以做一个四足机器人! ...

  3. 用 Python 做一个 H5 游戏机器人

    原文地址:Creating An HTML5 Game Bot Using Python 原文作者:vesche 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- ...

  4. 基于SSH2做一个24小时订单分析表格

    基于SSH2做一个24小时订单分析表格 以下为要实现的最终效果截图: ps:没有时间优化前段页面样式,对前段美化有要求的小伙伴可以自行引用BOOtStrap.esayUi 或者 layUi 自行优化. ...

  5. 如何做一个人工智能聊天机器人的毕业设计

    毕业设计是大学生的必修课程之一.许多学生在毕业设计中选择了人工智能方向的课题.人工智能聊天机器人是一个很好的毕业设计课题.它涉及到自然语言处理.机器学习.深度学习等人工智能的核心技术.做好一个聊天机器 ...

  6. 妖帝q群机器人_有关酷Q 晨风机器人,契约 qqlite qqlight ,mypc等QQ机器人关停一事的一点想法...

    估计有不少朋友都使用过QQ机器人,因为很多网友每天都要管理很多个QQ交流群,如果一个人管理,估计都得累死,所以一般都会使用QQ机器人来帮助自己管理. 只是腾讯自身的QQ机器人实在不给力,功能太鸡肋,而 ...

  7. 手把手教你定制一个夸夸群机器人

    2019年3月,三八妇女节送女友什么礼物好?最近有女网友在网上吐槽,男友把她拉进百人群,群友整整夸了她三分钟."他说是某宝上卖的夸夸群,这种沙雕男朋友还留着么?" 夸人还能挣钱?你 ...

  8. 用wxpy做一个微信聊天机器人(详解)

    用python写一个微信聊天机器人可以利用python中的wxpy库或者itchat模块,我在网上看到好多都是使用的itchat,但是我这里使用的是wxpy库,wxpy 在 itchat 的基础上,通 ...

  9. Q群机器人--C语言零基础也能拥有

    其实这个没什么,没有编码,安装个软件就ok,再就是舍得花钱 要是不舍得花钱,又想要,恰巧技术给力,自己写啊! 这还用说吗 可是想想,你会写还点进来干嘛! 我也不敢说话,咋也不敢问 图灵机器人,给自己Q ...

最新文章

  1. HDU 6229 Wandering Robots 找规律+离散化
  2. 用mpvue实现的微信小程序版cnode社区
  3. netframework转core时文件响应流问题
  4. 阿里新生的面试经,与老人分享的职业进阶攻略及规划
  5. vue怎么引入js文件_Vue核心知识:8.3 vuex在vue-cli中的应用,文件之间的导出与引入...
  6. JNI实现源码分析【四 函数调用】
  7. iOS使用UIBezierPath实现ProgressView
  8. 最初版本的simplecall是如何把2个callleg连起来的
  9. python绘制正态分布函数_Python数据清洗(三):异常值识别与处理
  10. 基于OHCI的USB主机 —— USB设备其它数据结构
  11. html前端简单页面,html网页设计:一个简单的登录界面代码!
  12. 关于Win10系统-svchost大量占用网速及自动更新问题——完美解决
  13. 用Desmos玩极坐标
  14. weui popup的使用
  15. canvas教程大纲
  16. PS(简单操作) 单张图片制作九宫格/证件照排版
  17. 第六章 样本与抽样分布
  18. 欧暇·地中海酒店深圳再布局 深圳国际会展中心和平店进入试营业
  19. 微信域名防红防封系统,轻松微信推广域名被屏蔽问题
  20. Android 消息推送框架详解

热门文章

  1. 有生之年转ta系列2.1色彩空间
  2. 机房计算机课提交作业,学生提交电子作业的实现方案一例 面试后要求提交方案...
  3. 如何快速查找并删除手机上的重复文件
  4. 室内定位常用定位技术_米级蓝牙定位方案,厘米级UWB定位方案
  5. CAD转换器,转换JPG图片
  6. vl_Feat---vl_slic的使用
  7. 心理学与计算机应用,心理学可以和计算机结合做些什么么?
  8. 电商购物网站 - 数据库设计
  9. STM32 HAL 驱动I2C总线0.91寸OLED模块(基于SSD1306显示驱动芯片)
  10. 足球游戏论坛数据分析--简单粗暴的K均值聚类