2025-02-20 09:33:58 +00:00
|
|
|
|
# SanYeCao-Nonebot
|
|
|
|
|
|
|
|
|
|
|
|
## 📚介绍
|
|
|
|
|
|
|
|
|
|
|
|
<p align="center">🌟三叶草bot 2.0🌟<br>
|
|
|
|
|
|
🚀使用Nonebot2+官方API搭建的QQ群聊机器人🚀<br><br>
|
|
|
|
|
|
<img alt="Static Badge" src="https://img.shields.io/badge/Python-3.11%2F3.12-blue">
|
|
|
|
|
|
<img alt="Static Badge" src="https://img.shields.io/badge/Nonebot-2.0-green">
|
|
|
|
|
|
<img src="https://img.shields.io/github/last-commit/ClovertaTheTrilobita/SanYeCao-Nonebot" alt="last-commit" />
|
|
|
|
|
|
<img alt="Static Badge" src="https://img.shields.io/badge/QQ%E7%BE%A4-710101225-orange"><br><br>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 🔖亮点
|
|
|
|
|
|
|
|
|
|
|
|
- 基于[Nonebot2](https://nonebot.dev/),使用[QQ官方API](https://bot.q.qq.com/wiki/),更稳定、高效✨
|
|
|
|
|
|
- 多种个性化用法,如天气、每日运势(~~机器人时尚单品~~)、点歌、编辑个人待办等,后续功能开发中🔧
|
|
|
|
|
|
- 使用轻量化数据库sqlite管理数据,实现为每位用户单独存取数据🔍
|
|
|
|
|
|
- 接入第三方大语言模型,实现AI交互💡
|
|
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
###### 我是菜比🏳️🏳️,纯新手写的python 问题肯定多 ,若有兴趣可以帮忙一起完善功能 <br>
|
|
|
|
|
|
###### QQ交流群:[710101225](https://qm.qq.com/q/AQyepzKUJq)
|
|
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
- ↑sly是代码领域大神, 👈 ClovertaTheTrilobita 写的
|
|
|
|
|
|
|
|
|
|
|
|
## 🌈目前功能:
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 待办
|
|
|
|
|
|
- [x] 天气
|
|
|
|
|
|
- [x] 今日运势
|
|
|
|
|
|
- [x] 今日塔罗
|
2025-03-04 03:10:23 +00:00
|
|
|
|
- [x] 点歌(网易云 需扫码登录 在 src\music 目录下)
|
2025-02-20 09:33:58 +00:00
|
|
|
|
- [x] 图(返回图库中的图片)
|
|
|
|
|
|
- [x] 摸摸头
|
|
|
|
|
|
- [x] 接入语言模型
|
|
|
|
|
|
- [x] 搜索B站视频
|
|
|
|
|
|
- [ ] 今日老婆
|
|
|
|
|
|
- [x] 群老婆
|
|
|
|
|
|
- [x] 鲁迅说
|
|
|
|
|
|
- [x] 喜报、悲报
|
|
|
|
|
|
- [x] 查询cf比赛
|
|
|
|
|
|
- [x] 日报
|
|
|
|
|
|
- [x] 查询热门轻小说
|
|
|
|
|
|
- [x] 获取新番信息
|
2025-03-04 03:10:23 +00:00
|
|
|
|
- [x] 绝对色感
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 19:16:16 +00:00
|
|
|
|
#### 更多详细功能请查看<b>[features.md](docs/features.md)</b>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 🛠️ 安装
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
> [!TIP]
|
|
|
|
|
|
>
|
|
|
|
|
|
> 关于Nonebot完整部署使用方法,请查看[官方文档](https://nonebot.dev/)
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### ⚙️一、环境配置
|
|
|
|
|
|
|
|
|
|
|
|
**我们强烈建议您使用虚拟环境**,若您使用Anaconda发行版,请在终端输入
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
conda create --name chatbot python=3.11
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
创建conda环境。
|
|
|
|
|
|
|
2025-02-23 13:29:21 +00:00
|
|
|
|
之后
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
conda activate chatbot
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-02-23 13:30:32 +00:00
|
|
|
|
以启用您刚刚创建的虚拟环境。
|
|
|
|
|
|
|
|
|
|
|
|
你也可以将上述 *chatbot* 更换为你喜欢的名字。
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
<b>🚫注意:</b>机器人<b>不</b>支持<img alt="Static Badge" src="https://img.shields.io/badge/Python-3.13/+-blue">,推荐使用<img alt="Static Badge" src="https://img.shields.io/badge/Python-3.11%2F3.12-blue">
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
### 🧪 二、安装所需依赖
|
2025-03-04 03:35:39 +00:00
|
|
|
|
|
2025-02-20 09:33:58 +00:00
|
|
|
|
此机器人运行所需依赖已全部打包至***requirements.txt***,您只需回到项目根目录
|
|
|
|
|
|
|
|
|
|
|
|
在终端输入:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
```
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
### ✒️ 三、配置所需文件
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
> [!CAUTION]
|
|
|
|
|
|
>
|
|
|
|
|
|
> **请一定要配置,否则bot无法启动**
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
|
|
|
|
|
在一切开始前,你需要将项目根目录下的[<b>example.env.prod</b>](example.env.prod)文件更名为<b><i>.env.prod</i></b>,这是机器人的账号配置文件。
|
|
|
|
|
|
|
2025-11-27 19:13:27 +00:00
|
|
|
|
我加了神必小代码,如果你没配置这两个配置文件是启动不起来的,因为有<span style="color:gray">~~海量~~</span>个例显示,很多人不看README就想当然地启动bot,并在群里问为什么会有报错(
|
|
|
|
|
|
|
2025-02-20 09:33:58 +00:00
|
|
|
|
```
|
|
|
|
|
|
DRIVER=~fastapi+~httpx+~websockets
|
|
|
|
|
|
|
|
|
|
|
|
QQ_IS_SANDBOX=false
|
|
|
|
|
|
|
|
|
|
|
|
QQ_BOTS="
|
|
|
|
|
|
[
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "xxx",
|
|
|
|
|
|
"token": "xxx",
|
|
|
|
|
|
"secret": "xxx",
|
|
|
|
|
|
"intent": {
|
|
|
|
|
|
"c2c_group_at_messages": true
|
|
|
|
|
|
},
|
|
|
|
|
|
"use_websocket": true
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
"
|
|
|
|
|
|
```
|
|
|
|
|
|
分别在id、token、secret处填写你的机器人ID,机器人Token和Apple Secret,需从[QQ开放平台](https://q.qq.com/)获取。
|
|
|
|
|
|
|
|
|
|
|
|
<br>
|
2025-03-20 13:03:45 +00:00
|
|
|
|
|
2025-11-27 19:13:27 +00:00
|
|
|
|
#### 📄 需要修改的配置文件
|
|
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
> [!IMPORTANT]
|
|
|
|
|
|
>
|
|
|
|
|
|
> **请一定要配置,否则bot功能会不完善**
|
2025-11-27 19:13:27 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
找到 [**example.config.yaml**](example.config.yaml) ,将其重命名为<b>config.yaml</b>
|
2025-03-17 07:13:40 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
并根据需要替换其配置项
|
2025-03-17 07:13:40 +00:00
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
### 🎵 四、网易云点歌依赖安装
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
#### 1. 安装 Node.js 环境
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
- **官网下载**:访问 [Node.js 官网](https://nodejs.org/) 下载 LTS 版本(推荐 v18.x+)
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
- **安装注意**:
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
- 勾选 `Add to PATH` 选项(自动配置环境变量)
|
|
|
|
|
|
- 完成安装后重启终端使配置生效
|
|
|
|
|
|
验证 Node.js 版本
|
2025-04-13 05:50:57 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
- **对于Debian/Ubuntu**
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
- 你可以直接用以下命令安装
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
```shell
|
|
|
|
|
|
sudo apt install nodejs npm
|
|
|
|
|
|
```
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
#### 2. 验证安装结果
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
```powershell
|
|
|
|
|
|
npm -v
|
2025-02-20 09:33:58 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
#### 3. 安装 crypto-js 库
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
在项目根目录执行:
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
```powershell
|
|
|
|
|
|
npm install crypto-js
|
2025-02-20 09:33:58 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
### 📍五、启动机器人
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
在项目根目录中,找到 *bot.py* ,在终端输入
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
python bot.py
|
|
|
|
|
|
```
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
2025-11-27 21:07:05 +00:00
|
|
|
|
### 🎨 功能补充说明
|
|
|
|
|
|
|
2025-02-20 09:33:58 +00:00
|
|
|
|
#### ✋ 管理员身份认证
|
|
|
|
|
|
|
|
|
|
|
|
##### 介绍
|
|
|
|
|
|
|
2025-11-27 19:16:16 +00:00
|
|
|
|
机器人管理员可以控制是否使用第三方大语言模型进行交互。后续其它功能更新中。
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
|
|
|
|
|
##### 使用
|
|
|
|
|
|
|
|
|
|
|
|
###### 1. 注册为管理员 <a id="admin_control"></a>
|
|
|
|
|
|
|
2025-11-27 19:13:27 +00:00
|
|
|
|
在 [**config.yaml**](config.yaml) 内,找到:
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
|
|
|
|
|
```python
|
2025-11-27 19:13:27 +00:00
|
|
|
|
ai:
|
|
|
|
|
|
admin:
|
|
|
|
|
|
password: '123456'
|
2025-02-20 09:33:58 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
可以更改为自己的密码。
|
|
|
|
|
|
|
|
|
|
|
|
设置好密码后,在 QQ 中 at 你的机器人,格式为:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
@<机器人名称> /管理员注册 <密码>
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例如,对三叶草进行管理员注册时,假如密码是 123456,需要:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
@三叶草 /管理员注册 123456
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<b>注意:</b> 管理员密码请不要泄露给其他人,建议定期更换密码。
|
|
|
|
|
|
|
|
|
|
|
|
注册成为管理员之后,你的 `member_openid` 将会被保存至 `chatbot.db` 下的 `admin_list` 表中。
|
|
|
|
|
|
|
2025-11-27 19:16:16 +00:00
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
### 更多配置内容,请详见[configuration.md](docs/configuration.md)
|
2025-02-20 09:33:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|