Skip to content

supports Telegram, Discord, Slack, Lark(飞书),钉钉, 企业微信, QQ, 微信, compatible with various LLMs including OpenAI, Gemini, DeepSeek, Doubao, and OpenRouter. It offers intelligent conversation, image generation, video creation, and more. Works seamlessly in both private chats and group settings.

License

Notifications You must be signed in to change notification settings

idevopslab/MuseBot

 
 

Repository files navigation

MuseBot

This repository provides a Chat bot (Telegram, Discord, Slack, Lark(飞书),钉钉, 企业微信, QQ, 微信) that integrates with LLM API to provide AI-powered responses. The bot supports openai deepseek gemini openrouter LLMs, making interactions feel more natural and dynamic.
中文文档
Китайская документация

Usage Video

easiest way to use: https://www.youtube.com/watch?v=4UHoKRMfNZg
deepseek: https://www.youtube.com/watch?v=kPtNdLjKVn0
gemini: https://www.youtube.com/watch?v=7mV9RYvdE6I
chatgpt: https://www.youtube.com/watch?v=G_DZYMvd5Ug

🚀 Features

  • 🤖 AI Responses: Uses LLM API for chatbot replies.
  • Streaming Output: Sends responses in real-time to improve user experience.
  • 🏗 Easy Deployment: Run locally or deploy to a cloud server.
  • 👀 Identify Image: use image to communicate with LLM, see doc.
  • 🎺 Support Voice: use voice to communicate with LLM, see doc.
  • 🐂 Function Call: transform mcp protocol to function call, see doc.
  • 🌊 RAG: Support Rag to fill context, see doc.
  • 🌞 AdminPlatform: Use platform to manage MuseBot, see doc.
  • 🌛 Register: With the service registration module, robot instances can be automatically registered to the registration center doc
  • 🌈 Metrics: Support Metrics for monitoring, see doc.

📸 Support Platform

Platform Supported Description Docs / Links
🟦 Telegram Supports Telegram bot (go-telegram-bot-api based, handles commands, inline buttons, ForceReply, etc.) Docs
🌈 Discord Supports Discord bot Docs
🌛 Web API Provides HTTP/Web API for interacting with LLM (great for custom frontends/backends) Docs
🔷 Slack Supports Slack (Socket Mode / Events API / Block Kit interactions) Docs
🟣 Lark (Feishu) Supports Lark long connection & message handling (based on larksuite SDK, with image/audio download & message update) Docs
🆙 DingDing Supports Dingding long connection Docs
⚡️ Work WeChat Support Work WeChat http callback to trigger LLM Docs
🌞 QQ Support QQ http callback to trigger LLM Docs
🚇 Wechat Support Wechat http callback to trigger LLM Docs

Supported Large Language Models

Model Provider Text Generation Image Generation Video Generation Recognize Photo TTS Link
🌟 Gemini Google doc
💬 ChatGPT OpenAI doc
🐦 Doubao ByteDance doc
🐦 Qwen Aliyun doc
🧠 DeepSeek DeepSeek doc
⚙️ 302.AI 302.AI doc
🌐 OpenRouter OpenRouter doc
🌐 ChatAnywhere ChatAnywhere doc

🤖 Text Example

aa92b3c9580da6926a48fc1fc5c37c03 aa92b3c9580da6926a48fc1fc5c37c03

🎺 Multimodal Example

aa92b3c9580da6926a48fc1fc5c37c03 aa92b3c9580da6926a48fc1fc5c37c03

📥 Installation

  1. Clone the repository

    git clone https://github.com/yincongcyincong/MuseBot.git
    cd MuseBot
  2. Install dependencies

     go mod tidy
  3. Set up environment variables

     export TELEGRAM_BOT_TOKEN="your_telegram_bot_token"
     export DEEPSEEK_TOKEN="your_deepseek_api_key"

🚀 Usage

Run the bot locally:

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

Use 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-auth-token" --name my-telegram-bot  jackyin0822/MuseBot:latest
 ALIYUN:
 docker pull crpi-i1dsvpjijxpgjgbv.cn-hangzhou.personal.cr.aliyuncs.com/jackyin0822/musebot:latest

command: (doc)[https://github.com/yincongcyincong/MuseBot/blob/main/static/doc/param_conf.md]

⚙️ Configuration

You can configure the bot via environment variables:

Here’s the English version of your environment variable table: If you use parameter. Please use lower letter and underscore. for example: ./MuseBot -telegram_bot_token=xxx

Variable Name Description Default Value
TELEGRAM_BOT_TOKEN (required) Telegram bot token -
DISCORD_BOT_TOKEN Discord bot token -
SLACK_BOT_TOKEN Slack bot token -
SLACK_APP_TOKEN Slack app-level token -
LARK_APP_ID Lark (Feishu) App ID -
LARK_APP_SECRET Lark (Feishu) App Secret -
DING_CLIENT_ID DingTalk App Key / Client ID -
DING_CLIENT_SECRET DingTalk App Secret -
DING_TEMPLATE_ID DingTalk template message ID -
COM_WECHAT_TOKEN WeCom (Enterprise WeChat) token -
COM_WECHAT_ENCODING_AES_KEY WeCom EncodingAESKey -
COM_WECHAT_CORP_ID WeCom CorpID -
COM_WECHAT_SECRET WeCom App Secret -
COM_WECHAT_AGENT_ID WeCom Agent ID -
WECHAT_APP_ID WeChat Official Account AppID -
WECHAT_APP_SECRET WeChat Official Account AppSecret -
WECHAT_ENCODING_AES_KEY WeChat Official Account EncodingAESKey -
WECHAT_TOKEN WeChat Official Account Token -
WECHAT_ACTIVE Whether to enable WeChat message listening (true/false) false
QQ_APP_ID QQ Open Platform AppID -
QQ_APP_SECRET QQ Open Platform AppSecret -
QQ_ONEBOT_RECEIVE_TOKEN Token for ONEBOT → MuseBot event messages MuseBot
QQ_ONEBOT_SEND_TOKEN Token for MuseBot → ONEBOT message sending MuseBot
QQ_ONEBOT_HTTP_SERVER ONEBOT HTTP server address http://127.0.0.1:3000
DEEPSEEK_TOKEN (required) DeepSeek API key -
OPENAI_TOKEN OpenAI API key -
GEMINI_TOKEN Google Gemini API token -
OPEN_ROUTER_TOKEN OpenRouter token doc -
ALIYUN_TOKEN Aliyun Bailian token doc -
AI_302_TOKEN 302.AI token doc -
VOL_TOKEN Volcano Engine general token doc -
VOLC_AK Volcano Engine multimedia access key doc -
VOLC_SK Volcano Engine multimedia secret key doc -
ERNIE_AK Baidu ERNIE large model AK doc -
ERNIE_SK Baidu ERNIE large model SK doc -
CUSTOM_URL Custom DeepSeek API endpoint https://api.deepseek.com/
TYPE LLM type (deepseek/openai/gemini/openrouter/vol/302-ai/chatanywhere) deepseek
MEDIA_TYPE Media generation source (openai/gemini/vol/openrouter/aliyun/302-ai) vol
DB_TYPE Database type (sqlite3/mysql) sqlite3
DB_CONF Database config path or connection string ./data/muse_bot.db
LLM_PROXY LLM network proxy (e.g. http://127.0.0.1:7890) -
ROBOT_PROXY Bot network proxy (e.g. http://127.0.0.1:7890) -
LANG Language (en/zh) en
TOKEN_PER_USER Max tokens allowed per user 10000
MAX_USER_CHAT Maximum concurrent chats per user 2
HTTP_HOST MuseBot HTTP server port :36060
USE_TOOLS Enable function-calling tools (true/false) false
MAX_QA_PAIR Max number of question-answer pairs to keep as context 100
CHARACTER AI personality description -
CRT_FILE HTTPS certificate file path -
KEY_FILE HTTPS private key file path -
CA_FILE HTTPS CA certificate file path -
ADMIN_USER_IDS Comma-separated list of admin user IDs -
ALLOWED_USER_IDS Comma-separated user IDs allowed to use the bot; empty = all allowed; 0 = all banned -
ALLOWED_GROUP_IDS Comma-separated group IDs allowed to use the bot; empty = all allowed; 0 = all banned -
BOT_NAME Bot name MuseBot
CHAT_ANY_WHERE_TOKEN ChatAnyWhere platform token -
SMART_MODE Automatically check what you want to generate (txt/photo/video) true

CUSTOM_URL

If you are using a self-deployed DeepSeek, you can set CUSTOM_URL to route requests to your self-deployed DeepSeek.

DEEPSEEK_TYPE

deepseek: directly use deepseek service. but it's not very stable others: see doc

DB_TYPE

support sqlite3 or mysql

DB_CONF

if DB_TYPE is sqlite3, give a file path, such as ./data/telegram_bot.db if DB_TYPE is mysql, give a mysql link, such as root:admin@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local, database must be created.

LANG

choose a language for bot, English (en), Chinese (zh), Russian (ru).

other config

deepseek_conf
photo_conf
video_conf
audio_conf

Command

/clear $clear

clear all of your communication record with deepseek. this record use for helping deepseek to understand the context.

/retry $retry

retry last question.

/txt_type /photo_type /video_type /rec_type $txt_type $photo_type $video_type $rec_type

choose txt/photo/video/recognize model type.
aa92b3c9580da6926a48fc1fc5c37c03 aa92b3c9580da6926a48fc1fc5c37c03

/txt_model /img_model /video_model /rec_model $txt_model $img_model $video_model $rec_model

choose txt/photo/video/recognize model.
aa92b3c9580da6926a48fc1fc5c37c03 aa92b3c9580da6926a48fc1fc5c37c03

/mode $mode

show current model type and model.
aa92b3c9580da6926a48fc1fc5c37c03

/state $state

calculate one user token usage.
aa92b3c9580da6926a48fc1fc5c37c03

/photo /edit_photo $photo $edit_photo

aa92b3c9580da6926a48fc1fc5c37c03

/edit_photo will update you photo base on your description.
aa92b3c9580da6926a48fc1fc5c37c03

/video $video

aa92b3c9580da6926a48fc1fc5c37c03

/chat $chat

allows the bot to chat through /chat command in groups, without the bot being set as admin of the group.
aa92b3c9580da6926a48fc1fc5c37c03

/help $help

aa92b3c9580da6926a48fc1fc5c37c03

/task $task

multi agent communicate with each other!

/change_photo $change_photo

only for tencent app (wechat, qq, work wechat)
change photo base on your prompt.
aa92b3c9580da6926a48fc1fc5c37c03

/rec_photo $rec_photo

only for tencent app (wechat, qq, work wechat)
recognize photo base on your prompt.
aa92b3c9580da6926a48fc1fc5c37c03

/save_voice $save_voice

only for tencent app (wechat, qq, work wechat) save your voice to pc. aa92b3c9580da6926a48fc1fc5c37c03

Deployment

Deploy with Docker

  1. Build the Docker image

     docker build -t MuseBot .
  2. Run the container

      docker run -d -v /home/user/xxx/data:/app/data -e TELEGRAM_BOT_TOKEN="telegram-bot-token" -e DEEPSEEK_TOKEN="deepseek-auth-token" --name my-bot MuseBot

Contributing

Feel free to submit issues and pull requests to improve this bot. 🚀

group

telegram-group: https://t.me/+WtaMcDpaMOlhZTE1 , or you can have a try robot Guanwushan_bot. every body have 10000 token to try this bot, please give me a star!

QQ群:1031411708

License

MIT License © 2025 jack yin

About

supports Telegram, Discord, Slack, Lark(飞书),钉钉, 企业微信, QQ, 微信, compatible with various LLMs including OpenAI, Gemini, DeepSeek, Doubao, and OpenRouter. It offers intelligent conversation, image generation, video creation, and more. Works seamlessly in both private chats and group settings.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 81.9%
  • JavaScript 16.7%
  • Shell 0.7%
  • Dockerfile 0.3%
  • Makefile 0.3%
  • HTML 0.1%