Home

Awesome

ChatGPT Telegram Bot in AWS Lambda

This a Telegram bot that lets you chat with ChatGPT. This bot is created using the brand new ChatGPT API. The Telegram bot is deployed in completely serverless in AWS Lambda. No need to setup a local server or do login in the browser.

Features

<p align="center"> <img src="./img/chatgpt_animation_fast.gif" width="500"/> </p>

Initial Setup

  1. Create an OpenAI account and get an API Key.
  2. Create an AWS account.
  3. Setup your Telegram bot. You can follow this instructions to get your token.
<details> [<img src="./img/session_token.png" width="500"/>](/img/session_token.png) </details>
  1. To enable support for voice messages you need to create a S3 bucket in your AWS account.
<details> [<img src="./img/s3_browser.png" width="500"/>](/img/s3_browser.png) </details> <details> [<img src="./img/create_bucket_button.png" width="500"/>](/img/create_bucket_button.png) </details> <details> [<img src="./img/create_bucket_config.png" width="500"/>](/img/create_bucket_config.png) </details>
  1. Go to .chalice/config.json and stablish the configurations:

Installation

  1. Install Python using pyenv or your prefered Python installation.
  2. Create a virtual environment: python3 -m venv .venv.
  3. Activate you virtual environment: source .venv/bin/activate.
  4. Install dependencies: pip install -r requirements.txt.
  5. Install the AWS CLI and configure your credentials.

Deployment

  1. Run chalice deploy.
  2. Go to the AWS Console -> Lambda -> chatgpt-telegram-bot-dev-message-handler-lambda -> Configuration -> Function URL.
  3. Click Create Function URL and set Auth type to NONE.
  4. Copy the created function URL.
  5. Stablish your Telegram webhook to point to you AWS Lambda running curl --request POST --url https://api.telegram.org/bot<YOUR_TELEGRAM_TOKEN>/setWebhook --header 'content-type: application/json' --data '{"url": "YOUR_FUNCTION_URL"}'

Great! Everything is setup :) Now go to Telegram and find your bot name and use ChatGPT from there!

Coming soon!

Credits