💿 安装
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-huaer-bot
使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot-plugin-huaer-bot
pdm
pdm add nonebot-plugin-huaer-bot
poetry
poetry add nonebot-plugin-huaer-bot
conda
conda install nonebot-plugin-huaer-bot
打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分追加写入
plugins = ["nonebot-plugin-huaer-bot"]
📜 功能特性
- 具有人格定制功能,可以自由设定人格
- 内置md渲染器;可方便的查看代码,公式等文本
- 具有高度灵活的群管理功能,易于多群使用、功能拓展
- 基于siliconflow丰富的API,可以轻而易举的导入其它大语言模型
- 添加白名单功能,能够十分方便的管理用户,且便于自定义响应规则
- 新增RAG(检索增强生成),使bot具备了长期记忆或文档库的功能
- 新增联网搜索功能,拓展了bot的知识库
🧐 快速上手/配置
- 在项目文件所在位置下,找到 'config.toml' 文件,可在其中根据注释修改配置,添加自己的API key。也可以在nb2项目中的
.env文件中添加HUAER_CONFIG_PATH变量指定配置文件生成位置(绝对路径,运行后自动生成)。 - 启动后通过 “/群聊白名单” 添加您的Q群,之后通过 “/对话” 与HuaEr聊天!
🎉 详细使用
指令表
| 指令+参数 | 说明 | 权限(U : user,S : superuser) |
|---|---|---|
| 对话命令 | 对话功能的具体实现 | |
| 1. 思考 | 部分模型具备思考功能,此命令可设定是否显示思考内容 (switch型,即关闭时此命令会使其开启,反之亦然) | S |
| 2. 对话 [对话内容] | 核心功能,可设置调用限制,参见配置文件 | U/S |
| 3. MD | markdown显示上一段回复,无历史记录或记忆体容量为0则无效 | U/S |
| 4. 模型列表 | 列出所有可选模型 | S |
| 5. 模型设置 [对应模型编号] | 通过查看2.模型列表内容选定模型 |
S |
| 6. 联网搜索 | 是否启用联网搜索(switch) | S |
| 记忆命令 | 具体实现实则属于对话类 | |
| 7. 撤回 | 撤回上一段对话记录,可在配置文件中设置限额,管理员(superuser)不受限制 | U/S |
| 8. 记忆清除 | 清空记忆体 | S |
| 9. 记忆输出 | 输出目前记忆体的所有内容,方便调试 | S |
| 10. *记忆添加 [用户/助手] [记忆内容] | 手动增加一段记忆,建议成对添加,多用户语境建议在内容前加上用户名或助手标识 | S |
| 11. RAGS | 开/关RAG功能(switch) | S |
| 12. *SSIN | 是否存储搜索到的信息至RAG索引(switch) | S |
| 13. ALLIN | 是否存储所有对话内容至RAG索引(switch) | S |
| 14. *RAG清空 | 清空RAG索引,相当于清空RAG部分的记忆 | S |
| 15. *RAG保存 | 保存当前RAG索引内容 | S |
| 16. *RAG添加 [添加内容] | 添加文档至RAG索引(多个内容可用空格分隔) | S |
| 17. *RAG删除 [删除内容] | 从RAG索引删除文档(多个内容可用空格分隔) | S |
| 人格命令 | 与bot行为相关的设定 | |
| 18. 人格列表 | 此群已经存储的人格(私有人格)或公共人格将被列出 | S |
| 19. 人格设置 [人格描述] | 设定一个人格吧!(会清空当前记忆) | S |
| 20. 人格读取 [人格名称] [公共/私有] | 通过查看 9.人格列表内容选定人格(参数位置不敏感) |
S |
| 21. 人格储存 [人格名称] [公共/私有] | 为人格取名后存储至指定文件夹(包括记忆)(参数位置不敏感) | S |
| 白名单命令 | 内置两种响应规则,参见配置文件 | |
| 22. 群聊白名单 [群号] [增加/删除] | 操作群聊白名单(参数位置不敏感) | S |
| 23. 用户白名单 [QQ号] [增加/删除] | 操作用户白名单(参数位置不敏感) | S |
| 组管理器命令 | 对于每个群都会生成的管理容器 | |
| 24. 保存配置 | 将此群的配置保存到自身配置文件中 | S |
| 25. 加载配置 | 加载此群自身的配置文件 | S |
| 26. 重置配置 | 恢复默认配置 | S |
| 文档命令 | 信息文本 | |
| 27. readme | 用户文档 | U/S |
| 28. 功能列表 | 列出指令表(精简版) | S |
| 管理员命令 | 见备注一 | |
| 29. 退出群聊 | 取消对选中组群的控制 | S |
| 30. 选择群聊 [群号|public|private] | 选择要控制的群聊,其中public代表默认配置,private代表全体私聊,群号即为对应群聊 | S |
备注
-
强烈建议完整理解配置文件后再开始
-
当管理员使用指令时,默认作用于当前所在的组群;但设置 控制群聊 后,无论在什么位置,指令都会作用于被控制的群聊(目前多管理员同时设置控制群聊可能会有一定冲突)
-
刚加入白名单的群(所有的私聊被认为是一个群)会自动生成独立的默认配置文件(在
项目文件夹/data/groups/群号),并且在每次启动时读取;可直接修改这些文件来变更规则(包括一些不能显式修改的参数) -
私聊功能出于性能考虑,功能有所限制;具体的,无记忆功能,且只能使用最近一次设定的人格,可通过修改
项目文件夹/data/groups/private下的json文件更改 -
建议私聊前先添加机器人好友,不然无法获取用户昵称
-
标注*号的函数在完全了解功能及可能缺陷前请尽可能少的使用
对 于RAG功能的一些说明
a. 对于RAG类命令,事实上bug相当多,且没有太多使用场景。虽引出接口,但一般不必使用。如:save相关实则并不必要,增删操作会自动保存index考虑应用场景,必需运行完毕才会返回;而这个过程耗时较长且如果中途强制退出会造成三元组不匹配,使索引无法使用clear算是这些函数中最稳定的一个,但是不建议频繁使用delete较为稳定,可以使用,但不建议频繁;
b. 如果遇上了RAG相关错误,最暴力的解决方式是删除整个RAG存储文件夹(往往以RAG_file开头),让系统重建;但更精准的方法,目前已知的仅有手动修改。同时,由于RAG对存储的特殊需求,整个RAG实例都并非完全运行在内存中,故增删操作会对已存储的信息(如人格)造成影响。对于clear和人格设置有一定优化,不会影响到已存储人格。出于对可能的修改的防护,请备份重要的RAG文件
-
不建议过多修改包含base/pubilc的配置,会对重置造成影响
-
考虑到RAG可能的巨量文档,没有设定诸如“RAG输出”的方法,但在
chat.py中引出了_rag_info()接口,可以获取当前索引中所有文档;同样,我们在config.py中引出了_conf_info()接口,用于打印配置信息 -
人格RAG部分的记忆在人格储存后再读取时才会被存储下来
🔭 records
- 25.5.10 v2.1.1 默认配置debug完毕
- 25.7.5 v2.1.2 正式发布
- 25.7.27 v2.1.12 增加“记忆添加”功能
- 25.8.11 v2.2.0 新增自动保存,优化索引构建(增加了时间,显式声明角色),增加了RAG和联网搜索功能
- 25.8.17 v2.2.1 添加了国内搜索源
- NV: 如果有大批量文档输入和检索需求的话,会尝试增加上传文件功能;
- NV :如果可行的话,会尝试更新基于vits的tts功能。
🙏 感谢
- D圣的开源和S圣的平台搭建
- nonebot-plugin-htmlrender超好用的插件
- 伟大的HippoRAG开源项目
- 各位用户朋友们
Release files for nonebot-plugin-huaer-bot 2.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nonebot_plugin_huaer_bot-2.2.3.tar.gz | 29.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nonebot_plugin_huaer_bot-2.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.8 kB
Release files / nonebot_plugin_huaer_bot-2.2.3.tar.gz
| Download URL | nonebot_plugin_huaer_bot-2.2.3.tar.gz |
|---|---|
| Size | 29.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
49944d0731dacbd25727d3c0b6067d39922be51c2e4d4f2dc325715883963a61
|
|
BLAKE2b-256 checksum How to use checksums |
0d8dba5fb8b0b656ab11f9d61a1b4332719b5bbc29994761f04de02cdd6ab615
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.10.18 Linux/6.11.0-1018-azure
|
Release files / nonebot_plugin_huaer_bot-2.2.3-py3-none-any.whl
| Download URL | nonebot_plugin_huaer_bot-2.2.3-py3-none-any.whl |
|---|---|
| Size | 30.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e0900df1a6c0d566b88839a265574d8fb506115fc2ac61bc89f3880716f561a
|
|
BLAKE2b-256 checksum How to use checksums |
ed44f4d288f5d47ca38aa1f7e41f05ff9628b1a0eb86290833aa2a298cc063f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.10.18 Linux/6.11.0-1018-azure
|