免费快速部署自己的 ChatGPT Telegram 机器人

2023-03-03 15:07:41 +08:00
 tbxark

上班摸鱼随手写了个小脚本,最简单快捷部署属于自己的 ChatGPT Telegram 机器人的方法,单文件,直接复制粘贴一把梭,无需任何依赖,无需配置本地开发环境,不用域名,免服务器。

https://github.com/TBXark/ChatGPT-Telegram-Workers

配置

偷懒的话可以直接复制代码然后修改相应的 KEY ,想要动态变化可以设置成环境变量

// 你也可以注释这两行代码,然后在 Workers 配置界面填写环境变量
const API_KEY = "PLEASE_REPLACE_WITH_YOUR_OPENAI_API_KEY";
const TELEGRAM_TOKEN = "PLEASE_REPLACE_WITH_YOUR_TELEGRAM_BOT_TOKEN";

// 聊天白名单,你也可以在环境变量中定义数组然后在这里解析 JSON
const CHAT_WHITE_LIST = [];

使用

  1. 新建 Telegram 机器人, 获得 Token
  2. 注册 OpenAI 账号并创建 API Key
  3. 部署 Workers https://developers.cloudflare.com/workers/
  4. 运行 https://your_workers_name.your_workers_subdomain.workers.dev/telegram/your_telegram_bot_token/bind 绑定 telegram
  5. 开始新对话 使用/new指令开始,之后每次都会将聊天上下文发送到 ChatGPT
13145 次点击
所在节点    OpenAI
116 条回复
Lentin
2023-03-03 18:27:19 +08:00
jelinet
2023-03-03 18:27:32 +08:00
连『新的对话开始』这句都没返回,感觉还没走到 sendMessageToChatGPT
Lentin
2023-03-03 18:28:46 +08:00
@jelinet 需要添加 KV 变量,并且 KV 的变量名需要为 DATABASE 并且绑定实例
tbxark
2023-03-03 18:30:02 +08:00
@jelinet 你试一下在 cloudflare 上面直接调试

POST: https://your_workers_name.your_workers_subdomain.workers.dev/tetegram/:token/webhook

Body
```js
{
"message": {
"text": "/new",
"chat": {
"id": 你的 ID
}
}
}
```
jelinet
2023-03-03 18:31:56 +08:00
搞定,是『 DATABASE 』名字设置错了。
Lavria
2023-03-03 18:37:28 +08:00
大佬我是第一次用 cloudflare ,照着流程走了一圈下来在第六步绑定阶段返回错误 {"ok":false,"error_code":400,"description":"Bad Request: invalid webhook URL specified"} 可能是哪里出了问题?
tbxark
2023-03-03 18:41:11 +08:00
@Lavria WORKERS_DOMAIN 设置了吗。不要加 https 。只写域名
inertia
2023-03-03 18:41:24 +08:00
请问能动态地修改 “system" 项吗
tbxark
2023-03-03 18:45:08 +08:00
@inertia 可以,一会加一个这个指令
inertia
2023-03-03 18:47:04 +08:00
@tbxark 赞!方便的话能不能把 temperature 这样的参数也做成可调节的呢?
shuxiaokai
2023-03-03 18:54:02 +08:00
关注了! star+follow
hanqian
2023-03-03 19:00:10 +08:00
同求修改 system 项,这才是最好玩的
tbxark
2023-03-03 19:21:28 +08:00
@hanqian 假装有一个自定义的女朋友吗😂
hanqian
2023-03-03 20:03:24 +08:00
@tbxark 没错😂各种角色扮演都很方便
GP1
2023-03-03 20:30:29 +08:00
有几个坑需要再仔细说明优化下:
1. CHAT_WHITE_LIST 机器人 ID 怎么获取
2. WORKERS_DOMAIN 去掉 https://
3. KV Namespace Bindings
Variable name=DATABASE

你的这些设置哪几个需要在 js 文件里面设置,哪些需要在 Cloudflare Workers 里面设置再讲清楚点。
Lavria
2023-03-03 21:11:47 +08:00
@tbxark 谢谢,已经跑起来啦。😀
Rrrrrr
2023-03-03 21:43:38 +08:00
跑起来了,那个 CHAT_WHITE_LIST 确实有点坑
tbxark
2023-03-03 21:47:13 +08:00
@GP1 @Rrrrrr id 可以随便聊一句,然后就会提示你你的 ID 是什么,确实没有其他渠道可以获取
Hsinyao
2023-03-03 21:54:19 +08:00
强,想学 js 了
a881883
2023-03-03 22:25:16 +08:00
@tbxark 好像没有提示,是直接向机器人发消息吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/920842

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX