Code Monkey home page Code Monkey logo

chatgpt-telegram-bot's Introduction

ChatGPT Telegram Bot

python-version python-telegram-bot-version db openai-version license bot

English | 中文

A Telegram bot with a smooth AI experience.

⚡Feature

[✓] Support for both Azure OpenAI and native OpenAI.

[✓] Real-time (streaming) response to AI, with faster and smoother experience.

[✓] 15 preset bot identities that can be quickly switched.

[✓] Support for custom bot identities to meet personalized needs.

[✓] Support to clear the contents of the chat with a single click, and restart the conversation at any time.

[✓]Native Telegram bot button support, making it easy and intuitive to implement required functions.

[✓] User level division, with different levels enjoying different single session token numbers, context numbers, and session frequencies.

[✓] Support English and Chinese on UI

[✓] Containerization.

[✓] More...

👨‍💻TODO

[x] Allow users to use their own OpenAI Key in the bot to gain more freedom.

[x] Improve ErrorHandler.

🤖Quick Experience

Telegram Bot: RoboAceBot

🛠️Deployment

Install Dependencies

pip install -r requirements.txt

Configure Database

Install Database

You can quickly create a local MySQL database using:

docker-compose up -d -f db/docker-compose.yaml

Initialize Database

mysql -uusername -p -e "source db/database.sql"

Add Configuration

All the required configurations are in config.yaml, please refer to config.yaml.example for file format and content.

Parameter Optional Description
BOT.TOKEN No Create a bot from @botFather and get the Token.
DEVELOPER_CHAT_ID No Telegram account ID that receives messages when the bot encounters an error. You can use @get_id_bot to get your ID.
MYSQL No Parameters related to MySQL connection.
TIME_SPAN No The time window size used to calculate the ratelimit, in minutes.
RATE_LIMIT No key is the user level, and value is the maximum number of chats that can be made within the TIME_SPAN time period.
CONTEXT_COUNT No key is the user level, and value is the number of contexts included in each chat.
MAX_TOKEN No key is the user level, and value is the maximum number of tokens returned by the AI per chat.
AI.TYPE Yes The type of AI used, with two options: openai and azure. The default is openai.
AI.BASE Yes When checking resources from the Azure portal, this value can be found in the "Keys and Endpoints" section. Alternatively, this value can be found in "Azure OpenAI Studio" > "Playground" > "Code View". Only needs to be set when AI.TYPE is azure.
AI.ENGINE Yes The deployment name of Azure OpenAI, only needs to be set when AI.TYPE is azure.
AI.VERSION Yes The version number of Azure OpenAI, only needs to be set when AI.TYPEis azure.

If you are using Azure's OpenAI, you can obtain all the required content at this link:

Get started using ChatGPT and GPT-4 with Azure OpenAI Services

🚀Start

python main.py | tee >> debug.log

Docker build & Run

docker run --rm --name chatgpt-telegram-bot -v ./config.yaml:/app/config.yaml vividone/chatgpt-telegram-bot:latest 

Docker Compose

docker-compose up -d

❤️In Conclusion

I hope this project can provide you with a smooth AI experience and help more people create and use their own Telegram bots.

chatgpt-telegram-bot's People

Contributors

v-know avatar dependabot[bot] 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.