6.8 KiB
6.8 KiB
🔧 安装与配置指南
部署方式
如果你不知道Docker是什么,建议寻找相关教程或使用手动部署
🐳 Docker部署(推荐,但不一定是最新)
- 获取配置文件:
wget https://raw.githubusercontent.com/SengokuCola/MaiMBot/main/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
📦 手动部署
(这里有一份由社区大佬编写的,适用于Windows的部署教程,可供参考)
-
环境准备 先参考图片,下载Releases中的
Source code(zip)并将其解压到一个文件夹里(路径不要有中文) -
安装Python
要求Python 3.9+
Linux用户可在终端输入python3 --version确认Python版本,Windows用户可在命令行输入python --version确认Python版本
Windows用户需要安装Python并在安装时勾选“Add Python to PATH”选项(如访问速度慢,这里提供Python 3.12的安装包网盘链接)
Linux由于不同发行版安装Python的方式不同,请自行查阅相关教程(问AI、用搜索引擎搜一下都行)
# 创建虚拟环境(推荐)
# 在机器人的目录内打开终端/命令行,执行
python -m venv venv
# 激活虚拟环境
venv\\Scripts\\activate # Windows
source venv/bin/activate # Linux
# 安装依赖
pip install -r requirements.txt
- 配置MongoDB
- 安装并启动MongoDB服务
- 参考MongoDB官方文档
- 建议使其开机自启(教程中有提及,称为“在系统重新启动后启动”)
- 默认连接本地27017端口
- 配置NapCat
- 安装并登录NapCat
- 添加反向WS:
ws://localhost:8080/onebot/v11/ws该项目基于 nonebot2 框架开发,理论上也支持对接其他平台,如有需求请自行寻找教程
- 首次启动麦麦机器人
# 在机器人的目录内打开终端/命令行,执行
nb run
程序会创建基本配置文件,然后退出
- 配置文件设置 参照“配置说明”一节进行配置
- 修改环境配置文件:
.env.prod(位于机器人文件夹根目录) - 修改机器人配置文件:
config/bot_config.toml(位于机器人文件夹根目录/config文件夹内)
- 启动麦麦机器人
- 打开命令行,cd到对应路径
nb run
- 其他组件
-
run_thingking.bat: 启动可视化推理界面(未完善) -
knowledge.bat: 将/data/raw_info下的文本文档载入数据库 -
直接运行 knowledge.py生成知识库
⚙️ 配置说明
环境配置 (.env.prod)
HOST=127.0.0.1
PORT=8080 # 端口号,有需求可改
# 插件配置
PLUGINS=["src2.plugins.chat"]
# 数据库配置
MONGODB_HOST=127.0.0.1
MONGODB_PORT=27017
DATABASE_NAME=MegBot
MONGODB_USERNAME = "" # 默认空值
MONGODB_PASSWORD = "" # 默认空值
MONGODB_AUTH_SOURCE = "" # 默认空值
# 以上内容如看不懂,保持默认即可
# 以下为API配置,你可以在这里定义你的密钥和base_url
# 你可以选择定义其他服务商提供的KEY,完全可以自定义
#key and url
# 定义你要用的api的base_url
CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/
DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1
# 你也可以自定义所需平台的base_url
# 举例:
# MODEL_NAME_BASE_URL=https://api.example.com/v1
#定义你要用的api的API-KEY
DEEP_SEEK_KEY=
CHAT_ANY_WHERE_KEY=
SILICONFLOW_KEY=
# 你也可以自定义所需平台的API-KEY
# 举例:
# MODEL_NAME_KEY=
机器人配置 (bot_config.toml)
[bot]
qq = 123
nickname = "麦麦" # 可自定义
[personality]
prompt_personality = [
]
prompt_schedule =
[message]
min_text_length = 2 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息
max_context_size = 15 # 麦麦获得的上文数量
emoji_chance = 0.2 # 麦麦使用表情包的概率
ban_words = [
# "403","张三"
]
[emoji]
check_interval = 120 # 检查表情包的时间间隔
register_interval = 10 # 注册表情包的时间间隔
[cq_code]
enable_pic_translate = false
[response]
model_r1_probability = 0.8 # 麦麦回答时选择R1模型(即[model.llm_reasoning]指定的模型)的概率
model_v3_probability = 0.1 # 麦麦回答时选择V3模型(即[model.llm_normal]指定的模型)的概率
model_r1_distill_probability = 0.1 # 麦麦回答时选择R1蒸馏模型(即[model.llm_reasoning_minor]指定的模型)的概率
[memory]
build_memory_interval = 300 # 记忆构建间隔 单位秒
forget_memory_interval = 300 # 记忆遗忘间隔 单位秒
[others]
enable_advance_output = true # 是否启用高级输出
enable_kuuki_read = true # 是否启用读空气功能
[groups]
talk_allowed = [
123,
123,
] #可以回复消息的群
talk_frequency_down = [] #降低回复频率的群
ban_user_id = [] #禁止回复消息的QQ号
#V3
#name = "deepseek-chat"
#base_url = "DEEP_SEEK_BASE_URL"
#key = "DEEP_SEEK_KEY"
#R1
#name = "deepseek-reasoner"
#base_url = "DEEP_SEEK_BASE_URL"
#key = "DEEP_SEEK_KEY"
#下面的模型若使用硅基流动则不需要更改,使用ds官方则改成.env.prod自定义的宏,使用自定义模型则选择定位相似的模型自己填写
[model.llm_reasoning] #R1
name = "Pro/deepseek-ai/DeepSeek-R1"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"
[model.llm_reasoning_minor] #R1蒸馏
name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"
[model.llm_normal] #V3
name = "Pro/deepseek-ai/DeepSeek-V3"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"
[model.llm_normal_minor] #V2.5
name = "deepseek-ai/DeepSeek-V2.5"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"
[model.vlm] #图像识别
name = "deepseek-ai/deepseek-vl2"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"
[model.embedding] #嵌入
name = "BAAI/bge-m3"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"
# 主题提取,jieba和snownlp不用api,llm需要api
[topic]
topic_extract='snownlp' # 只支持jieba,snownlp,llm三种选项
[topic.llm_topic]
name = "Pro/deepseek-ai/DeepSeek-V3"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"
⚠️ 注意事项
- 目前部署方案仍在测试中,可能存在未知问题
- 配置文件中的API密钥请妥善保管,不要泄露,如需截图描述问题,请将截图中的API密钥打码(它们通常以
sk-开头) - 建议先在测试环境中运行,确认无误后再部署到生产环境