ChatGPT-Telegram-Workers

最简单快捷部署属于自己的ChatGPT Telegram机器人的方法。使用Cloudflare Workers,单文件,直接复制粘贴一把梭,无需任何依赖,无需配置本地开发环境,不用域名,免服务器。 可以自定义系统初始化信息,让你调试好的性格永远不消失。

配置

推荐在Workers配置界面填写环境变量, 而不是直接修改js代码中的变量

系统配置

为每个用户通用的配置,通常在workers配置界面填写

KEY 说明 类型 特殊说明
API_KEY OpenAI API Key Environment Variables
TELEGRAM_TOKEN Telegram Bot Token Environment Variables
TELEGRAM_AVAILABLE_TOKENS 支持多个Telegram Bot Token Environment Variables, 为可选项,只有一个bot的时候设置TELEGRAM_TOKEN即可 多个Token用,分隔
WORKERS_DOMAIN Workers域名 Environment Variables 不要加上https://
CHAT_WHITE_LIST 聊天ID白名单 Environment Variables 多个ID用,分隔,不知道ID,和机器人聊一句就能返回
I_AM_A_GENEROUS_PERSON 关闭白名单,允许所有人访问 Environment Variables 鉴于很多人不想设置白名单,或者不知道怎么获取ID,所以设置这个选项就能允许所有人访问, 值为true时生效
DATABASE KV数据 KV Namespace Bindings 先新建KV,新建的时候名字随意,然后绑定的时候必须设定为DATABASE
DEBUG_MODE 调试模式 Environment Variables 目前可以把最新一条消息保存到KV方便调试

群组配置

可以把机器人加到群组中,然后群组里的所有人都可以和机器人聊天。

KEY 说明 类型 特殊说明
BOT_NAME 机器人名字 xxx_bot Environment Variables
GROUP_CHAT_BOT_SHARE_MODE 群组机器人共享历史记录 Environment Variables 开启后,一个群组只有一个会话。关闭的话群组的每个人都有自己的会话上下文

用户配置

每个用户的自定义配置,只能通过Telegram发送消息来修改,消息格式为SETENV KEY=VALUE

KEY 说明 例子
SYSTEM_INIT_MESSAGE 系统初始化参数,设定后就算开启新会话还能保持,不用每次都调试 SETENV SYSTEM_INIT_MESSAGE=现在开始是喵娘,每句话已喵结尾
OPENAI_API_EXTRA_PARAMS OpenAI API额外参数,设定后每次调用API都会带上,可以用来调整温度等参数 SETENV OPENAI_API_EXTRA_PARAMS={"temperature": 0.5} 每次修改必须为完整JSON

部署流程

详情见 部署流程

最佳实践

新建多个机器人绑定到同一个workers,设置TELEGRAM_AVAILABLE_TOKENS,, 每个机器人赋予不同的SYSTEM_INIT_MESSAGE。比如翻译专家,文案专家,代码专家。然后每次根据自己的需求和不同的机器人聊天,这样就不用经常切换配置属性。。

TODO LIST

  • 允许多个机器人同时绑定一个workers