CF-ai-TGbot:A powerful TG bot based on Cloudflare AI Gateway🚀
请帮我点上Star✨,你的支持是对我最大的鼓励
这是一个功能强大、可高度自定义的 Telegram 机器人,由 Node.js 驱动。它通过 Cloudflare AI Gateway 连接到各种大语言模型 (LLM),实现了智能、带有上下文记忆的连续对话功能。
DEMO:https://t.me/CFAIFreeTGbot
✨ 核心特性
-
⚡️ Cloudflare AI Gateway 集成: 所有 AI 请求都通过 Cloudflare 进行路由,方便你进行日志记录、分析和缓存,同时保护你的后端 AI 提供商密钥。
-
🧠 上下文对话记忆: 机器人能够记住在群组中的对话历史,实现流畅的连续问答。记忆长度可控。
-
🎨 优雅的格式化回复: 自动将 AI 生成的 Markdown 文本转换为 Telegram 支持的 HTML 格式,完美显示代码块、加粗、斜体和列表。
-
🎯 多种触发机制:
- 在被 @提及 或 回复 其消息时激活。
- 可设置特定关键词,当群内出现该关键词时自动回应。
-
💬 聊天级别高度自定义:
- 独立人设: 可为每个群组或私聊设置完全不同的背景人设 (
/background)。 - 独立模型: 可为每个聊天指定不同的 AI 模型 (
/setmodel)。 - 独立关键词: 可为每个群组设置不同的关键词回复 (
/notice)。
- 独立人设: 可为每个群组或私聊设置完全不同的背景人设 (
-
🛠️ 强大的命令系统:
- 思考过程控制: 可使用
/showthink命令决定是否显示 AI 的思考过程。 - 一键重置: 使用
/clear清空记忆,或使用/reset将特定聊天的所有设置恢复为默认值。
- 思考过程控制: 可使用
-
🚀 易于部署: 使用 Node.js 和 PM2,可以轻松地在任何 VPS 上实现 7x24 小时稳定运行。
-
应用实例(screenshots)
-

-

🔧 环境准备 (Prerequisites)
在开始部署之前,请确保你已拥有以下所有条件:
-
Telegram Bot Token: 从 Telegram 的 @BotFather 创建机器人后获得。
-
Cloudflare 账户凭证:
Account IDAI Gateway NameAPI Token(具有 AI Gateway 读写权限)- https://dash.cloudflare.com/profile/api-tokens
- 单击创建令牌
- 使用Workers AI 模板
- 单击继续以显示摘要
- 单击创建令牌
- 复制您的令牌,设置环境变量
-
一台 VPS 服务器: 推荐使用 Ubuntu 或 Debian 系统。
-
Node.js: 推荐 v18 或更高版本 (教程中使用
nvm进行安装)。 -
Git: 用于从代码仓库克隆项目。
🚀 部署教程 (Deployment)
按照以下步骤在你的 VPS 上从零开始部署此机器人。
1. 安装基础环境
首先,安装 Node.js (通过 nvm) 和 Git。
# 安装 nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
# 安装最新的 Node.js LTS 版本
nvm install --lts
2. 克隆项目并配置
将本项目的代码克隆到你的服务器,并进入项目目录
# 安装所有依赖库
npm install3. 配置环境变量
将环境变量填入.env
4. 使用 PM2 启动并持久化运行
我们将使用 PM2 来管理我们的 Node.js 进程,确保它能在后台持续运行并在崩溃后自动重启。
# 全局安装 PM2
npm install pm2 -g
# 使用 PM2 启动机器人,并给它一个名字
pm2 start bot.js --name "telegram-bot"
# 设置 PM2 开机自启 (它会生成一条命令,复制并运行它)
pm2 startup
# 保存当前进程列表,以便重启后恢复
pm2 save至此,你的机器人已成功部署并开始 7x24 小时运行!
你可以使用以下 pm2 命令来管理你的机器人:
pm2 list: 查看所有正在运行的应用的状态。pm2 logs telegram-bot: 查看机器人的实时日志(用于排错)。pm2 restart telegram-bot: 重启机器人(例如更新代码后)。pm2 stop telegram-bot: 停止机器人。
💬 如何使用 (Bot Usage)
将机器人添加到你的 Telegram 群组并设为管理员后,你可以:
- 开始对话: 发送
/start或/help查看欢迎和帮助信息。 - 与 AI 聊天:
- 在群组中发送消息并 @你的机器人名字 (例如:
@MyAIBot 为什么天空是蓝色的?)。 - 回复 机器人的任何一条消息继续对话。
- 在群组中发送消息并 @你的机器人名字 (例如:
- 切换 AI 模型:
- 发送
/setmodel [模型名称]。 - 例如:
/setmodel gpt4o-mini。 - 不带参数发送
/setmodel可以查看当前和所有可用模型。
- 发送
- 清空对话记忆:
- 当你想要开始一个全新的话题时,发送
/clear命令。
- 当你想要开始一个全新的话题时,发送
⚙️ 自定义你的机器人 (Customization)
你可以通过修改 bot.js 文件头部的配置区域来轻松自定义机器人的行为。
PRESET_PROMPT: 修改这里的文本来改变 AI 的“人设”和回答风格。ALLOWED_MODELS: 在这里添加、删除或修改可用的 AI 模型列表。键是用户输入的命令,值是 Cloudflare 的模型路径。MAX_CONTEXT_MESSAGES: 调整上下文记忆的消息数量。数字越大,记忆越长,但成本和延迟也可能更高。