Giter Club home page Giter Club logo

nick3 / gpt-telegramus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from f33rni/gpt-telegramus

0.0 0.0 0.0 6.2 MB

The best Telegram bot for ChatGPT, EdgeGPT (aka Bing AI), DALL-E, Bing Image generator and Bard with stream writing, requests with images (for Bard only), multiple languages, admin control, automatic proxy searcher, data logging and more!

License: GNU Affero General Public License v3.0

Shell 0.03% Python 99.08% Dockerfile 0.89%

gpt-telegramus's Introduction

๐Ÿค– GPT-Telegramus

The best Telegram bot for ChatGPT, EdgeGPT (aka Bing AI), DALL-E, Bing Image generator and Bard with stream writing, requests with images (for Bard only), multiple languages, admin control, automatic proxy searcher, data logging and more!

YouTube Bandcamp Spotify SoundCloud


๐Ÿ˜‹ Support project

Support the project by buying and listening to my music ๐ŸŽต

Or message me if you would like to donate ๐Ÿ’ฐ

Star History Chart


๐Ÿค— Contributors


๐Ÿ“™ Dependencies


โ“ Get started

  1. Install Python and pip
  2. Download source code
  3. Install requirements pip install -r requirements.txt --upgrade
  4. Access the modules you want to use (Generate an API key to ChatGPT / DALL-E, save cookies for EdgeGPT / Bard)
  5. Carefully change all the settings (in the config.json file) to suit your needs. If you have questions regarding any setting, open an issue, I will add a more detailed description
  6. Create bot at https://t.me/BotFather
  7. Type Bot's token into api_key in telegram in config.json file
  8. Run main script python main.py
  • ChatGPT
    • Browser-like Chat-GPT. Currently, without extensions and image requests (text only) (because I don't have a paid account to test it)
    • Stream response support
    • Chat history support
    • Works better with API type 1 and an access_token for authentication
    • Note: Please refer to the ๐Ÿ”— Chat-GPT Base URL (proxy) section for correct usage.
  • DALLยทE
    • Image generation tool from OpenAI
    • Requires an OpenAI account with unexpired credits
  • EdgeGPT (aka Bing AI) (aka Sydney)
    • Supports conversation style /style
    • Stream response support
    • Chat history support
    • Web-browsing and sources support
    • Unfortunately, it can't accept images as input yet, nor can it generate them. Please use Bing ImageGen to generate images.
  • Bing ImageGen
    • Bing Image Generator. Used as a separate module due to issues with the EdgeGPT module
    • Free and unlimited
  • Bard
    • Google's Bard AI
    • Stream response support
    • Chat history support
    • Web-browsing support
    • Now supports requests with images (you can send an image with text to it) NEW

๐Ÿ’ฌ Bot messages

  • You can edit telegram bot messages by editing file messages.json. You can add new lines by adding \\n
  • You can add a new language simply by copying one of existing language (with {}) to the end of file (before the last ]) and translating all values

Note: make sure you don't delete argumensts {0}, {1}, ... in message and please restart python script to apply changes

Currently available languages:

  • ๐Ÿ‡บ๐Ÿ‡ธ English
  • ๐Ÿ‡ท๐Ÿ‡บ ะ ัƒััะบะธะน
  • โ€โ˜ ๏ธ ะขะพั„ะธะนัะบะพะฒั‹ะน
  • ๐Ÿ‡ฎ๐Ÿ‡ฉ Bahasa Indonesia

If you want to add a language, create a pull request ๐Ÿ’œ


๐Ÿง Running as service on linux

  1. Install Python and pip
  2. Clone repo
    1. git clone https://github.com/F33RNI/GPT-Telegramus/
    2. cd GPT-Telegramus
  3. Edit config.json
  4. Install systemd
    1. sudo apt-get install -y systemd
  5. Create new service file
    1. sudo nano /etc/systemd/system/gpt-telegramus.service
      [Unit]
      Description=GPT-Telegramus service
      After=multi-user.target
      
      [Service]
      Type=simple
      Restart=always
      WorkingDirectory=YOUR DIRECTORY HERE/GPT-Telegramus
      ExecStart=YOUR DIRECTORY HERE/GPT-Telegramus/run.sh
      RestartSec=5
      
      [Install]
      WantedBy=multi-user.target
      
      
  6. Reload systemctl daemon
    1. sudo systemctl daemon-reload
  7. Enable and start service
    1. sudo systemctl enable gpt-telegramus.service
    2. sudo systemctl start gpt-telegramus.service

๐Ÿ‹ Running in Docker

WARNING: not tested

  1. Install Docker
  2. Clone repo
  3. Build container
    docker buildx build -t telegramus --load -f Dockerfile .
  4. Run the container
    docker run -d --name gpt-telegramus --restart on-failure telegramus

Note: You can specify settings and messages files and chats folder location. (default location is in project folder):

docker run -d -e TELEGRAMUS_SETTINGS_FILE="PATH_TO_config.json" --name gpt-telegramus --restart on-failure telegramus

๐Ÿ”— Chat-GPT Base URL (proxy)

Default base URL by acheong08/ChatGPT stopped working. Below is an instruction on how to launch your own ChatGPT proxy server (on Linux)

  1. Install GO
    1. sudo apt-get update
    2. sudo apt-get install golang-go
  2. Clone acheong08/ChatGPTProxy repo
    1. git clone https://github.com/acheong08/ChatGPTProxy/tree/main
    2. cd ChatGPTProxy
  3. Build it
    1. go build
  4. Install systemd
    1. sudo apt-get install systemd
  5. Create service
    1. sudo nano /etc/systemd/system/chatgpt-proxy.service
      [Unit]
      Description=ChatGPTProxy service
      After=multi-user.target
      
      [Service]
      Type=simple
      Restart=always
      
      # Proxy (if needed, or remove this and next line)
      Environment="http_proxy=http://USERNAME:PASSWORD@IP:PORT"
      
      # ChatGPT login
      Environment="OPENAI_EMAIL=YOUR_EMAIL"
      Environment="OPENAI_PASSWORD=YOUR_PASSWORD"
      
      WorkingDirectory=PATH_TO_ChatGPTProxy_DIRECTORY
      ExecStart=PATH_TO_ChatGPTProxy_DIRECTORY/ChatGPTProxy
      RestartSec=5
      
      [Install]
      WantedBy=multi-user.target
      
      
  6. Reload systemctl daemon
    1. sudo systemctl daemon-reload
  7. Enable and start service
    1. sudo systemctl enable chatgpt-proxy.service
    2. sudo systemctl start chatgpt-proxy.service
  8. See logs to make sure it's running and see current port
    1. systemctl status chatgpt-proxy.service
  9. Add it's IP to config.json
    1. ex. "base_url": "http://127.0.0.0:9090/api/",

๐ŸŒŽ Proxy to bypass geo-blocking

NOT TESTED

It is possible to bypass geo-blocking of ChatGPT, EdgeGPT, DALL-E or Bard. GPT-Telegramus includes automatic proxy-list downloading with periodic checks

  1. Set enabled in proxy_automation in config.json to true
  2. Set auto in proxy for modules you want to connect automatic proxy search
  3. Restart app and hope for the best.

GPT-Telegramus will download the proxy list itself and start trying various proxies (see console for logs). Sometimes, searching for a proxy can take a long time. If you think that the found proxy is not suitable, you can restart the bot using the /restart command

  • To use manual proxy, specify tham in http://IP:Port or http://user:password@IP:Port format (even if they are HTTPS proxies) in proxy for modules you need

๐Ÿค– Telegram bot commands

  • ๐Ÿ“„ /start - Welcome message and bot version
  • โ“ /help - Show this message
  • โ†•๏ธ /module - Change module to chat with
  • ๐Ÿงน /clear - Clear chat history
  • ๐ŸŒŽ /lang - Change the language
  • ๐Ÿ†” /chatid - Show your chat_id

Admin commands:

  • ๐Ÿ’ฌ /queue - Show requests queue
  • ๐Ÿ”ƒ /restart - Restart proxies and telegram bot
  • ๐Ÿ‘ค /users - Show list of all users
  • ๐Ÿ”จ /ban <id> [reason] - Ban a user by their id with reason (optional)
  • ๐Ÿ”“ /unban <id> - Unban a user by their id
  • ๐Ÿ“ข /broadcast <message> - Send text message to everyone except banned users

๐Ÿ“„ Chat history

GPT-Telegramus saves chat history for some modules locally ("conversations_dir": "conversations") to keep conversation with users


๐Ÿ“œ Data collecting

GPT-Telegramus has a built-in data collecting function (request and response)

  • For ChatGPT, EdgeGPT (aka Bing AI) and Bard response is saved as plain text and Base64-encoded images
  • For DALL-E and Bing Image generator response is saved as Base64-encoded image (in the same text file)

You can enable and configure data collection in config in data_collecting block

NOTE: Please make sure you notify your bot users that you are collecting data


๐Ÿ“ TODO

  • Add some free GPT-4 model
  • Add image input and generation for EdgeGPT (and ChatGPT?)
  • Add list of commands

โœจ Contribution

  • Anyone can contribute! Just create a pull request

๐Ÿšง P.S. This project is still under development!

  • If you find a bug, please create an Issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.