diff --git a/docs/installation.md b/docs/installation.md index c988eb7c9..cc9097fd3 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -2,7 +2,7 @@ ## 部署方式 -如果你不知道Docker是什么,建议寻找相关教程或使用手动部署 +**如果你不知道Docker是什么,建议寻找相关教程或使用手动部署** ### 🐳 Docker部署(推荐,但不一定是最新) @@ -23,28 +23,59 @@ NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart ### 📦 手动部署 +([这里](https://www.bilibili.com/opus/1041609335464001545)有一份由社区大佬编写的,适用于Windows的部署教程,可供参考) + 1. **环境准备** +先参考图片,下载Releases中的`Source code(zip)`并将其解压到一个文件夹里(**路径不要有中文**) + +2. **安装Python** + +要求Python 3.9+ + +Linux用户可在终端输入`python3 --version`确认Python版本,Windows用户可在命令行输入`python --version`确认Python版本 + +Windows用户需要安装[Python](https://www.python.org/downloads/windows/)并在安装时勾选“Add Python to PATH”选项(如访问速度慢,[这里](https://www.123912.com/s/ydQuVv-TMKBd)提供Python 3.12的安装包网盘链接) + +Linux由于不同发行版安装Python的方式不同,请自行查阅相关教程(问AI、用搜索引擎搜一下都行) + ```bash # 创建虚拟环境(推荐) +# 在机器人的目录内打开终端/命令行,执行 python -m venv venv + +# 激活虚拟环境 venv\\Scripts\\activate # Windows +source venv/bin/activate # Linux + # 安装依赖 pip install -r requirements.txt ``` -2. **配置MongoDB** +3. **配置MongoDB** - 安装并启动MongoDB服务 + - 参考[MongoDB官方文档](https://www.mongodb.com/zh-cn/docs/manual/administration/install-community/#std-label-install-mdb-community-edition) + - 建议使其开机自启(教程中有提及,称为“在系统重新启动后启动”) - 默认连接本地27017端口 -3. **配置NapCat** +4. **配置NapCat** - 安装并登录NapCat + - 参考[NapCat官方文档](https://www.napcat.wiki/guide/install) - 添加反向WS:`ws://localhost:8080/onebot/v11/ws` +*该项目基于 nonebot2 框架开发,理论上也支持对接其他平台,如有需求请自行寻找教程* -4. **配置文件设置** -- 修改环境配置文件:`.env.prod` -- 修改机器人配置文件:`bot_config.toml` +5. **首次启动麦麦机器人** +```bash +# 在机器人的目录内打开终端/命令行,执行 +nb run +``` +程序会创建基本配置文件,然后退出 -5. **启动麦麦机器人** +6. **配置文件设置** +参照“配置说明”一节进行配置 +- 修改环境配置文件:`.env.prod`(位于机器人文件夹根目录) +- 修改机器人配置文件:`config/bot_config.toml`(位于机器人文件夹根目录/config文件夹内) + +7. **启动麦麦机器人** - 打开命令行,cd到对应路径 ```bash nb run @@ -60,86 +91,152 @@ nb run ### 环境配置 (.env.prod) ```ini -# API配置,你可以在这里定义你的密钥和base_url -# 你可以选择定义其他服务商提供的KEY,完全可以自定义 -SILICONFLOW_KEY=your_key -SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ -DEEP_SEEK_KEY=your_key -DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 - -# 服务配置,如果你不知道这是什么,保持默认 HOST=127.0.0.1 -PORT=8080 +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) ```toml [bot] -qq = "你的机器人QQ号" -nickname = "麦麦" +qq = 123 +nickname = "麦麦" # 可自定义 + +[personality] +prompt_personality = [ + + ] +prompt_schedule = [message] -min_text_length = 2 -max_context_size = 15 -emoji_chance = 0.2 +min_text_length = 2 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息 +max_context_size = 15 # 麦麦获得的上文数量 +emoji_chance = 0.2 # 麦麦使用表情包的概率 +ban_words = [ + # "403","张三" + ] [emoji] -check_interval = 120 -register_interval = 10 +check_interval = 120 # 检查表情包的时间间隔 +register_interval = 10 # 注册表情包的时间间隔 [cq_code] enable_pic_translate = false [response] -#现已移除deepseek或硅基流动选项,可以直接切换分别配置任意模型 -model_r1_probability = 0.8 #推理模型权重 -model_v3_probability = 0.1 #非推理模型权重 -model_r1_distill_probability = 0.1 +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 +build_memory_interval = 300 # 记忆构建间隔 单位秒 +forget_memory_interval = 300 # 记忆遗忘间隔 单位秒 [others] -enable_advance_output = true # 是否启用详细日志输出 +enable_advance_output = true # 是否启用高级输出 +enable_kuuki_read = true # 是否启用读空气功能 [groups] -talk_allowed = [] # 允许回复的群号列表 -talk_frequency_down = [] # 降低回复频率的群号列表 -ban_user_id = [] # 禁止回复的用户QQ号列表 +talk_allowed = [ + 123, + 123, +] #可以回复消息的群 +talk_frequency_down = [] #降低回复频率的群 +ban_user_id = [] #禁止回复消息的QQ号 -[model.llm_reasoning] + +#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] +[model.llm_reasoning_minor] #R1蒸馏 name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B" base_url = "SILICONFLOW_BASE_URL" key = "SILICONFLOW_KEY" -[model.llm_normal] +[model.llm_normal] #V3 name = "Pro/deepseek-ai/DeepSeek-V3" base_url = "SILICONFLOW_BASE_URL" key = "SILICONFLOW_KEY" -[model.llm_normal_minor] +[model.llm_normal_minor] #V2.5 name = "deepseek-ai/DeepSeek-V2.5" base_url = "SILICONFLOW_BASE_URL" key = "SILICONFLOW_KEY" -[model.vlm] +[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密钥请妥善保管,不要泄露 -- 建议先在测试环境中运行,确认无误后再部署到生产环境 \ No newline at end of file +- 配置文件中的API密钥请妥善保管,不要泄露,如需截图描述问题,请将截图中的API密钥打码(它们通常以`sk-`开头) +- 建议先在测试环境中运行,确认无误后再部署到生产环境