-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Description
MuseBot
本仓库提供了一个是基于 Golang 构建的 智能机器人,集成了 LLM API,实现 AI 驱动的自然对话与智能回复。
它支持 OpenAI、DeepSeek、Gemini、Doubao、Qwen 等多种大模型,
并可无缝接入 Telegram、Discord、Slack、Lark(飞书)、钉钉、企业微信、QQ、微信、onebot
等聊天平台,为用户带来更加流畅、多平台联通的 AI 对话体验。
English Doc
🌞 视频
最简单教程: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/
🚀 功能特性
- 🤖 AI 回复:使用 大模型 API 提供聊天机器人回复。
- ⏳ 流式输出:实时发送回复,提升用户体验。
- 🏗 轻松部署:可本地运行或部署到云服务器。
- 👀 图像识别
:使用图片与大模型进行交流,详见文档。 - 🎺 支持语音
:使用语音与大模型进行交流,详见文档。 - 🐂 函数调用:将
MCP协议转换为函数调用,详见文档。 - 🌊 RAG(检索增强生成):支持
RAG以填充上下文,详见文档。 - 🌞 管理平台(AdminPlatform)
:使用管理平台来管理MuseBot,详见文档。 - 🌛 注册中心
:支持服务注册,机器人实例可自动注册,详见 文档 - 🌈 监控数据:支持监控数据,详见文档。
支持平台
| 平台 | 支持情况 | 简要说明 | 文档 / 链接 |
|---|---|---|---|
| 🟦 Telegram | ✅ | 支持 Telegram 机器人(基于 go-telegram-bot-api,可处理命令、内联按钮、ForceReply 等) | 文档 |
| 🌈 Discord | ✅ | 支持 Discord 机器人 | 文档 |
| 🌛 Web API | ✅ | 提供 HTTP/Web API 与 LLM 交互(适合构建自己的前端或后端集成) | 文档 |
| 🔷 Slack | ✅ | 支持 Slack(Socket Mode / Events API / Block Kit 交互) | 文档 |
| 🟣 Lark(飞书) | ✅ | 支持 Lark 长连接与消息处理(基于 larksuite SDK,支持图片/音频下载与消息更新) | 文档 |
| 🆙 钉钉 | ✅ | 支持钉钉长链接服务 | 文档 |
| ⚡️ Work WeChat | ✅ | 支持企业微信触发大模型 | 文档 |
| ✅ | 支持QQ机器人触发大模型 | 文档 | |
| ✅ | 支持微信触发大模型 | 文档 | |
| 🚗 Personal QQ | ✅ | 支持个人QQ触发大模型 | 文档 |
支持的大型语言模型
| 模型 | 提供方 | 文本生成 | 图片生成 | 视频生成 | 识别照片 | 返回语音 | 链接 |
|---|---|---|---|---|---|---|---|
| 🌟 Gemini | 谷歌 | ✅ | ✅ | ✅ | ✅ | ✅ | 文档 |
| 💬 ChatGPT | OpenAI | ✅ | ✅ | ❌ | ✅ | ✅ | 文档 |
| 🐦 Doubao | 字节跳动 | ✅ | ✅ | ✅ | ✅ | ✅ | 文档 |
| 🐦 Qwen | 阿里云 | ✅ | ✅ | ✅ | ✅ | ✅ | 文档 |
| ⚙️ 302.AI | 302.AI | ✅ | ✅ | ✅ | ✅ | ❌ | 文档 |
| 🧠 DeepSeek | DeepSeek | ✅ | ❌ | ❌ | ❌ | ❌ | 文档 |
| 🌐 OpenRouter | OpenRouter | ✅ | ✅ | ❌ | ✅ | ❌ | 文档 |
| 🌐 ChatAnywhere | ChatAnywhere | ✅ | ✅ | ❌ | ✅ | ❌ | 文档 |
🤖 文本示例
🎺 多模态示例
📥 安装
-
克隆仓库
git clone git@github.com:yincongcyincong/MuseBot.git cd MuseBot -
安装依赖
go mod tidy
-
设置环境变量
export TELEGRAM_BOT_TOKEN="你的Telegram Bot Token" export DEEPSEEK_TOKEN="你的DeepSeek API密钥"
🚀 使用方法
在本地运行:
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:latest命令介绍: (文档)[https://github.com/yincongcyincong/MuseBot/blob/main/static/doc/param_conf_ZH.md]
⚙️ 配置项
如果用参数形式,使用小写加下划线形式,比如./MuseBot -telegram_bot_token=xxx
| 环境变量名字 | 描述 | 默认值 |
|---|---|---|
| TELEGRAM_BOT_TOKEN (required) | Telegram 机器人 Token | - |
| DISCORD_BOT_TOKEN | Discord 机器人 Token | - |
| SLACK_BOT_TOKEN | Slack 机器人 Bot Token | - |
| SLACK_APP_TOKEN | Slack App-level Token | - |
| LARK_APP_ID | 飞书 App ID | - |
| LARK_APP_SECRET | 飞书 App Secret | - |
| DING_CLIENT_ID | 钉钉 App Key / Client ID | - |
| DING_CLIENT_SECRET | 钉钉 App Secret | - |
| DING_TEMPLATE_ID | 钉钉 模板消息 ID | - |
| COM_WECHAT_TOKEN | 企业微信 Token | - |
| COM_WECHAT_ENCODING_AES_KEY | 企业微信 EncodingAESKey | - |
| COM_WECHAT_CORP_ID | 企业微信 CorpID | - |
| COM_WECHAT_SECRET | 企业微信 Secret | - |
| COM_WECHAT_AGENT_ID | 企业微信 AgentID | - |
| WECHAT_APP_ID | 微信公众号 AppID | - |
| WECHAT_APP_SECRET | 微信公众号 AppSecret | - |
| WECHAT_ENCODING_AES_KEY | 微信公众号 EncodingAESKey | - |
| WECHAT_TOKEN | 微信公众号 Token | - |
| WECHAT_ACTIVE | 是否启用公众号消息监听(true/false) | false |
| QQ_APP_ID | QQ 开放平台 AppID | - |
| QQ_APP_SECRET | QQ 开放平台 AppSecret | - |
| QQ_NAPCAT_RECEIVE_TOKEN | NapCat → MuseBot 事件推送 token | MuseBot |
| QQ_NAPCAT_SEND_TOKEN | MuseBot → NapCat 消息发送 token | MuseBot |
| QQ_NAPCAT_HTTP_SERVER | NapCat HTTP 服务地址 | http://127.0.0.1:3000 |
| DEEPSEEK_TOKEN (required) | DeepSeek API Key | - |
| OPENAI_TOKEN | OpenAI API Key | - |
| GEMINI_TOKEN | Google Gemini Token | - |
| OPEN_ROUTER_TOKEN | OpenRouter Token doc | - |
| ALIYUN_TOKEN | 阿里云百炼 Token doc | - |
| AI_302_TOKEN | 302.AI Token doc | - |
| VOL_TOKEN | 火山引擎通用 Token doc | - |
| VOLC_AK | 火山引擎多媒体 AK doc | - |
| VOLC_SK | 火山引擎多媒体 SK doc | - |
| ERNIE_AK | 百度文心大模型 AK doc | - |
| ERNIE_SK | 百度文心大模型 SK doc | - |
| ALIYUN_TOKEN | 阿里云大模型 Token | - |
| AI_302_TOKEN | 302.AI 平台 Token | - |
| OPEN_ROUTER_TOKEN | OpenRouter API Key | - |
| CUSTOM_URL | 自定义 DeepSeek API 地址 | https://api.deepseek.com/ |
| TYPE | LLM 类型(deepseek/openai/gemini/openrouter/vol/302-ai/chatanywhere) | deepseek |
| MEDIA_TYPE | 图片/视频生成模型来源(openai/gemini/vol/openrouter/aliyun/302-ai) | vol |
| DB_TYPE | 数据库类型(sqlite3/mysql) | sqlite3 |
| DB_CONF | 数据库配置路径或连接字符串 | ./data/muse_bot.db |
| LLM_PROXY | LLM 网络代理(如 http://127.0.0.1:7890) | - |
| ROBOT_PROXY | 机器人访问代理(如 http://127.0.0.1:7890) | - |
| LANG | 语言(en/zh) | en |
| TOKEN_PER_USER | 每个用户可用的最大 token 数 | 10000 |
| MAX_USER_CHAT | 每个用户可同时存在的最大对话数 | 2 |
| HTTP_HOST | MuseBot HTTP 服务监听端口 | :36060 |
| USE_TOOLS | 是否启用 Function Call 工具(true/false) | false |
| MAX_QA_PAIR | 上下文保留问答对数量 | 100 |
| CHARACTER | AI 的人格设定描述 | - |
| CRT_FILE | HTTPS 公钥文件路径 | - |
| KEY_FILE | HTTPS 私钥文件路径 | - |
| CA_FILE | HTTPS CA 证书路径 | - |
| ADMIN_USER_IDS | 管理员用户 ID,逗号分隔 | - |
| ALLOWED_USER_IDS | 允许使用的用户 ID,逗号分隔;空=全部可用;0=全部禁用 | - |
| ALLOWED_GROUP_IDS | 允许使用的群组 ID,逗号分隔;空=全部可用;0=全部禁用 | - |
| BOT_NAME | Bot 名称 | MuseBot |
| CHAT_ANY_WHERE_TOKEN | ChatAnyWhere 平台 Token | - |
其他配置
💬 命令
/clear
清除与 DeepSeek 的历史对话记录,用于上下文清理。
/retry
重试上一次问题。
/txt_type /photo_type /video_type /rec_type
/txt_model /img_model /video_model /rec_model
/mode
/balance
查询当前用户的 DeepSeek API 余额。
/state
统计用户的 Token 使用量。
/photo /edit_photo
/video
/chat
在群组中使用 /chat 命令与机器人对话,无需将机器人设置为管理员。
/help
显示帮助信息。
/change_photo
对腾讯系的app起作用:qq,微信 ,企业微信
输入一段prompt用户修改图片

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

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

🚀 Docker 部署
-
构建 Docker 镜像
docker build -t musebot . -
运行 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 musebot





