Thanks to lipeng0820 for providing this video tutorial.
- Open Telegram and send the
/start
command to BotFather. - Send the
/newbot
command to BotFather and give your bot a name. - Give your bot a unique username that ends with
_bot
. - BotFather will generate a Token. Copy and save this Token. This Token is the secret key that is bound to your bot. Do not disclose it to others!
- Later, in the settings of Cloudflare Workers, fill in this Token in the
TELEGRAM_TOKEN
variable.
- Open OpenAI and register an account.
- Click on the avatar in the upper right corner to enter the personal settings page.
- Click on API Keys and create a new API Key.
- Later, in the settings of Cloudflare Workers, fill in this API Key in the
API_KEY
variable.
- Open Cloudflare Workers and register an account.
- Click on
Create a Service
in the upper right corner. - Enter the newly created Workers, select
Quick Edit
, copy the../dist/index.js
code into the editor, and save.
- Open Cloudflare Workers, click on your Workers, and click on Setting -> Variables in the upper right corner.
API_KEY
: Set it to your OpenAI API Key.TELEGRAM_AVAILABLE_TOKENS
: Set it to your Telegram Bot Token.CHAT_WHITE_LIST
: Set it to the IDs of users who are allowed to access, for example,123456789,987654321
. If you don't know your ID, use the/new
command to obtain it in conversation with the bot you created.I_AM_A_GENEROUS_PERSON
: If you still don't understand how to obtain the ID, you can set this value totrue
to turn off the whitelist function and allow everyone to access.
- Click on
Create a Namespace
at the top right corner ofHome-Workers-KV
, name it whatever you want, but when binding it, set it asDATABASE
. - Open Cloudflare Workers and click on your Workers.
- Click on
Setting
at the top right corner and chooseVariables
. - Click on
Edit variables
underKV Namespace Bindings
. - Click on
Add variable
. - Name it
DATABASE
and choose the KV data you just created.
- Run
https://workers_name.username.workers.dev/init
to automatically bind Telegram webhook and set all commands.
- Start a new conversation by using the
/new
command. The chat context will be sent to ChatGPT every time. - Modify user settings with the
/setenv KEY=VALUE
command, for example,SETENV SYSTEM_INIT_MESSAGE=Starting now is Meow, and each sentence ends with Meow
. - Since all historical records are carried with each conversation, it is easy to reach the 4096 token limit, so clear the history by using the
/new
command when necessary.
- Steps one, two, and three are for manual deployment.
- Run
mv wrangler-example.toml wrangler.toml
and modify the corresponding configuration. - Run
npm install
. - Run
npm run deploy
.