MaiBot部署与接入QQ

195次阅读
没有评论

共计 4432 个字符,预计需要花费 12 分钟才能阅读完成。

该教程基于 0.5.11-alpha 版,现代码已有较大改动,部分内容请以最新版本为准

项目介绍

🍔麦麦是一个基于大语言模型的智能 QQ 群聊机器人

项目地址

部署与接入

MaiBot 官方已经提供了非常详尽的文档(https://docs.mai-mai.org/)请参考该链接,以下内容仅留档。
Have Fun!

点网页右侧小蓝条可进行导航

请先准备

  • 一台联网的设备
  • QQ 小号(QQ 框架的使用可能导致 qq 被风控,严重(小概率)可能会导致账号封禁,强烈不推荐使用大号)
  • 一个或多个可用的大模型 API
  • 一个 AI 助手,网上随便搜一家打开来用都行,可以帮你解决一些不懂的问题

获取一个大模型 API

这里以硅基流动为例
点击 这个链接 注册账号
然后点侧栏的API 密钥
MaiBot 部署与接入 QQ
点右上角的 新建 API 密钥 , 在弹出的窗口中点 新建密钥
之后再把密钥复制下来备用

Windows

请参考 这篇专栏 以及官方文档,如遇到问题,可看一下 常见问题

以下截图来源MaiMBOT 8aka WiKi
MaiBot 部署与接入 QQ

Linux

这里仅以 Debian 系(如 Ubuntu、Mint 等)为例

确认 Python 版本

打开终端,输入

python --version
# 或
python3 --version

如果你觉得每次都输 python3 太麻烦,你可以选择安装一个 python-is-python3 软件包,它可以让命令中的 python 等同于python3, 安装命令为 sudo apt install python-is-python3(注:此步非必须,没有此需求请直接往下看)

如果版本低于 3.9,请更新 Python 版本。

# Ubuntu/Debian
sudo apt update
sudo apt install python3.9
# 如执行了这一步,建议在执行时将 python3 指向 python3.9
# 更新替代方案,设置 python3.9 为默认的 python3 版本:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
sudo update-alternatives --config python3

创建虚拟环境 & 安装依赖

方法 1:使用 venv(推荐)

python3 -m venv maimbot
source maimbot/bin/activate  # 激活环境

方法 2:使用 conda(需先安装 Miniconda)

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
conda create -n maimbot python=3.9
conda activate maimbot

通过以上方法创建并进入虚拟环境后,再执行以下命令

安装依赖(任选一种环境)

pip install -r requirements.txt

数据库配置(MongoDB)

  • 安装与启动:Debian 参考 官方文档 ,Ubuntu 参考 官方文档
  • 建议设置开机自启,官方教程有,称为 在系统 重新启动后启动
  • MaimBot 默认连接本地 27017 端口

进行初始化

打开终端在项目目录下操作

nb run
# 或
python3 bot.py

运行后等待其自动退出,再进行下一步

配置 Napcat

参考 NapCat 官方文档 安装
使用你准备好的 QQ 号登录,添加反向 WS 地址:ws://localhost:8080/onebot/v11/ws(在它的 webui 中被称为Websoket 客户端

配置文件修改

(这段 Win/Linux 通用)

修改.env.prod

这是一个位于机器人根目录的环境配置文件

你可以在 template.env 文件中找到默认的内容(不要修改这个文件,我们要修改的是 .env.prod 这个文件)

可能的内容如下

HOST=127.0.0.1  # 配置监听的 IP / 主机名(无特殊情况保持默认)
PORT=8080   # # 配置监听的端口(无特殊情况保持默认)

# 如果你修改了以上两项,请不要忘了更改在 Napcat 里配置的反向 WS 地址

# 插件配置
PLUGINS=["src2.plugins.chat"]

# 默认配置(无特殊情况保持默认)
MONGODB_HOST=127.0.0.1 # 如果工作在 Docker 下,请改成 MONGODB_HOST=mongodb
MONGODB_PORT=27017
DATABASE_NAME=MegBot

MONGODB_USERNAME = ""  # 默认空值(无特殊情况保持默认)
MONGODB_PASSWORD = ""  # 默认空值(无特殊情况保持默认)
MONGODB_AUTH_SOURCE = ""  # 默认空值(无特殊情况保持默认)

#key and 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

#定义你要用的 api 的 base_url
DEEP_SEEK_KEY=
CHAT_ANY_WHERE_KEY=
SILICONFLOW_KEY=

在.env.prod 中定义 API 凭证:

# API 凭证配置
SILICONFLOW_KEY=your_key        # 硅基流动 API 密钥(如果你参照前文获取了一个密钥,就可以将它填在这里)
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/  # 硅基流动 API 地址

DEEP_SEEK_KEY=your_key          # DeepSeek API 密钥
DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1  # DeepSeek API 地址

CHAT_ANY_WHERE_KEY=your_key     # ChatAnyWhere API 密钥
CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1  # ChatAnyWhere API 地址

如果你需要增加一个提供商,只要再定义一个地址,并填入密钥即可

修改 bot_config.toml

文件内容如下

[bot]
qq = " 机器人 QQ 号 "  # 必填
nickname = " 麦麦 "  # 机器人昵称

[personality]
prompt_personality = [
    " 曾经是一个学习地质的女大学生,现在学习心理学和脑科学,你会刷贴吧 ",
    " 是一个女大学生,你有黑色头发,你会刷小红书 "
]
prompt_schedule = " 一个曾经学习地质, 现在学习心理学和脑科学的女大学生,喜欢刷 qq,贴吧,知乎和小红书 "

# personality 区的内容可更改,prompt_personality 采取概率选择:有三分之二的概率选择第一人格,有三分之一的概率选择第二人格

[message]
min_text_length = 2  # 最小回复长度
max_context_size = 15  # 上下文记忆条数
emoji_chance = 0.2  # 表情使用概率
ban_words = []  # 禁用词列表

[emoji]
auto_save = true  # 自动保存表情
enable_check = false  # 启用表情审核
check_prompt = " 符合公序良俗 "

[groups]
talk_allowed = []      # 允许对话的群号
talk_frequency_down = []   # 降低回复频率的群号
ban_user_id = []      # 禁止回复的用户 QQ 号

[others]
enable_advance_output = true  # 启用详细日志
enable_kuuki_read = true  # 启用场景理解

# 模型配置
[model.llm_reasoning]  # 推理模型
name = "Pro/deepseek-ai/DeepSeek-R1"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"

[model.llm_reasoning_minor]  # 轻量推理模型
name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"

[model.llm_normal]  # 对话模型
name = "Pro/deepseek-ai/DeepSeek-V3"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"

[model.llm_normal_minor]  # 备用对话模型
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"

[topic.llm_topic]   # 对话主题总结模型
name = "Pro/deepseek-ai/DeepSeek-V3"
base_url = "SILICONFLOW_BASE_URL"
key = "SILICONFLOW_KEY"

在 bot_config.toml 中引用 API 凭证:

[model.llm_reasoning]
name = "Pro/deepseek-ai/DeepSeek-R1"
base_url = "SILICONFLOW_BASE_URL"  # 引用.env.prod 中定义的地址
key = "SILICONFLOW_KEY"            # 引用.env.prod 中定义的密钥

如需切换到其他 API 服务,只需修改引用:

[model.llm_reasoning]
name = "Pro/deepseek-ai/DeepSeek-R1"
base_url = "DEEP_SEEK_BASE_URL"  # 切换为 DeepSeek 服务
key = "DEEP_SEEK_KEY"            # 使用 DeepSeek 密钥

更改并保存以上两个文件

启动麦麦机器人

久等了,我们已经完成了所有部署操作
打开终端在项目目录下操作

nb run
# 或
python3 bot.py

并启动 Napcat
Have Fun!

正文完
 0
一言一句话
-「
评论(没有评论)