[自建开源-Musebot]一款可本地部署的大模型智能机器人平台

最近增加个人QQ的支持,使用napcat,查看文档:MuseBot/static/doc/personal_qq_ZH.md at main · yincongcyincong/MuseBot · GitHub

MuseBot

本仓库提供了一个是基于 Golang 构建的 智能机器人,集成了 LLM API,实现 AI 驱动的自然对话与智能回复。
它支持 OpenAIDeepSeekGeminiDoubaoQwen 等多种大模型,
并可无缝接入 TelegramDiscordSlackLark(飞书)钉钉企业微信QQ微信 等聊天平台,为用户带来更加流畅、多平台联通的 AI 对话体验。
English Doc


:sun_with_face: 视频

最简单教程:https://www.bilibili.com/video/BV1f9nCzoERb/
deepseek: https://www.bilibili.com/video/BV1CB8kzHEJi/
gemini: https://www.bilibili.com/video/BV1D4htz4Ekv/
chatgpt: https://www.bilibili.com/video/BV1RutxzJEGY/
豆包:https://www.bilibili.com/video/BV1QDbEzwE43/
怎么使用mcp: https://www.bilibili.com/video/BV1JbtJzVEJd/

:rocket: 功能特性

  • :robot: AI 回复:使用 大模型 API 提供聊天机器人回复。
  • :hourglass_not_done: 流式输出:实时发送回复,提升用户体验。
  • :building_construction: 轻松部署:可本地运行或部署到云服务器。
  • :eyes: 图像识别:使用图片与 大模型进行交流,详见文档
  • :trumpet: 支持语音:使用语音与 大模型进行交流,详见文档
  • :ox: 函数调用:将 MCP协议转换为函数调用,详见文档
  • :ocean: RAG(检索增强生成):支持 RAG以填充上下文,详见文档
  • :sun_with_face: 管理平台(AdminPlatform):使用管理平台来管理MuseBot,详见文档
  • :first_quarter_moon_face: 注册中心:支持服务注册,机器人实例可自动注册,详见 文档
  • :rainbow: 监控数据:支持监控数据,详见文档

支持平台

平台 支持情况 简要说明 文档 / 链接
:blue_square: Telegram :white_check_mark: 支持 Telegram 机器人(基于 go-telegram-bot-api,可处理命令、内联按钮、ForceReply 等) 文档
:rainbow: Discord :white_check_mark: 支持 Discord 机器人 文档
:first_quarter_moon_face: Web API :white_check_mark: 提供 HTTP/Web API 与 LLM 交互(适合构建自己的前端或后端集成) 文档
:large_blue_diamond: Slack :white_check_mark: 支持 Slack(Socket Mode / Events API / Block Kit 交互) 文档
:purple_circle: Lark(飞书) :white_check_mark: 支持 Lark 长连接与消息处理(基于 larksuite SDK,支持图片/音频下载与消息更新) 文档
:up_button: 钉钉 :white_check_mark: 支持钉钉长链接服务 文档
:high_voltage: Work WeChat :white_check_mark: 支持企业微信触发大模型 文档
:high_voltage: QQ :white_check_mark: 支持QQ触发大模型 文档
:high_voltage: WeChat :white_check_mark: 支持微信触发大模型 文档

支持的大型语言模型

模型 提供方 文本生成 图片生成 视频生成 识别照片 返回语音 链接
:glowing_star: Gemini 谷歌 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: 文档
:speech_balloon: ChatGPT OpenAI :white_check_mark: :white_check_mark: :cross_mark: :white_check_mark: :white_check_mark: 文档
:bird: Doubao 字节跳动 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: 文档
:bird: Qwen 阿里云 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: 文档
:gear: 302.AI 302.AI :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :cross_mark: 文档
:brain: DeepSeek DeepSeek :white_check_mark: :cross_mark: :cross_mark: :cross_mark: :cross_mark: 文档
:globe_with_meridians: OpenRouter OpenRouter :white_check_mark: :white_check_mark: :cross_mark: :white_check_mark: :cross_mark: 文档

:robot: 文本示例

aa92b3c9580da6926a48fc1fc5c37c03
aa92b3c9580da6926a48fc1fc5c37c03

:trumpet: 多模态示例

aa92b3c9580da6926a48fc1fc5c37c03
aa92b3c9580da6926a48fc1fc5c37c03


:inbox_tray: 安装

  1. 克隆仓库

    git clone [email protected]:yincongcyincong/MuseBot.git
    cd MuseBot
    
  2. 安装依赖

    go mod tidy
    
  3. 设置环境变量

    export TELEGRAM_BOT_TOKEN="你的Telegram Bot Token"
    export DEEPSEEK_TOKEN="你的DeepSeek API密钥"
    

:rocket: 使用方法

在本地运行:

go run main.go -telegram_bot_token=telegram-bot-token -deepseek_token=deepseek-auth-token

使用 Docker 运行:

docker pull jackyin0822/musebot:latest
docker run -d -v /home/user/data:/app/data -e TELEGRAM_BOT_TOKEN="你的Telegram Bot Token" -e DEEPSEEK_TOKEN="你的DeepSeek API密钥" --name my-telegram-bot jackyin0822/MuseBot:latest
阿里云:
docker pull crpi-i1dsvpjijxpgjgbv.cn-hangzhou.personal.cr.aliyuncs.com/jackyin0822/musebot

命令介绍: (文档)[MuseBot/static/doc/param_conf_ZH.md at main · yincongcyincong/MuseBot · GitHub]


:gear: 配置项

变量名 描述 默认值
TELEGRAM_BOT_TOKEN (必需) 您的 Telegram 机器人令牌 -
DEEPSEEK_TOKEN (必需) DeepSeek API 密钥 -
OPENAI_TOKEN OpenAI 令牌 -
GEMINI_TOKEN Gemini 令牌 -
ALIYUN_TOKEN Aliyun 令牌 doc -
OPEN_ROUTER_TOKEN OpenRouter 令牌 文档 -
VOL_TOKEN 火山引擎 令牌 文档 -
CUSTOM_URL 自定义 DeepSeek URL https://api.deepseek.com/
TYPE 模型类型:deepseek/openai/gemini/openrouter/vol/aliyun/302-ai/ollama deepseek
VOLC_AK 火山引擎图片模型 AK 文档 -
VOLC_SK 火山引擎图片模型 SK 文档 -
Ernie_AK 文心一言 AK 文档 -
Ernie_SK 文心一言 SK 文档 -
DB_TYPE 数据库类型:sqlite3 / mysql sqlite3
DB_CONF 数据库配置:./data/telegram_bot.db 或 root:admin@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local ./data/telegram_bot.db
ALLOWED_USER_IDS 允许使用机器人的 Telegram 用户 ID,多个 ID 用逗号分隔。为空表示所有用户可用。为 0 表示禁止所有用户。 -
ALLOWED_GROUP_IDS 允许使用机器人的 Telegram 群组 ID,多个 ID 用逗号分隔。为空表示所有群组可用。为 0 表示禁止所有群组。 -
DEEPSEEK_PROXY DeepSeek 代理 -
TELEGRAM_PROXY Telegram 代理 -
LANG 语言:en / zh en
TOKEN_PER_USER 每个用户可使用的令牌数 10000
ADMIN_USER_IDS 管理员用户 ID,可使用一些管理命令 -
NEED_AT_BOT 在群组中是否需要 @机器人才能触发 false
MAX_USER_CHAT 每个用户最大同时存在的聊天数 2
VIDEO_TOKEN 火山引擎视频模型 API 密钥 文档 -
HTTP_PORT HTTP 服务器端口 36060
USE_TOOLS 普通对话是否使用函数调用工具 false
CA_FILE http 服务的 ca文件 -
CRT_FILE http 服务的 crt 文件 -
KEY_FILE http 服务的 key 文件 -
MEDIA_TYPE openai/gemini/vol/aliyun/openrouter/302-ai 图片或视频生成模型 vol
MAX_QA_PAIR 用多少问题对作为上下文 15
CHARACTER 角色背景 -

其他配置

deepseek参数
图片参数
视频参数


:speech_balloon: 命令

/clear

清除与 DeepSeek 的历史对话记录,用于上下文清理。

/retry

重试上一次问题。

/mode

/balance

查询当前用户的 DeepSeek API 余额。

/state

统计用户的 Token 使用量。

/photo /edit_photo

使用火山引擎图片模型生成图片,DeepSeek 暂不支持图片生成。
需要配置 VOLC_AKVOLC_SK文档

/edit_photo 支持编辑图片。
aa92b3c9580da6926a48fc1fc5c37c03

/video

生成视频,需要使用火山引擎 API 密钥(DEEPSEEK_TOKEN),DeepSeek 暂不支持视频生成。
文档

/chat

在群组中使用 /chat 命令与机器人对话,无需将机器人设置为管理员。

/help

显示帮助信息。

/change_photo

对腾讯系的app起作用:qq,微信 ,企业微信
输入一段prompt用户修改图片
aa92b3c9580da6926a48fc1fc5c37c03

/rec_photo

对腾讯系的app起作用:qq,微信 ,企业微信
输入一段prompt用户识别图片
aa92b3c9580da6926a48fc1fc5c37c03

/save_voice

仅适用于腾讯应用(微信、QQ、企业微信)
将你的语音保存到电脑。
aa92b3c9580da6926a48fc1fc5c37c03


:rocket: Docker 部署

  1. 构建 Docker 镜像

    docker build -t deepseek-telegram-bot .
    
  2. 运行 Docker 容器

    docker run -d -v /home/user/xxx/data:/app/data -e TELEGRAM_BOT_TOKEN="你的Telegram Bot Token" -e DEEPSEEK_TOKEN="你的DeepSeek API密钥" --name my-telegram-bot deepseek-telegram-bot
    

:handshake: 贡献

欢迎提交 Issue 和 Pull Request,一起优化和改进本项目!:rocket:

大家有什么issue或者特性尽管提哈,我会努力更新下一个版本的

接入微信QQ有没有风控的风险?

我这个是不支持接入个人的qq和微信的,这些都是有封号和法律风险的,仅支持qq的机器人和微信的公众号

老哥,最近加了个人qq的接入,可以看这个文档:MuseBot/static/doc/personal_qq_ZH.md at main · yincongcyincong/MuseBot · GitHub

先放视频

MuseBot支持使用onebot协议接入个人QQ

llonebot: https://www.youtube.com/watch?v=jbPGbnBaISE&t=7s
napcat: https://www.youtube.com/watch?v=vrwcBTy6DeQ

:robot: OneBot + MuseBot 环境变量配置说明

:puzzle_piece: 一、启动 OneBot 容器

启动 LLONEBot

docker run -d \
  --name llonebot \
  -p 3000:3000 \
  -p 3001:3001 \
  -p 5600:5600 \
  -p 3080:3080 \
  -v ./QQ:/root/.config/QQ \
  -v ./llonebot:/root/llonebot \
  --add-host=host.docker.internal:host-gateway \
  --restart unless-stopped \
  initialencounter/llonebot:latest

说明:

  • 3000: LLONEBot HTTP 服务端口(用于接收 MuseBot 发来的消息)
  • 3080: LLONEBot Web 管理界面(扫码登录 QQ)

或启动 NapCat:

docker run -d \
  -e NAPCAT_GID=$(id -g) \
  -e NAPCAT_UID=$(id -u) \
  -p 3000:3000 \
  -p 3001:3001 \
  -p 6099:6099 \
  --name napcat \
  --restart=always \
  mlikiowa/napcat-docker:latest

说明:

  • 3000: NapCat HTTP 服务端口(用于接收 MuseBot 发来的消息)
  • 6099: NapCat Web 管理界面(扫码登录 QQ)

:locked_with_key: 二、登录 QQ

  1. 打开浏览器访问 http://127.0.0.1:3080/ 或者 http://127.0.0.1:6099/
  2. 扫码登录 QQ 账号
  3. 两个软件都会有个key,妥善保存

:gear: 三、MuseBot 环境变量配置

在 MuseBot 启动前,需要配置 OneBot 相关的 3 个环境变量:

环境变量名 说明 示例值
QQ_ONEBOT_RECEIVE_TOKEN OneBot 向 MuseBot 发送消息时使用的 token(OneBot 客户端 token) MuseBot
QQ_ONEBOT_SEND_TOKEN MuseBot 向 OneBot 发送消息时使用的 token(OneBot 服务器 token) MuseBot
QQ_ONEBOT_HTTP_SERVER OneBot HTTP 服务器地址(即 OneBot 接收消息的接口) http://127.0.0.1:3000

例如:

export QQ_ONEBOT_RECEIVE_TOKEN=MuseBot
export QQ_ONEBOT_SEND_TOKEN=MuseBot
export QQ_ONEBOT_HTTP_SERVER=http://127.0.0.1:3000

:warning: 这三个变量必须与 OneBot 配置页面中的设置保持一致。


:counterclockwise_arrows_button: 四、OneBot 网络配置说明

登录 OneBot Web 控制台 → 「配置」 → 「网络配置」,按以下方式填写:

配置项 说明 示例值
HTTP 服务器 MuseBot 调用 Onebot 接口的地址 http://127.0.0.1:3000
HTTP 客户端 Onebot 向 MuseBot 推送消息事件的地址 http://127.0.0.1:36060/onebot
HTTP 鉴权 Key 与环境变量中 token 一致 MuseBot

image
image
image
image