从 Muice-Chatbot 迁移至 MuiceBot
Moemuu
编辑于 2025年04月18日 11:02

相伴二余载,出发下一站

由于 Muice-Chatbot 已停止功能性更新,我们强烈建议您从 Muice-Chatbot 迁移至 MuiceBot ,本章内容将向您介绍 Muice-Chatbot 与 MuiceBot 中的差异和迁移教程,以便帮助您决定何时如何迁移。

实现差异

Muice-Chatbot 通过搭建 Onebot V11 反向 WebSocket 服务实现机器人服务,代码可读性差,不容易扩展,在部分 Onebot 实现上容易出现问题; 但 MuiceBot 基于 Nonebot 机器人框架,通过多种适配器实现完美兼容各类聊天平台,具体服务实现隐藏在适配器代码中,让开发者专注于聊天交互逻辑处理,代码鲁棒性好,不容易抛出错误。

功能差异

本节向您介绍 MuiceBot 还未实现的 Muice-Chatbot 功能,以便帮助您决策是否开始迁移。

请注意: 由于依赖树太大,我们移除了 llmtuner 模型加载器,请使用 ollama 或换用在线 API 作为替代

环境迁移

我们十分建议您重新搭建环境并重新撰写配置文件,直接在旧环境上运行可能出现问题。

在迁移之前,我们同时建议您阅读 Nonebot 的文档,就算您不打算贡献代码或深挖机器人背后的实现:https://nonebot.dev/docs/quick-start

创建 Nonebot 机器人项目

首先安装 Nonebot 及其依赖:

python -m pip install --user pipx

python -m pipx ensurepath

pipx install nb-cli

使用nonebot脚手架创建一个项目:

nb create

这一指令将会执行创建项目的流程,你将会看到一些询问:

[?] 选择一个要使用的模板: bootstrap (初学者或用户)

[?] 项目名称: Muicebot (或者说其他你喜欢的名字)

请注意,多选项使用空格选中或取消,回车确认:

[?] 要使用哪些驱动器? OneBot V11 (OneBot V11 协议), OneBot V12 (OneBot V12协议)

[?] 要使用哪些适配器? FastAPI (FastAPI 驱动器), HTTPX (HTTPX 驱动器), websockets(websockets驱动器)

[?] 立即安装依赖? (Y/n) Yes

[?] 创建虚拟环境? (Y/n) Yes (如果你已经使用 Conda 创建了虚拟环境,这里可以选no)

[?] 要使用哪些内置插件? (直接按回车)

提示完成后结束。

安装 MuiceBot 插件

切换到机器人项目目录:

cd Muicebot

在机器人项目下执行:

pip install muicebot

默认情况下,这会仅安装 OpenAI 加载器所需的依赖,要想完整安装所有模型加载器的依赖,请执行:

pip install muicebot[standard]

完成安装后,请手动编辑 Nonebot 项目中的 pyproject.toml, 在 [tool.nonebot] 部分追加插件:

plugins = ["muicebot"]

builtin_plugins = []

插件配置

你需要完成插件配置和模型配置文件的编写

参见:https://bot.snowy.moe/guide/setup#插件配置项一览env

和 https://bot.snowy.moe/guide/configuration

一切准备就绪后,连接你的 Onebot 服务登录QQ,执行nb run即可开始使用

数据库迁移

与 Muice-Chatbot 不同, MuiceBot 使用了 SQLite3 数据库保存对话数据,提升了数据读取性能和数据安全性,本节将指导您如何从 Muice-Chatbot 的数据文件中迁移。

注意:本篇教程不适用于 Faiss 向量记忆的数据库迁移,因为 MuiceBot 尚未实现(

按照 快速开始 配置好 Muicebot 后,首先运行一次 MuiceBot ,获取数据库路径:

03-18 09:56:50 [INFO] Muice | 数据库路径: C:\Users\Muika\AppData\Local\nonebot2\Muice\ChatHistory.db

然后找到 Muice-Chatbot 的 memory 文件夹,复制文件路径:

D:\Muice-Chatbot\memory

执行数据库迁移脚本:

python migrations.py D:\Muice-Chatbot\memory C:\Users\Muika\AppData\Local\nonebot2\Muice\ChatHistory.db

当输出 "✅迁移完成!" 时表示数据库已迁移完成并在 MuiceBot 上可用

注意:

MuiceBot 目前通过 session 会话信息获取对话历史上下文,通常情况下这与 Muice-Chatbot 数据文件的命名一致,但也存在迁移后还是无法获取以前的历史上下文的可能性。这种情况下请考虑手动编辑 MuiceBot 的数据库中的 USERID 列, 此内容可通过 .whoami 命令中的会话信息获得