跳转到主要内容
搭一个属于自己的 Telegram 机器人,用 RuAPI 上的 GPT、Claude、DeepSeek 等模型回答。我们用开源项目 ChatGPT-Telegram-Workers(MIT 许可):它跑在 Cloudflare Workers 免费套餐上,不需要服务器和域名。默认只有机器人主人能和它对话,陌生人花不了你的余额。 本文于 2026-11-09 按项目当前版本实测。全程不用写代码。想自己用 Python 写机器人,见 Telegram 机器人示例。

准备

  • RuAPI 密钥。 控制台 →「令牌管理」→ 创建 sk-... 密钥。新用户一般注册后就有体验额度,可以用 deepseek-flash、claude-haiku-5-5、gpt-6-luna。用其他模型要先充值——见充值。
  • Cloudflare 账号(免费)。
  • GitHub 或 GitLab 账号。 Cloudflare 会把机器人代码复制进去。最好用一个单独的空账号,原因见下文。
  • Telegram,手机或电脑都行。

第 1 步:创建机器人,查自己的 ID

1

在 @BotFather 建机器人

打开 @BotFather,发 /newbot,起一个名字和以 _bot 结尾的用户名。BotFather 会回一串 Token,保存好,别给别人看。
2

查你的 Telegram ID

打开 @userinfobot,发 /start。它会回一个数字 Id,这就是你的 ADMIN_ID。

第 2 步:部署到 Cloudflare

2

连接 Git 账号

不连 GitHub 或 GitLab 就没法部署(提示 Connect a Git account to continue)。点连接 GitHub 的按钮并授权。
在 GitHub 的「Install & Authorize」页面,不要把放着工作代码的主账号的全部仓库授权给它:Cloudflare 会因此能读、能改这些仓库。最稳妥的是连一个单独的空 GitHub 账号,那里放心选 All repositories。
3

填表

ADMIN_PASSWORD 标着「可选」,但不填表单交不上去。填一个 20 位以上的随机密码并保存好:用它能打开机器人后台,你的 RuAPI 密钥就存在那里。
构建命令、部署命令保持默认。不要开 Cloudflare Access 保护,开了 Telegram 的消息就送不进机器人。
4

开始部署

构建约 1 分钟,等所有阶段都变成绿勾。

第 3 步:打开 workers.dev 地址

新项目的 *.workers.dev 地址可能默认是关的,关着 Telegram 就连不上机器人。打开项目 →「域」(Domains)标签 → 打开生产(Production)地址那一行的开关。预览(Preview)那一行可能跟着一起打开,没有影响。复制生产地址,下一步要用。 「任何拥有此 URL 的人都可以访问」不用担心:能和机器人对话的只有 ADMIN_ID,后台有密码。

第 4 步:登录后台,绑定 webhook

1

登录后台

打开 https://<你的项目>.<你的子域>.workers.dev/admin,用 ADMIN_PASSWORD 登录。
2

绑定 webhook

在同一个浏览器里打开 https://<你的项目>.<你的子域>.workers.dev/init,看到 Webhook bound successfully 就成功了。/init 页面:Webhook bound successfully如果显示 Unauthorized. Open /admin, log in, then retry.,说明还没登录后台。回到上一步登录,再点 Retry。/init 页面:Unauthorized. Open /admin, log in, then retry.

第 5 步:接上 RuAPI

在后台「Chat」标签点 Add Provider: 机器人后台:Add Provider 表单和 API Format 选项
1

模型

点 Fetch Models,会拉回 RuAPI 的模型列表。点要用的模型旁边的 +,例如 deepseek-flash、claude-haiku-5-5、gpt-6-luna。拉不下来就用 Add Model 手动加,准确的模型 ID 见价格页。机器人后台:Fetch Models 拉回了 RuAPI 的模型列表
2

默认模型

在「Models」列表里点一个模型,打勾的就是默认模型。建议先用 deepseek-flash,是最便宜的模型之一,见价格页。
3

设 RuAPI 为默认并保存

点 Set as Default,再点 Save。服务商列表里 RuAPI 旁边应该出现勾。如果有多个服务商,不设的话机器人可能不走 RuAPI。机器人后台:RuAPI 的模型和 Set as Default 按钮机器人后台:服务商列表里 RuAPI 打了勾

第 6 步:测试

在 Telegram 里打开你的机器人:
  1. 发 /start,机器人会回「新的对话已经开始」。机器人的界面提示默认就是中文,想改成英文发 /setenv settings.language=en;要让 / 命令菜单也变成英文,再在浏览器里打开一次 /init。
  2. 发「你好,用一句话介绍你自己」,回答会边生成边显示。
  3. 发 /models → RuAPI → 换一个模型,发 /new,再问一句。
  4. 发一张照片,问「图里有什么」。deepseek-flash 看不了图,发图前先换成 claude-haiku-5-5 之类的模型。哪些模型能看图见图片输入。
换了模型,记得发 /new。 /models 只换模型,不换对话:机器人会把之前的聊天记录整段发给新模型,新模型会把前一个模型的回答当成自己说的。比如 deepseek-flash 回答过之后换成 Claude,Claude 可能也说自己是 DeepSeek,还会沿用前一个模型的风格和错误。而且旧记录每次都要重新计费。发 /new 清空记录,新模型从头开始。
机器人的请求可以在 RuAPI 控制台 →「使用日志」里看到。

机器人全部命令

Telegram 菜单里的命令(输入框旁边的 / 按钮): 菜单里没有、但能用的命令: 私聊里 /admin、/system、/setenv、/setenvs、/delenv 只有 ADMIN_ID 能用。直接发一段 JSON(前面不带命令)会被当成普通文字发给模型,改不了设置。

常用设置

可以在后台「Settings」标签改,也可以用 /setenv: 恢复默认:/delenv settings.systemInitMessage。 想让朋友也能用,在「Settings」里把他们的 Telegram ID 加进允许的用户。他们的请求都从你的 RuAPI 余额扣。注意:朋友也能用 /models 换模型,而且换了对所有人生效。模型列表里最好只留便宜的模型。

费用

  • Cloudflare:个人用的机器人,Workers 免费套餐一般够用。
  • RuAPI:按 token 计费,见价格。机器人每发一条消息都会把聊天记录重新发给模型,所以聊得越长,每次回答越贵。换话题时发 /new。
  • 用 Claude 时,RuAPI 会自动缓存对话里重复的开头部分:两次发言间隔不超过 5 分钟,重复发送的聊天记录就更便宜——见提示缓存。

出问题时

Cloudflare 部署必须连 GitHub 或 GitLab,这一步跳不过去。连一个单独的空账号(见第 2 步)。
这一栏实际上是必填的,填一个长的随机密码。
先打开 /admin 用 ADMIN_PASSWORD 登录,再打开 /init 点 Retry。
  • 确认 workers.dev 地址已打开(第 3 步),/init 显示成功。
  • Cloudflare Access 要关着。
  • ADMIN_ID 填的是 @userinfobot 给的数字 ID,不是用户名。
用 /models 换模型后,机器人还接着原来的对话,新模型会看到「自己」之前说过的话。比如 DeepSeek 回答过之后换成 Claude,Claude 可能也说自己是 DeepSeek。换模型后发 /new。
充值前只能用 deepseek-flash、claude-haiku-5-5、gpt-6-luna。在 /models 里选其中一个,或充值。
后台和 /init 都通过 *.workers.dev 地址打开。如果你所在的地区打不开或者很慢,换个网络试试。和机器人聊天走的是 Telegram,不受影响。
  • API Key 要填 RuAPI 的 sk-... 密钥。
  • Base URL 要一字不差地填 https://www.ruapi.ai/v1。

安全

  • RuAPI 密钥和机器人 Token 存在你自己的 Cloudflare 账号里,不会进 Git 仓库。
  • 可以给机器人单独建一个设了额度上限的 RuAPI 密钥,最坏情况也只会花到上限为止。
  • 不用了:在 Cloudflare 删掉 Worker,在 @BotFather 用 /deletebot 删掉机器人,在 RuAPI 控制台删掉密钥,在 GitHub 删掉自动建的仓库。到 GitHub(Settings → Applications)撤销 Cloudflare 的授权。