Hi everyone, me and my friends are thinking of making a Telegram bot to use GPT-4 as one of us has access to the API.
We’re not going to release the bot to the public (only use between us), however we’d like the bot to run 24/7 so it’s accessible whenever one of us needs it. Sadly we can’t host it ourselves as neither of us is able to get a Static IP and has a free machine to run 24/7.
My question is, are there any recommended hosting providers (if it’s free even better) where we could host our telegram bot on? Thanks!
Oracle Cloud provides free plans
I can confirm, I’m running the exact same scenario OP described (GPT-4 Telegram bot), on Oracle Cloud, and it works great. I found this implementation to be robust, easy to spin up, and easy enough to patch changes in.
The gotcha for this is that you have to actually use the resources on your free instance or they will reclaim it. I use my instance as a Minecraft server so it utilizes about half of the 24GB RAM you get. For a very light compute task like a chat bot, it might be difficult to keep the instance from being reclaimed.
From this page:
Idle Always Free compute instances may be reclaimed by Oracle. Oracle will deem virtual machine and bare metal compute instances as idle if, during a 7-day period, the following are true:
CPU utilization for the 95th percentile is less than 15% Network utilization is less than 15% Memory utilization is less than 15% (applies to A1 shapes only)
Any $5 VPS (usually single core plus 1GB RAM) should be good enough for this purpose if it is just a bot for you and your friends.
Why not use dynamic DNS since this isn’t something mission critical?
FYI you don’t need static IP for telegram bots if you use polling instead of webhook. So if your house connection is stable enough, you can make do with Raspberry Pi.
I’m hosting my stuff on cheapest DigitalOcean droplet (but still use polling for telegram bots). Any stable VPS provider would do just fine and you’ll have system resources left for other stuff, telegram bots are very light.
I’m not sure I understand how I could use polling in this case. Would I just keep sending requests to the endpoint to see if there are any new messages sent or something like that?
AWS Lambda is the best for this, my bots run on it. That is, if you’re ok with some delay in response. Otherwise an EC2 might work.