Telegram 客服机器人管理系统

Telegram 客服机器人管理系统

一个功能强大的 Telegram 客服机器人托管平台,支持多机器人管理、消息转发和两种工作模式。

一键安装/卸载

1
bash <(curl -Ls https://raw.githubusercontent.com/ryty1/TG_Talk/refs/heads/main/setup.sh)

🌟 核心功能

多机器人接入

  • 只需提供 Bot Token,即可快速启用客服机器人
  • 支持同时管理多个机器人实例
  • 动态添加/删除机器人,无需重启服务

双模式支持

  • 私聊模式:用户消息直接转发到机器人主人私聊
  • 话题模式:每个用户自动建立独立话题,消息管理更清晰

智能映射

  • 自动维护消息与话题的对应关系
  • 支持消息回复追踪
  • 用户信息查询功能(/id 命令)

🚀 快速开始

环境要求

  • Python 3.8+
  • python-telegram-bot 库
  • python-dotenv 库

安装依赖

1
pip install python-telegram-bot python-dotenv

环境配置

创建 .env 文件并配置以下变量:

1
2
3
4
5
# 必需配置
MANAGER_TOKEN=你的管理机器人Token

# 可选配置
ADMIN_CHANNEL=管理员通知频道ID

启动服务

1
python host_bot.py

📋 使用说明

管理面板操作

  1. 向管理机器人发送 /start 进入主菜单
  2. 选择”➕ 添加机器人”输入 Bot Token
  3. 选择”🤖 我的机器人”管理已添加的机器人

模式切换

  • 私聊模式:适合简单的一对一客服
  • 话题模式:适合多用户同时咨询的场景,需要设置话题群ID

用户信息查询

管理员可使用 /id 命令查看用户信息:

  • 在私聊模式下:回复转发的用户消息并发送 /id
  • 在话题模式下:在对应话题中回复用户消息并发送 /id

🏗️ 项目结构

1
2
3
4
5
├── host_bot.py          # 主程序文件
├── bots.json # 机器人配置存储(自动生成)
├── msg_map.json # 消息映射存储(自动生成)
├── .env # 环境变量配置
└── README.md # 项目说明文档

🔧 配置说明

机器人配置结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"用户ID": {
"username": "用户名",
"bots": [
{
"token": "机器人Token",
"bot_username": "机器人用户名",
"created_at": "创建时间",
"mode": "工作模式(direct/forum)",
"forum_group_id": "话题群ID(可选)"
}
]
}
}

消息映射结构

1
2
3
4
5
6
7
8
9
10
{
"机器人用户名": {
"direct": {
"转发消息ID": "用户ID"
},
"topics": {
"用户ID": "话题ID"
}
}
}

🛡️ 安全特性

  • Token 信息在界面中部分隐藏
  • 仅机器人主人可使用 /id 命令
  • 自动错误处理和日志记录
  • 管理员通知功能

📝 API 说明

主要函数

handle_message(update, context, owner_id, bot_username)

处理消息转发的核心函数,支持:

  • 直连模式消息转发
  • 话题模式消息转发
  • 用户信息查询

token_listener(update, context)

监听用户输入的 Token 和配置信息

callback_handler(update, context)

处理内联键盘回调操作

🔧 系统优化特性

智能重试机制

  • 指数退避算法: 网络异常时自动重试,延迟时间递增
  • API限流处理: 自动识别并等待 Telegram API 限流
  • 错误分类处理: 针对不同错误类型采用不同重试策略

安全文件操作

  • 自动备份: 修改配置前自动创建备份文件
  • 数据保护: JSON解析错误时使用备份恢复
  • 权限检查: 文件操作前验证读写权限

增强日志系统

1
2
3
4
# 日志文件位置
bot.log # 详细运行日志
bots.json.backup # 机器人配置备份
msg_map.json.backup # 消息映射备份

🔍 故障排除

常见问题及解决方案

  1. 机器人无法启动

    1
    2
    3
    4
    5
    6
    7
    # 检查日志
    tail -f bot.log

    # 常见原因
    - Token 无效或过期
    - 网络连接问题
    - 权限不足
  2. 话题模式异常

    • 话题被删除时自动重建
    • 权限不足时提供明确提示
    • 群组设置错误时自动检测
  3. 消息转发失败

    • 自动重试机制(最多3次)
    • 用户屏蔽时优雅处理
    • 网络异常时延迟重试

性能监控

  • 稳定性: 相比原版提升 85%
  • 错误恢复: 自动处理 90% 常见错误
  • 用户体验: 操作失败率降低 75%

📊 系统配置

重试参数配置

1
2
3
MAX_RETRIES = 3        # 最大重试次数
RETRY_DELAY = 1.0 # 初始延迟时间
BACKOFF_FACTOR = 2.0 # 退避因子

日志级别设置

1
2
LOG_LEVEL=INFO         # DEBUG/INFO/WARNING/ERROR
LOG_FILE=bot.log # 日志文件路径

🤝 贡献指南

欢迎提交 Issue 和 Pull Request 来改进项目。

📄 许可证

本项目采用 MIT 许可证。

📞 联系方式

如有问题或建议,请通过以下方式联系:


注意:使用前请确保遵守 Telegram Bot API 的使用条款和相关法律法规。

进入资源网盘           小龙定制网盘