Telegram 防骚扰双向聊天机器人 - AI 驱动 开源免费

🛡️ Telegram 防骚扰双向聊天机器人 - AI 驱动 开源免费

一个功能强大且易于部署的 Telegram 双向聊天机器人。

如果你正在寻找一个方案来管理用户沟通、同时有效防止机器人骚扰,那么这个项目可能正是你需要的!


项目亮点

  • 🤖 AI 智能过滤: 集成 Google Gemini,自动识别垃圾信息和恶意内容。
  • 🛡人机验证: 新用户必须通过 AI 生成的验证问题,彻底告别机器人骚扰。
  • 💬 独立话题沟通: 每个用户都在独立的 Telegram 话题 (Forum) 中进行对话,管理一目了然。
  • 自助解封: 用户被拉黑后,可以通过回答 AI 问题来自助解封,减轻管理员负担。
  • 🖼多媒体支持: 完美转发图片、视频、文件,并保留 Markdown 格式。
  • 高性能:异步架构,轻松应对大量消息,不卡顿。
  • 🤖 智能自动回复 | 基于知识库的 AI 自动回复功能,在内容审查通过后自动回答用户问题,支持 Markdown 格式,管理员可随时查看自动回复内容。

🚀 快速部署

部署超级简单,只需要两步:

1. 创建并编辑配置文件 .env

在一个空目录中创建一个 .env 文件,填入你的 Bot Token 等信息。

# --- 必需配置 ---

# Telegram Bot配置
# 从 @BotFather 获取您的 Bot Token
BOT_TOKEN=your_bot_token_here

# 您的Telegram话题群组ID
# 将机器人设为群组管理员后,在群组里发送 /getid ,机器人会自动回复群组ID
FORUM_GROUP_ID=-1001234567890

# 管理员ID(您的Telegram用户ID),多个ID用逗号分隔
ADMIN_IDS=123456789,987654321

# --- 可选配置 ---

# Gemini API配置 (如果您需要使用AI相关功能)
# 从 Google AI Studio 获取
GEMINI_API_KEY=your_gemini_api_key_here

# OpenAI API配置 (可选)
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_BASE_URL=https://api.openai.com/v1

# 是否启用AI自动识别垃圾信息和恶意内容
ENABLE_AI_FILTER=true

# AI判断的置信度阈值(0-100),高于此值才会被认为是恶意内容
AI_CONFIDENCE_THRESHOLD=70

# --- 功能开关 ---

# 是否启用新用户人机验证
VERIFICATION_ENABLED=true

# 是否启用黑名单用户自动解封机制
AUTO_UNBLOCK_ENABLED=true

# --- 数据库配置 ---
# 容器内路径,通常不需要修改
DATABASE_PATH=./data/bot.db

# --- 性能配置 ---

# 消息队列处理的worker数量
MAX_WORKERS=5

# 队列中消息的超时时间(秒)
QUEUE_TIMEOUT=30

# --- 验证配置 ---

# 人机验证的超时时间(秒)
VERIFICATION_TIMEOUT=300

# 用户最大尝试验证次数
MAX_VERIFICATION_ATTEMPTS=3

# --- 速率限制 ---
# 通常不需要修改

# Bot每分钟最大处理消息数(每个用户)
MAX_MESSAGES_PER_MINUTE=30

# -- Watchtower 通知钩子(默认禁用,启用需去除配置的#注释) --

# Watchtower 使用 shoutrrr 作为统一通知系统(支持包括 Telegram 在内的等多种渠道)
#WATCHTOWER_NOTIFICATIONS=shoutrrr

# 填入 通知渠道 的钩子(以 Telegram 举例)
#WATCHTOWER_NOTIFICATION_URL=telegram://token@telegram?chats=channel-1[,chat-id-1,...]

2. 一行命令启动

docker run -d \
  --name tg-antiharassment-bot \
  -v $(pwd)/.env:/app/.env \
  -v $(pwd)/data:/app/data \
  --restart unless-stopped \
  weijiaqaq/tg-antiharassment-bot:latest

搞定!你的机器人现在已经在线运行了。


📖 使用指南

🔑 获取必要信息

  1. Bot Token: 在 Telegram 中与 @BotFather 对话,使用 /newbot 命令创建机器人即可获得。
  2. 话题群组 ID: 创建一个超级群组 (Supergroup),在设置中启用“话题”(Topics) 功能。然后将您的机器人添加为该群组的管理员。在群组中发送/getid,机器人会自动回复包含群组 ID 的信息。
  3. Gemini API 密钥 (可选): 访问 Google AI Studio 创建并复制您的 API 密钥。

📜 命令列表

用户命令
  • /start - 启动机器人,显示欢迎信息。
  • /getid - 显示当前用户/群组ID。
  • /help - 显示帮助信息。
管理员命令
  • /block - 对应话题直接发送永久拉黑用户。
  • /blacklist - 查看当前的黑名单列表。
  • /stats - 查看机器人运行统计信息。
  • /view_filtered - 查看被内容审查拦截的消息与发送者信息
  • /autoreply - 管理自动回复功能(开启/关闭、管理知识库)

🔗 项目链接

项目完全开源,欢迎大家试用、提建议或者贡献代码!

点赞
  1. solaireh3说道:

    牛逼

  2. Hamster-Prime说道:

    忘记构建arm64镜像了,已补上,确实没想到真的有用arm机器跑的

  3. hasateks说道:

    docker希望能支持socks5代理,可以在家里的nas上部署

发表回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮