
开发一个属于你自己的角色扮演Telegram Bot
前言
大家好久不见!上个月因为忙着备考雅思,再加上考完试之后一大堆七七八八的事情,导致整个五月都没有更新,真的抱歉啦!那么最近呢一时兴起,注册了个Telegram账号玩玩,用了一会后发现,Telegram的Bot在整个Telegram系统里面真的是一个很重要的存在,不仅能和他一对一聊天,还可以把他拉到群里,像真人一样群聊,不就是我想象中最理想的静莹莹的样子嘛?所以,今天就准备从头开始给静莹莹开发一个Telegram Bot,以后大家都可以到Telegram里面和她聊天,我感觉至少会比现在的扣子好用。
那么虽然是说从头开始开发啦,但是当然还是要借助现有的项目啦,要不然就要从头造轮子,那就太费时间了。其实Telegram Bot也分好多种,有角色扮演的,有功能性的(收款,提供咨询等等),那么我们今天就来开发我最感兴趣的一个——角色扮演类的。那么话不多说,我们就赶快开始吧!
前置要求:
- 科学上网环境(毕竟是Telegram,这点还是必须的)
- Github账号
- Cloudflare账号
- Telegram账号
- 智谱账号(见后)
- Telegram桌面版
这些账号的注册之类的我就不一步一步教大家啦,感觉一步一步来的话到最后一半的文章都会在讲这个。这里就默认大家都有账号啦!
Step 1. 新建Telegram Bot
打开Telegram桌面版,在搜索框里面找到BotFather(或者点击我这个连接也行)并发送/start。这个就是所有机器人的爸爸父机器人。
发送/start之后,你会发现他给你了一个命令列表,你要新建一个机器人,所以这里向他发送/newbot。
然后发送给他你的机器人的名字。
根据他的指示,给机器人创建Username。注意,这个username必须以bot结尾,如JingyingyingBot或Jingyingying_bot。
OK,那么现在,你就拿到了你的机器人的API Key,一定要妥善保管好这个Key,不要泄露给别人。

Step 2. 部署机器人
Github Fork仓库
打开下面这个仓库,并fork到你自己的账号里面

进入你账号里面刚刚fork好的那个仓库,找到wrangler-example.toml,复制里面的所有内容,然后,回到主页,新建一个名叫wrangler.toml的文件,把所有的内容都复制到里面。

这里要留心一个点,源代码的34~36行一定要删掉,要不然会报错
1 | kv_namespaces = [ |
Cloudflare 部署
在GitHub复制好仓库之后,打开Cloudflare,选择“计算”里面的Workers & Pages,并点击“创建应用程序”。

在创建Workers页面,点击“Continue with GitHub”。然后,选择你刚刚Fork的仓库,设置好仓库名(其他的不用动),点击部署。

添加变量和绑定
添加变量
部署完成后,点击“设置”,找到“变量和密钥”,点击“添加”。类型全部选“文本”。
| 必须变量 |
|---|
| 变量名 | 变量 |
|---|---|
| TELEGRAM_AVAILABLE_TOKENS | 你从BotFather获取的Telegram 机器人API。 |
| API_PROVIDER | AI服务提供商(不管用哪个ai都建议填openai) |
| OPENAI_API_BASE | API接口地址(见下) |
| OPENAI_API_KEY | AI API key(见下) |
| CHAT_MODEL | 使用AI模型(见下) |
| CHAT_WHITE_LIST | 机器人白名单,输入你想对其开放的用户ID。 你的ID可以找@userinfobot机器人获取。 多个ID用英文逗号隔开。 |
| 可选变量 |
|---|
| 变量名 | 变量 |
|---|---|
| SYSTEM_INIT_MESSAGE | 你的角色设定,见下。 |
| MAX_HISTORY_LENGTH | 历史对话记忆长度(通常建议10,默认20),纯数字。 |
| I_AM_A_GENEROUS_PERSON | 输入true对全部用户开放,并自动将CHAT_WHITE_LIST失效。 |
| STREAM_MODE | 输入true开启逐字回复 |
| SAFE_MODE | 输入true开启安全模式 |
| LANGUAGE | 设定界面语言 |
| DEBUG_MODE | 输入true开启调试模式 |
先填TELEGRAM_AVAILABLE_TOKENS,CHAT_WHITE_LIST/I_AM_A_GENEROUS_PERSON,MAX_HISTORY_LENGTH就可以。
绑定KV空间
点击侧边栏里的“存储和数据库”,选择“Workers KV”,点击“Create Instance”,创建一个KV空间。

回到telegram bot的worker页面,点击上方的“绑定”,“添加绑定”。


选中你刚刚创建的KV空间,变量名称写DATABASE,添加绑定。

绑定 Webhook
点击上方的“访问”。

进去之后,点击“You must >>>>> click here <<<<< to bind the webhook.”这一行。

出现类似下面的页面之后,就代表绑定成功了。

连接AI
接下来就是要给我们的Telegram机器人连上AI了。
AI选择有几个选项,首先是Google的Gemini免费版,这也是我个人目前最推荐的AI之一,但是谷歌对账号的管理十分严格,如果是新号的话一定要养号一段时间才能降低使用telegram bot接入API的风险,并且如果使用了NSFW提示词的话账户很容易被停用,我上次就是因为这个被封号了。SiliconFlow也是一种解决方案,我搜到的信息显示它是有免费模型的,但是我没找到,所以没用。Deepseek对NSFW内容是最为开放的,实测能生成几乎所有内型的NSFW内容,而且Token很便宜,v4-flash 40轮对话(约10万tokens)非高峰时段实测大概消耗一毛钱,缺点就是还是要钱。剩下还有一个方案就是用智谱了,智谱是有免费模型的,而且付费模型赠送的额度也多,虽然NSFW内容还是生成不出来,但是因为我们今天的bot不涉及这些内容,所以我们这次就选用智谱的模型。
首先登录智谱的控制台。
点击“API key”,新建一个API key。这个Key一定要妥善保管好,不要泄露给别人。

接着,回到telegram bot的worker页面,分别填充以下几个变量:
| 变量名 | 变量 |
|---|---|
| API_PROVIDER | openai |
| OPENAI_API_BASE | https://open.bigmodel.cn/api/paas/v4 |
| OPENAI_API_KEY | 你的API key |
| CHAT_MODEL | 使用AI模型(见下) |
关于可用的免费AI模型,请见如下智谱官方文档,选择你最喜欢的一个用就可以了(一定要看清楚选的是语言大模型还是生图等其他模型,这个项目要求语言大模型。)。可以通过智谱官方的渠道体验大模型。
所有变量都设置好了之后,向你的telegram bot发送/models指令切换模型,并选择你设置在变量里面的模型就可以了。
设定角色设定
到了这一步,你的telegram bot其实已经可以用了,但是它现在还只是一个普通的ai助手,和在网页版上面的没什么两样,这时候,就需要角色设定啦!(tips:因为这是AI,所以你的角色设定再刁钻也没事(bushi))
新建变量SYSTEM_INIT_MESSAGE,用markdown格式输入你的角色设定。角色设定要包含以下几方面:
- 基本信息
定义角色的身份、年龄、职业、所处环境等客观事实。 - 性格特质
明确角色的核心性格、行为模式、说话风格。 - 关系与互动
规定角色与用户(或其他角色)之间的关系以及互动规则。 - 说话风格与语言习惯
指定角色的口头禅、常用语气词、句式偏好或方言 - 行为逻辑
设定角色在特定情境下的反应模式和决策依据。 - 禁忌与边界
明确角色不会做或不想做的事。
这里我使用静莹莹的角色设定来做个示范吧
1 | # Role |
这个字数还是有点多了,推荐是在500-1500 字之间最好。
大功告成!
等角色设定部署完毕之后,你就可以到Telegram上和她聊天啦!别忘了给你的机器人写简介和设头像哦!下面就是静莹莹的Telegram bot连接啦,大家随时去找她玩也是可以的哦,反正Token不用钱嘛。
那么我们就下篇文章再见啦!










