decd577649b7405f2a56d9bab59f179b958df552
麦麦!MaiMBot (编辑中)
📝 项目简介
麦麦qq机器人的源代码仓库
基于llm、napcat、nonebot和mongodb的专注于群聊天的qqbot
⚠️ 警告:代码可能随时更改,目前版本不一定是稳定版本 ⚠️ 警告:请自行了解qqbot的风险,麦麦有时候一天被腾讯肘七八次 ⚠️ 警告:由于麦麦一直在迭代,所以可能存在一些bug,请自行测试,包括胡言乱语(
关于麦麦的开发和建议相关的讨论群:766798517(不建议发布无关消息)这里不会有麦麦发言!
开发计划TODO:LIST
- 兼容gif的解析和保存
- 小程序转发链接解析
- 对思考链长度限制
- 修复已知bug
- 完善文档
- 修复转发
- config自动生成和检测
- log别用print
- 给发送消息写专门的类
- 改进表情包发送逻辑l
📚 详细文档
- 项目详细介绍和架构说明 - 包含完整的项目结构、文件说明和核心功能实现细节(由claude-3.5-sonnet生成)
安装方法(还没测试好,随时outdated ,现在部署可能遇到未知问题!!!!)
Linux 使用 Docker Compose 部署
获取项目根目录中的docker-compose.yml文件,运行以下命令
NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose up -d
配置文件修改完成后,运行以下命令
NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart
手动运行
-
创建Python环境 推荐使用conda或其他虚拟环境进行依赖安装,防止出现依赖版本冲突问题
# 安装requirements pip install -r requirements.txt -
MongoDB设置
- 安装并运行mongodb
- 麦麦bot会自动连接默认的mongodb,端口和数据库名可配置
-
Napcat配置
- 安装并运行Napcat,登录
- 在Napcat的网络设置中添加ws反向代理:ws://localhost:8080/onebot/v11/ws
-
配置文件设置
- 修改.env的 变量值为 prod
- 将.env.prod文件打开,填上你的apikey(硅基流动或deepseekapi)
- 将bot_config_toml改名为bot_config.toml,打开并填写相关内容,不然无法正常运行
.env 文件配置说明
# 环境配置 ENVIRONMENT=dev # 开发环境设置 HOST=127.0.0.1 # 主机地址 PORT=8080 # 端口号 # 命令前缀设置 COMMAND_START=["/"] # 命令起始符 # 插件配置 PLUGINS=["src2.plugins.chat"] # 启用的插件列表 # MongoDB配置 MONGODB_HOST=127.0.0.1 # MongoDB主机地址 MONGODB_PORT=27017 # MongoDB端口 DATABASE_NAME=MegBot # 数据库名称 MONGODB_USERNAME="" # MongoDB用户名(可选) MONGODB_PASSWORD="" # MongoDB密码(可选) MONGODB_AUTH_SOURCE="" # MongoDB认证源(可选) #api配置项,建议siliconflow必填,识图需要这个 SILICONFLOW_KEY= SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ DEEP_SEEK_KEY= DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1bot_config.toml 文件配置说明
# 数据库设置 [database] host = "127.0.0.1" # MongoDB主机地址 port = 27017 # MongoDB端口 name = "MegBot" # 数据库名称 # 机器人基本设置 [bot] qq = # 你的机器人QQ号(必填) nickname = "麦麦" # 机器人昵称 # 消息处理设置 [message] min_text_length = 2 # 最小响应文本长度 max_context_size = 15 # 上下文最大保存数量 emoji_chance = 0.2 # 表情包使用概率 # 表情包功能设置 [emoji] check_interval = 120 # 表情检查间隔(秒) register_interval = 10 # 表情注册间隔(秒) # CQ码设置 [cq_code] enable_pic_translate = false # 是否启用图片转换(无效) # 响应设置 [response] api_using = "siliconflow" # 回复使用的API(siliconflow/deepseek) model_r1_probability = 0.8 # R1模型使用概率 model_v3_probability = 0.1 # V3模型使用概率 model_r1_distill_probability = 0.1 # R1蒸馏模型使用概率(对deepseek api 无效) # 其他设置 [others] enable_advance_output = false # 是否启用详细日志输出 # 群组设置 [groups] talk_allowed = [ # 允许回复的群号列表 # 在这里添加群号,逗号隔开 ] talk_frequency_down = [ # 降低回复频率的群号列表 # 在这里添加群号,逗号隔开 ] ban_user_id = [ # 禁止回复的用户QQ号列表 # 在这里添加QQ号,逗号隔开 ] -
运行麦麦 在含有bot.py程序的目录下运行(如果使用了虚拟环境需要先进入虚拟环境)
nb run -
运行其他组件 run_thingking.bat 可以启动可视化的推理界面(未完善)和消息队列及其他信息预览(WIP) knowledge.bat可以将/data/raw_info下的文本文档载入到数据库(未启动)
🎯 功能介绍
💬 聊天功能
- 支持关键词检索主动发言:对消息的话题topic进行识别,如果检测到麦麦存储过的话题就会主动进行发言,目前有bug,所以现在只会检测主题,不会进行存储
- 支持bot名字呼唤发言:检测到"麦麦"会主动发言,可配置
- 使用硅基流动的api进行回复生成,可随机使用R1,V3,R1-distill等模型,未来将加入官网api支持
- 动态的prompt构建器,更拟人
- 支持图片,转发消息,回复消息的识别
- 错别字和多条回复功能:麦麦可以随机生成错别字,会多条发送回复以及对消息进行reply
😊 表情包功能
- 支持根据发言内容发送对应情绪的表情包:未完善,可以用
- 会自动偷群友的表情包(未完善,暂时禁用)目前有bug
📅 日程功能
- 麦麦会自动生成一天的日程,实现更拟人的回复
🧠 记忆功能
- 对聊天记录进行概括存储,在需要时调用,没写完
📚 知识库功能
- 基于embedding模型的知识库,手动放入txt会自动识别,写完了,暂时禁用
👥 关系功能
- 针对每个用户创建"关系",可以对不同用户进行个性化回复,目前只有极其简单的好感度(WIP)
- 针对每个群创建"群印象",可以对不同群进行个性化回复(WIP)
🚧 开发中功能
- 人格功能:WIP
- 群氛围功能:WIP
- 图片发送,转发功能:WIP
- 幽默和meme功能:WIP的WIP
- 让麦麦玩mc:WIP的WIP的WIP
📌 注意事项
纯编程外行,面向cursor编程,很多代码史一样多多包涵
⚠️ 警告:本应用生成内容来自人工智能模型,由 AI 生成,请仔细甄别,请勿用于违反法律的用途,AI生成内容不代表本人观点和立场。
致谢
nonebot2: 跨平台 Python 异步聊天机器人框架
NapCat: 现代化的基于 NTQQ 的 Bot 协议端实现
贡献者
感谢各位大佬!
Languages
Python
97.2%
HTML
1.7%
JavaScript
0.9%
CSS
0.2%