💿 安装
直接在仪表盘搜索即可,或在github主页下载项目打包为zip压缩包之后安装
📜 功能特性
- 具有人格定制功能,可以自由设定人格
- 内置md渲染器;可方便的查看代码,公式等文本
- 具有高度灵活的群管理功能,易于多群使用、功能拓展
- 基于siliconflow丰富的API,可以轻而易举的导入其它大语言模型
- 添加白名单功能,能够十分方便的管理用户,且便于自定义响应规则
- 新增RAG(检索增强生成),使bot具备了长期记忆或文档库的功能
- 新增联网搜索功能,拓展了bot的知识库
🧐 快速上手/配置
- 在项目文件所在位置下,找到 'config.toml' 文件,可在其中根据注释修改配置,添加自己的API key。如果仅需配置API_KEY,也可直接通过仪表盘。
- 启动后通过 “/群聊白名单” 添加您的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部分的记忆在人格储存后再读取时才会被存储下来
AstrBot端特性:
- 由于没有合适的渲染机制,Astrbot端的MD命令速度会略慢,且渲染图片质量更低
- 机器人日志将更不完整
🔭 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功能。
本项目由nonebot项目移植而来,nonebot主页: https://github.com/inkink365/nonebot-plugin-huaer-bot
🙏 感谢
- D圣的开源和S圣的平台搭建
- 伟大的HippoRAG开源项目
- 各位用户朋友们