Skip to content

Latest commit

 

History

History
110 lines (69 loc) · 4.84 KB

README.md

File metadata and controls

110 lines (69 loc) · 4.84 KB

RWKV_QQBot_BackEnd

A Python QQ robot backend based on the Shamrock framework, which is used to connect large language models RWKV to QQ.

  • 一个基于Shamrock框架的Python QQ机器人后端,用于将大语言模型RWKV接入QQ。

  • 本项目支持任意符合OpenAI API规范的后端,但需要修改配置文件填写API key和Base url

  • 本项目采用Quart框架,网络操作均为异步操作,提高响应效率,支持并发!

license Python Version

GitHub last commit


使用方法

1. 安装Shamrock

在安卓手机或虚拟机上安装Shamrock,教程请参考 Shamrock Getting Started Guide

这里作者推荐采用国产开发板香橙派OrangePi 3b进行部署,该开发板无BootLoader锁,获取root权限仅需安装Magisk官网最新Release的版本,然后点击直接安装即可自动修补boot获取root权限,简单快捷。

2. 配置Shamrock

在Shamrock配置文件中添加上报HTTP服务器的IP和Port等配置选项。IP需要填写运行本Bot的机器的IP和Port。作者在内网环境下运行Bot和Shamrock框架,所以填写的是内网IP。

注意,Shamrock中的一些重要的配置如下:

  1. 主动HTTP端口填写5700(即本Bot去访问Shamrock的端口)。
  2. 回调HTTP地址填写本Bot运行的地址和端口(端口默认5701)。
  3. 开启OneBot标准的HTTPAPI回调选项。
  4. 开启HTTPAPI回调的消息格式选项。
  5. 推荐开启强制QQ使用平板模式选项。

3. 克隆项目

git clone https://github.com/JiaXinSugar-114514/RWKV_QQBot_BackEnd.git
cd RWKV_QQBot_BackEnd

4. 安装依赖

pip install -r requirements.txt

5. 修改配置文件

根据你的需求修改 config.ini 配置文件。

注意,你需要修改QQ配置项为你运行Shamrock框架时登录的QQ账号。另外,还需要指定bot运行的端口,以供Shamrock上报消息等。具体的配置请你仔细阅读 config.ini 文件。

理论上Shamrock的请求IP可以直接填写域名,如果你的机器内网不互通的话,可以考虑进行内网穿透并解析到指定域名。

6. 安装AI00 RWKV Server

请参考AI00 RWKV Server进行安装。

RWKV5模型下载:
1.5B大小的模型:RWKV-5-World-1B5-v2-20231025-ctx4096.pth
3B大小的模型:RWKV-5-World-3B-v2-20231118-ctx16k.pth
7B大小的模型:RWKV-5-World-7B-v2-20240128-ctx4096.pth

如果你的显存大于等于8G,上面三个模型你都可以直接运行。但你需要在ai00中指定NF4量化,量化方法是把 ai00_rwkv_server/assets/configs/Config.toml 配置文件中的quant项改为26,然后将quant_type选项改为NF4即可。

# 配置文件修改示例
quant = 26
quant_type = "NF4"

AI00要求模型格式为.st结尾的safetensors格式权重,你可以运行 converter.exe 脚本来将.pth格式的模型权重转换为.st格式的权重,例如:

converter.exe --input RWKV-5-World-7B-v2-20240128-ctx4096.pth

7. 添加Prompt

prompt 目录下添加预设的prompt,一个角色的prompt要同时包含 txtjson 后缀的两个配置文件。当然你也可以偷懒使用作者预设的角色进行角色扮演任务。

8. 启动服务

python bot.py

9. 查看帮助

在QQ群艾特QQbot然后输入help指令即可查看帮助,也可私聊,此时无需艾特。查看帮助示例:

@QQbot help

这里的QQbot是QQ机器人账号的昵称。

另,输入 lock on 可以给bot上锁,此时bot只会响应私聊对话,拒绝群聊对话。再次输入 lock off 可以解锁。注意,这个功能仅限配置文件中指定的Admin_QQ账号使用。


许可证

本项目采用 GNU General Public License v3.0 许可证。请参阅 GNU GPL v3.0 获取更多详细信息。

引用