GithubHelp home page GithubHelp logo

chenxiaowei-520 / edge-gpt-telegram-bot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hdcola/edge-gpt-telegram-bot

1.0 0.0 0.0 42 KB

Telegram bot using EdgeGPT unofficial API

License: MIT License

Python 98.67% Dockerfile 1.33%

edge-gpt-telegram-bot's Introduction

Description

Telegram bot using EdgeGPT unofficial API

Requirements

  • python

BotFather set up

Create a bot with @BotFather and set the following commands:

new - Start a new conversation with the bot.

voice - List and set bot voice.

Hidden commands:

  • /unlock <passwd> - Gain access to bot using a password

Run

  • Install python dependencies.

    pip install -r requirements.txt

    If you want to contribute, install also development dependencies.

    pip install -r dev_requirements.txt

  • Create a self-signed certificate in order to communicate with telegram server using SSL.

    openssl req -newkey rsa:2048 -sha256 -nodes -keyout ferdinand.key -x509 -days 3650 -out ferdinand.pem

  • Create a copy of config.template.json and change the dummy values in .config.json.

    cp config.template.json .config.json

    • token - Telegram bot token, obtained from @BotFather

    • reply_voice: true to get a voice answer. false to haven't voice answer.

    • voice: voice name. You can use /voice command change the setting. More info: Language and voice support for the Speech service

    • voice_list: List of your favorite voices. List of voices that will be listed when you use the /voice command.

    • assemblyai_token: Your AssemblyAI token. It use to ASR. More info: Supported Languages

    • webhook: true to run the bot using webhooks. false to use polling.

    • log_level: set level of the logging module. More info: log levels

    • ip: Your server ip, where the bot is hosted

    • port: Port to receive telegram updates: port must be 443, 80, 88 or 8443.

    • cert: Path to your server certificate (can be self-signed)

    • password: Password to use with /unlock and gain access to the bot (only required for the first time)

       "password": "supersecurepassword123"
    • id: List of telegram IDs allowed in the bot, without password. Obtain if from bots like @getmyid_bot.
       "ids": [
           123123123,
           132322322
       ]
  • Execute the bot.

    ./edge.py

    Note: If you run the bot in port 80, it may be needed to run the bot as superuser (sudo).

  • Use Docker

Install Docker and cocker-compose, put all config file to ./edgebot and put docker-compose.yml in current folder.

docker-compose up -d

Note: Only support amd64 and arm64.

Contributing

Happy to see you willing to make the project better. In order to make a contribution, please respect the following format:

  • Imports sorted with usort: usort format <file>
  • Code formatted with black (line lenght 79): black -l 79 <file>

If you are using flake8, ignore E203 in .flake8

[flake8]
extend-ignore = E203

VSCode project settings

VSCode should have the following settings in settings.json:

{
    "python.analysis.fixAll": [],
    "python.formatting.blackArgs": [
        "-l 79"
    ],
    "python.formatting.provider": "black",
    "isort.path": [
        "usort format"
    ],
}
"python.linting.flake8Args": [
    "--ignore=E203",
],

License

Copyright (c) 2023 scmanjarrez. All rights reserved.
This work is licensed under the terms of the MIT license.

For a copy, see LICENSE.

edge-gpt-telegram-bot's People

Contributors

hdcola avatar scmanjarrez avatar

Stargazers

DavidChen avatar

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.